MCP server exposing Actual Budget accounts, transactions, budgets and reporting to LLM assistants.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
MCP server for integrating Actual Budget with Claude and other LLM assistants.
The Actual Budget MCP Server allows you to interact with your personal financial data from Actual Budget using natural language through LLMs. It exposes your accounts, transactions, and financial metrics through the Model Context Protocol (MCP).
get-transactions - Retrieve and filter transactions by account, date, amount, category, or payeecreate-transaction - Create a new transaction in an account with optional category, payee, and notesupdate-transaction - Update an existing transaction with new category, payee, notes, or amountget-accounts - Retrieve a list of all accounts with their current balance and IDbalance-history - View account balance changes over timespending-by-category - Generate spending breakdowns categorized by typemonthly-summary - Get monthly income, expenses, and savings metricsbudget-vs-actual - Compare budgeted amounts against actual spending per categorynet-worth - Track assets, liabilities, and net worth across all accounts over timecategory-trends - See how spending in each category moves month over month, with trend directionspending-by-payee - Rank payees by how much was spent with (or received from) each onecash-flow - Report income, expenses, and net cash flow per month or weekThe five tools above return JSON rather than markdown, so amounts stay machine-readable. Every amount is an integer number of cents, and each response carries an
amountsInfield describing the sign conventions it uses.
get-custom-reports - Retrieve every saved custom report from the Reports sectioncreate-custom-report - Create a saved custom reportupdate-custom-report - Update fields on a saved custom report, leaving the rest unchangeddelete-custom-report - Delete a saved custom reportget-dashboards - Retrieve every dashboard page and the widgets laid out on itadd-dashboard-widget - Add a widget to a dashboard pageupdate-dashboard-widget - Update a widget's configuration, position, or sizeremove-dashboard-widget - Remove a widget from its pageorganize-dashboard - Reposition and resize several widgets at oncecreate-dashboard-page / rename-dashboard-page / delete-dashboard-page - Manage dashboard pagesget-grouped-categories - Retrieve a list of all category groups with their categoriescreate-category - Create a new category within a category groupupdate-category - Update an existing category's name or groupdelete-category - Delete a categorycreate-category-group - Create a new category groupupdate-category-group - Update a category group's namedelete-category-group - Delete a category groupget-payees - Retrieve a list of all payees with their detailscreate-payee - Create a new payeeupdate-payee - Update an existing payee's detailsdelete-payee - Delete a payeeget-rules - Retrieve a list of all transaction rulescreate-rule - Create a new transaction rule with conditions and actionsupdate-rule - Update an existing transaction ruledelete-rule - Delete a transaction rulefinancial-insights - Generate insights and recommendations based on your financial databudget-review - Analyze your budget compliance and suggest adjustmentsPull the latest docker image:
Optional: separate encryption budget password
If your Actual setup requires a different password to unlock the local/encrypted budget data than the server authentication password, you can set ACTUAL_BUDGET_ENCRYPTION_PASSWORD in addition to ACTUAL_PASSWORD.
The server keeps one shared Actual connection for its entire lifetime and serializes budget operations through it. Downloaded data is re-synced when it exceeds the ACTUAL_SYNC_TTL_MS freshness window. In both stdio and HTTP modes, SIGINT and SIGTERM drain in-flight work before the server shuts down. Actual is no longer initialized and shut down for each tool call.
To use this server with Claude Desktop, add it to your Claude configuration:
On MacOS:
On Windows:
Add the following to your configuration...
After saving the configuration, restart Claude Desktop.
π‘
ACTUAL_DATA_DIRis optional if you're usingACTUAL_SERVER_URL.
π‘ Use
--enable-writeto enable write-access tools.
To expose the server over a port using Docker:
β οΈ Important: When using --enable-bearer, the BEARER_TOKEN environment variable must be set.
π This is highly recommended if you're exposing your server via a public URL.
Once connected, you can ask Claude questions like:
Example Codex configuration:
In ~/.codex/config.toml:
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/actual-budget-mcp-server)<a href="https://allmcps.com/mcp/actual-budget-mcp-server"><img src="https://allmcps.com/api/badge/actual-budget-mcp-server?style=directory" alt="Actual Budget MCP Server on AllMCPs" /></a>