Skip to main content
Glama
vmrchnk

BudgetBakers MCP Server

by vmrchnk
README.md
# BudgetBakers MCP Server

[![npm version](https://img.shields.io/npm/v/budgetbakers-mcp)](https://www.npmjs.com/package/budgetbakers-mcp)

MCP server for integrating Claude with the [BudgetBakers Wallet](https://www.budgetbakers.com/) API. Gives Claude access to financial data: accounts, transactions, categories, and spending analytics.

## Quick start

Add to `~/.claude/settings.json` (or Claude Desktop config):

```json
{
  "mcpServers": {
    "budgetbakers": {
      "command": "npx",
      "args": ["-y", "budgetbakers-mcp"],
      "env": {
        "BUDGETBAKERS_API_TOKEN": "<your-token>"
      }
    }
  }
}
```

You can get the API token from BudgetBakers Wallet settings.

## Tools

| Tool | Description |
|------|-------------|
| `get_accounts` | List all accounts with balances. Filters: `currency`, `accountType` |
| `get_categories` | Income/expense categories. Filter: `name` |
| `get_labels` | User-defined tags. Filter: `name` |
| `search_transactions` | Search transactions. Requires `accountId`. Filters: dates, category, payee, amount |
| `get_transaction` | Full details of a single transaction by `id` |
| `spending_by_category` | Spending grouped by category for a date range |
| `cashflow_summary` | Income, expenses, and net cashflow for a date range |
| `top_merchants` | Top merchants by spending for a date range |

> `accountId` is required for transactions and analytics tools. Call `get_accounts` first to get it.

## Example prompts

- "Show my accounts and balances"
- "How much did I spend in February?"
- "What do I spend the most money on?"
- "Top 5 merchants this month"
- "Find all transactions at Starbucks in January"

## Development

```bash
git clone https://github.com/vmrchnk/budgetbakers-mcp.git
cd budgetbakers-mcp
npm install
npm run build
```

To use the local build instead of the npm package:

```json
{
  "mcpServers": {
    "budgetbakers": {
      "command": "node",
      "args": ["/path/to/budgetbakers-mcp/build/index.js"],
      "env": {
        "BUDGETBAKERS_API_TOKEN": "<your-token>"
      }
    }
  }
}
```

## Technical details

- TypeScript, ES2022, Node16 modules
- Dependencies: `@modelcontextprotocol/sdk`, `zod`
- Supports `agentHints=true` — API returns hints about pagination, rate limits, etc.
- Automatic pagination via hint-provided URLs
- Analytics tools aggregate data server-side (API has no analytics endpoints)

TDQS

A3.8/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct resource or function: accounts, categories, labels, individual transactions, filtered search, and three separate analytics aggregations. There is no overlap or ambiguity between tools, even among the analytics which are clearly differentiated by output.

Naming Consistency3/5

Four tools follow a clear verb_noun pattern (get_accounts, get_categories, get_labels, get_transaction) and search_transactions also fits. However, the three analytics tools (spending_by_category, cashflow_summary, top_merchants) are noun phrases rather than imperative verbs, mixing conventions. Names remain readable and descriptive, but the inconsistency is noticeable.

Tool Count5/5

Eight tools is well-scoped for a financial data query server. The set covers account discovery, reference data, transaction retrieval/search, and analytics without bloat. Each tool earns its place and the count feels appropriate for the domain.

Completeness4/5

The server provides solid read/analytics coverage: accounts, categories, labels, single transaction, filtered search, and three aggregate views. Minor gaps include lack of a 'list all transactions' endpoint without accountId (search requires it) and no budget/balance history tools, but for a read-centric budget server these are workable limitations.

Maintenance

ActivityInactive
ResponsivenessNo issues