Actual Budget MCP Server

An MCP server for Actual Budget: agents read accounts and transactions, build spending reports and, with a flag, edit categories.

  • 279 ★ on the repository
  • Last commit
  • MIT
MCP server

Extended access

Why this level

  • With `--enable-write` an agent changes and deletes budget data, and server keys and passwords sit in the client configuration.
All reasons and checks

s-stefanov/actual-mcp

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/actual-budget-mcp-server

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • With `--enable-write` an agent changes and deletes budget data, and server keys and passwords sit in the client configuration.

This is third-party code. Review the repository files before installing.

What it does

Actual Budget MCP Server connects a personal budget in Actual Budget to Claude and other MCP clients. Read tools return accounts, transactions, balance history and reports: spending by category, monthly summary, budget versus actual, net worth and cash flow. The prompts `financial-insights` and `budget-review` are ready to use. Started with `--enable-write`, it turns on write tools: creating and editing transactions, categories, payees and rules, plus saved reports and dashboard widgets. The server runs over stdio, and `--sse` opens HTTP access that should be protected with `--enable-bearer` when exposed to a network.

Who it is for. People who keep personal finances in Actual Budget and want to ask an agent about their spending in plain language.

Good fit when

  • You want to see where money went last month without building a report by hand.
  • Payees piled up with duplicates and need merging through `merge-payees`.
  • Net worth has to be compared month by month over a year.
  • Dashboard widget layout is easier to hand to an agent than to drag by mouse.

Not a fit when

  • Your budget lives outside Actual Budget: the server works only with it.
  • You need real payments or money transfers: the server edits only budget records.
  • The server with your data would be exposed to a public network without a token.

Example request

Show spending by category for last month and compare it with the planned budget.

MCP

Transport
stdio, http
Authentication
key is optional

Environment variables

`ACTUAL_SERVER_URL`
Actual server address when the budget lives on a remote server
`ACTUAL_PASSWORD` secret
Actual server password
`ACTUAL_BUDGET_SYNC_ID`
Identifier of the budget to use
`ACTUAL_DATA_DIR`
Actual data directory, `~/.actual` by default
`ACTUAL_SESSION_TOKEN` secret
Session token for OpenID-login servers; takes precedence over the password
`ACTUAL_BUDGET_ENCRYPTION_PASSWORD` secret
Separate budget encryption password when it differs from the server password
`ACTUAL_SYNC_TTL_MS`
Data freshness window in ms, 60000 by default
`BEARER_TOKEN` secret
Token for `--enable-bearer` when HTTP access is exposed

Limitations

It needs a working Actual Budget and Node.js 16 or newer. Without `--enable-write` the write tools are unavailable, and with it an agent can change and delete transactions, categories and rules, so back up the budget first. With OpenID login a password does not work: a session token from browser DevTools is needed and it expires. Amounts in JSON reports are in cents. Future-dated transactions are excluded from balances.

How to disable. Remove the `actualBudget` block from the client configuration and restart it. To keep read-only access, run the server without `--enable-write`. Stop the Docker container if you ran HTTP mode.

FAQ

How do I enable writes?

Add the `--enable-write` flag to the launch arguments. Without it only read tools are available.

Which reports exist?

`spending-by-category`, `monthly-summary`, `budget-vs-actual`, `net-worth`, `category-trends`, `spending-by-payee` and `cash-flow`. Amounts return as integer cents.

How do I expose the server over HTTP?

Start it with `--sse` and, for internet access, add `--enable-bearer` and the `BEARER_TOKEN` variable.

How do I test the connection to Actual?

Run `node build/index.js --test-resources`. It reports whether the server can reach the budget data.

Does Actual Budget need a server?

No, a local data directory `ACTUAL_DATA_DIR` is enough. For a remote server set `ACTUAL_SERVER_URL` and a password.

Discussion

No questions or reviews yet.

Official

The official RiseUp MCP server: budget, transactions, account balances and mortgage data, read-only, in Claude Desktop

MCP serverExtended access36Repository stars
Official

The official Xero MCP server: an agent reads invoices, contacts, journals and reports and creates invoices, payments and timesheets

MCP serverBroad access390Repository stars

Financial Datasets MCP

Financial Datasets MCP Server

Official

An MCP server for the Financial Datasets API: company financials, stock and crypto prices and news for the agent

MCP serverExtended access2.3KRepository stars
Official

Investment and spending tracker with a built-in MCP server: the agent reads the portfolio and writes through drafts

MCP serverExtended access9.3KRepository stars
Official

A financial analysis MCP server: 500+ methods from company statements, ratios, indicators, risk metrics and macro data

MCP serverExtended access5.5KRepository stars
Official

The server gives agents read access to your bank accounts and transactions through Enable Banking, without payment tools.

MCP serverExtended access306Repository stars

README in short

Tools, installation through Docker or npx, Claude Desktop and Codex CLI setup, SSE mode and a package in the official MCP Registry.

README badge

Report a problem

Foxx AIActual Budget MCP Server
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.