agigante80/actual-mcp-server
View on GitHub ↗Talk to your self-hosted Actual Budget from any MCP client: a remote HTTP server for LibreChat/LobeChat or a local stdio process for Claude Desktop, with 71 tools for transactions, budgets, rules, and bank sync. No Docker needed for local use.
What you need to know
Production-grade MCP server connecting any MCP-compatible assistant to a self-hosted Actual Budget instance. 74 tools covering accounts, transactions (including exclusive ActualQL-powered search), categories, payees, tags, rules, budgets, schedules, bank sync and batch operations. Supports HTTP (Streamable HTTP with Bearer/OIDC auth) and stdio transports, multi-budget switching and multi-user ACLs.
Install
docker run -d --name actual-mcp-server-backend -p 3600:3600 -e ACTUAL_SERVER_URL=... -e ACTUAL_PASSWORD=... -e ACTUAL_BUDGET_SYNC_ID=... ghcr.io/agigante80/actual-mcp-server:latest npx actual-mcp-server --http (Node.js 22+) npm run build && npm run dev -- --http (from clone) stdio: add to claude_desktop_config.json with npx -y actual-mcp-server --stdio
Usage
- •Ask natural-language questions about budget, create transactions, analyze spending
- •actual_budgets_switch to change active budget mid-conversation
- •Use actual_query_run for custom ActualQL queries and actual_bank_sync to trigger GoCardless/SimpleFIN sync
Key features
- ✓74 tools with actual_<category>_<action> naming
- ✓6 exclusive ActualQL-powered transaction search/summary tools
- ✓HTTP and stdio transports with per-session budget scoping
- ✓Multi-budget switching at runtime (BUDGET_N_* env vars)
- ✓OIDC auth with JWKS-validated JWTs and per-user budget ACLs
- ✓Connection pooling, retry with exponential backoff, full test suite
- ✓Split transactions, transfer tool, batch operations, budget import/export
Best for
Self-hosted Actual Budget users who want AI access to their budget with production reliability
Caveats
- ⚠Requires an Actual Budget server, ACTUAL_SERVER_URL, ACTUAL_PASSWORD and budget Sync ID
- ⚠Requires a persistent data dir volume (MCP_BRIDGE_DATA_DIR or /app/data) for the local budget copy
- ⚠Not affiliated with Actual Budget; user assumes responsibility for financial data
- ⚠HTTP mode should use a strong Bearer token or OIDC
Reviewed 2026-08-11
Topics
- Stars
- 41★
- Forks
- 14
- Language
- JavaScript
- License
- MIT
- Created
- 2025-10-02
- Last push
- 2026-08-13