Actual Budget MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOCALE | No | Locale for formatting amounts and dates (e.g. es-ES) | en-US |
| CURRENCY | No | 3-letter ISO currency code (e.g. EUR) | USD |
| ENABLE_WRITE | No | Enables the 18 write tools (categorize, splits, schedules, budget, notes, category groups/categories, payees/transfers, rules) | false |
| MESSAGES_LANG | No | Language of the server's error messages: es or en | es |
| ACTUAL_SYNC_ID | Yes | Budget Sync ID (Settings -> Advanced -> Sync ID) | |
| ACTUAL_DATA_DIR | No | Folder where the local copy of the budget is downloaded | ./data |
| SYNC_TTL_SECONDS | No | Seconds the sync is cached before re-syncing | 60 |
| ACTUAL_SERVER_URL | Yes | URL of the self-hosted Actual server | |
| ACTUAL_SERVER_PASSWORD | Yes | Actual server password |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_accountsA | List accounts with current balances. Off-budget accounts (pensions, funds, mortgage) included by default. |
| get_net_worthA | Full net worth: on-budget + off-budget (pensions, funds, mortgage) with per-account breakdown. Open accounts only. |
| get_categoriesA | Category groups and categories with their IDs (IDs are required by write tools). |
| get_transactionsA | Search transactions by date range with optional filters (account, category, text, amount range, uncategorized). Transfers excluded by default. Paginated (max 200). |
| get_spending_summaryB | Aggregated spending by category, payee or month. Transfers always excluded. Spending amounts are positive; income negative. Sorted descending. |
| get_budget_monthB | Budget status for a month: to-budget, income, totals and per-category budgeted/spent/balance. Category ids included for set_budget. |
| get_budget_averagesA | Per-category spending average, median and max over the last N complete months — input for budget preparation. Median resists anomalous months. Spending positive; transfers and income excluded. |
| get_schedulesC | Recurring schedules configured in Actual (name, next date, amount). |
| get_payeesA | Payees with their IDs. A payee with transfer_account_id set is the payee Actual uses to represent that account in a transfer. |
| get_account_transfer_payeeA | The payee that represents an account in a transfer. Shortcut over get_payees for the common case; set_transaction_transfer resolves it on its own, so this is mainly for inspection. |
| get_rulesA | Actual's automation rules, with their IDs. Rules run on imported transactions and are how recurring movements classify themselves. Amounts are in currency units. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Every tool targets a distinct concept in the Actual budget domain: accounts, net worth, categories, transactions, spending summaries, budget month, budget averages, schedules, payees, and rules. There is slight conceptual proximity between get_spending_summary and get_budget_averages (both return spending data), and between get_payees and get_account_transfer_payee, but descriptions clearly differentiate their purposes. No tool appears to do the same thing as another.
All eleven tools follow a consistent 'get_<noun(s)>' verb_noun pattern: get_accounts, get_categories, get_transactions, get_spending_summary, get_budget_month, get_budget_averages, get_schedules, get_payees, get_rules, get_net_worth, get_account_transfer_payee. The naming convention is uniform and predictable throughout.
With 11 tools, this is a well-scoped set squarely in the optimal range. Each tool addresses a distinct read-only query a user would reasonably make about their Actual budget, and none feels redundant or trivial. The count is appropriate for the server's apparent purpose of budget querying.
The server is entirely read-only, covering queries well but offering no write operations (no 'create', 'update', 'delete' tools). Notably, the descriptions reference write tools (set_budget, set_transaction_transfer) that are not present in this set. While the domain is comprehensive on the read side, the absence of any mutation tools leaves the surface partially gap-laden if the intent is full budget management.