budget-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DATABASE_URL | No | The database URL. Local SQLite in-memory if unset (sqlite:///:memory:). Can also be a SQLite file path or a PostgreSQL connection string. | sqlite:///:memory: |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_summaryA | Get a summary of expenses, income, and net balance with flexible filtering and optional category breakdown.
|
| add_transactionA | Add one or more income or expense transactions to the budget. Supports single transaction parameters OR a batch list/dict of items in Bulk Import Workflow:
Arguments:
|
| get_transactionsA | Get transactions based on specified filter criteria.
|
| get_uncategorized_transactionsA | Get all uncategorized transactions sorted alphabetically by description. Designed for systematic categorization after bulk import: Use this tool to retrieve transactions imported without categories.
Because results are sorted by description, similar merchant/expense descriptions are grouped together, enabling fast and consistent bulk updates via Arguments:
|
| update_transactionA | Update one or more existing transactions by ID. Supports single transaction updates OR a batch list/dict of update items in Systematic Categorization Workflow:
Arguments:
|
| delete_transactionB | Delete one or more transactions by ID. Supports a single integer ID or a list of integer IDs in
|
| list_categoriesA | List established categories available for transactions.
|
| add_categoryA | Create one or more categories in the category library. Supports single category parameters OR a batch list/dict of items in
|
| update_categoryA | Update an existing category's name, type, or description.
|
| delete_categoryA | Delete one or more categories from the library. Supports a single category ID/name or a list of category IDs/names in
|
| budget_dashboardC | Browse the interactive budget dashboard with a category breakdown chart and transaction data table. |
| spending_trendsB | Browse spending trends over time grouped by year-month with a line chart and transaction data table. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Prefab Renderer (budget_dashboard) | |
| Prefab Renderer (spending_trends) |
TDQS
Scored across 12 tools
Most tools are clearly distinct in purpose - categories, transactions, summaries, trends, and dashboard each have a unique role. There's minor potential confusion between get_summary and spending_trends (both aggregate data), and list_categories vs add_category are distinct enough. Overall boundaries are clear.
The naming mostly follows a consistent verb_noun pattern: list_categories, add_transaction, get_summary, update_transaction, delete_category. Minor deviations exist: 'budget_dashboard' and 'spending_trends' use noun-phrase naming instead of the verb-first convention, breaking the pattern slightly.
12 tools is well-scoped for a budget management server covering full lifecycle operations on both transactions and categories, plus reporting/visualization tools. Each tool earns its place without redundancy or bloat.
The surface provides full CRUD for transactions (add, get, update, delete) and categories (add, update, delete, list), plus specialized workflows like bulk import/categorization (get_uncategorized_transactions), and reporting (get_summary, spending_trends, budget_dashboard). No significant gaps in the budget domain.