MCP YNAB Server
An MCP server implementation that provides access to YNAB (You Need A Budget) functionality through the Model Context Protocol.
Features
- View account balances and transactions
- Create new transactions
- Access YNAB data through standardized MCP resources
Installation
uv pip install -e .
Configuration
The server requires a YNAB API key to function. You can obtain one from your YNAB Developer Settings.
The API key can be provided through:
- Environment variable:
YNAB_API_KEY=your_api_key - MCP secret management system
.envfile in project root
Usage
Running the Server
# Development mode with hot reload and browser launch
task dev
# Production install for Claude Desktop, Goose, or any other MCP-supported environment
task install
Available Resources
ynab://accounts- List all YNAB accountsynab://transactions/{account_id}- Get recent transactions for a specific account
Available Tools
create_transaction- Create a new transactionget_account_balance- Get the current balance of an account
Example Usage
# Create a new transaction
result = await create_transaction(
account_id="your_account_id",
amount=42.50, # in dollars
payee_name="Coffee Shop",
category_name="Dining Out",
memo="Morning coffee"
)
# Get account balance
balance = await get_account_balance("your_account_id")
# List accounts
accounts = await ctx.read_resource("ynab://accounts")
# Get recent transactions
transactions = await ctx.read_resource(f"ynab://transactions/{account_id}")
Development
# Install dependencies (uses uv)
task deps
# Run all tests including integration tests (you will need a YNAB API key for this)
task test:all
# Generate coverage report
task coverage
# Format and lint code
task fmt # Should add this to Taskfile
Project Tasks
This project uses a Taskfile for common operations. Key commands:
task dev # Start dev server with auto-reload
task test # Run unit tests
task coverage # Generate test coverage report
task install # Install production build
task deps # Synchronize dependencies
See Taskfile.yml for all available tasks.
Metadata
Release files for iflow-mcp_mcp-ynab 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iflow_mcp_mcp_ynab-0.1.0.tar.gz | 77.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iflow_mcp_mcp_ynab-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 86.7 kB
Release files / iflow_mcp_mcp_ynab-0.1.0.tar.gz
| Download URL | iflow_mcp_mcp_ynab-0.1.0.tar.gz |
|---|---|
| Size | 77.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9e6f95c4f8c239ec3e4324427a9e38c47d3a7f7b5e4f8f0d99cc153a2ed86e60
|
|
BLAKE2b-256 checksum How to use checksums |
ac7875450efe843deaead6b7f9e480a9ca512905c2819c03b48f3f8bb25f66bc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.9
|
Release files / iflow_mcp_mcp_ynab-0.1.0-py3-none-any.whl
| Download URL | iflow_mcp_mcp_ynab-0.1.0-py3-none-any.whl |
|---|---|
| Size | 9.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6d28a195e4dc4dff0b8daf475f9f0ef5a566712db16b18d194e68e3188ecd1ca
|
|
BLAKE2b-256 checksum How to use checksums |
c2e35c274da535c2eadcbf6ba6154865a812b649410c08ea95f620143e49cac5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.9
|