Finance Toolkit
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
제작자가 쓴 설명(영어 원문)
Manage Actual Budget accounts, transactions, budgets, rules and reports from an AI assistant.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
ACTUAL_SERVER_URL, ACTUAL_PASSWORD, ACTUAL_BUDGET_SYNC_ID, ACTUAL_BUDGET_PASSWORD, MCP_BRIDGE_DATA_DIR비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"actual": {
"command": "npx",
"args": [
"-y",
"actual-mcp-server",
"--stdio"
],
"env": {
"ACTUAL_SERVER_URL": "your-value",
"ACTUAL_PASSWORD": "your-value",
"ACTUAL_BUDGET_SYNC_ID": "your-value",
"ACTUAL_BUDGET_PASSWORD": "your-value",
"MCP_BRIDGE_DATA_DIR": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add actual --env ACTUAL_SERVER_URL=your-value --env ACTUAL_PASSWORD=your-value --env ACTUAL_BUDGET_SYNC_ID=your-value --env ACTUAL_BUDGET_PASSWORD=your-value --env MCP_BRIDGE_DATA_DIR=your-value -- npx -y actual-mcp-server --stdio실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"actual": {
"command": "npx",
"args": [
"-y",
"actual-mcp-server",
"--stdio"
],
"env": {
"ACTUAL_SERVER_URL": "your-value",
"ACTUAL_PASSWORD": "your-value",
"ACTUAL_BUDGET_SYNC_ID": "your-value",
"ACTUAL_BUDGET_PASSWORD": "your-value",
"MCP_BRIDGE_DATA_DIR": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"actual": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"actual-mcp-server",
"--stdio"
],
"env": {
"ACTUAL_SERVER_URL": "your-value",
"ACTUAL_PASSWORD": "your-value",
"ACTUAL_BUDGET_SYNC_ID": "your-value",
"ACTUAL_BUDGET_PASSWORD": "your-value",
"MCP_BRIDGE_DATA_DIR": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
MCP_BRIDGE_DATA_DIR env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 9일 점검
레지스트리 이름이 GitHub 계정 agigante80 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: ACTUAL_SERVER_URL, ACTUAL_PASSWORD, ACTUAL_BUDGET_SYNC_ID, ACTUAL_BUDGET_PASSWORD
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.27.1)은 4일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js, Docker도 있어야 해요.
같은 카테고리에는: Finance Toolkit, SolidInvoice, Korea Tax Calculator
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.
Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Actual MCP Server
A Model Context Protocol server that lets an AI assistant (Claude, LibreChat, LobeChat, Cursor and others) read and manage your self-hosted Actual Budget.
What you can ask it: "How much did I spend on groceries last month, by payee?", "Add a $47.50 grocery transaction at Whole Foods to my checking account.", "Move $200 from Dining Out to Emergency Fund for this month."
85 tools across accounts, transactions, budgets, rules, schedules and more, over stdio or HTTP, with Bearer token or OIDC auth, per-user budget access, up to 15 concurrent sessions, and automatic retry of transient Actual errors (3 attempts, exponential backoff; deletes and merges are never retried).
npx, no server to keep running. Follow your client's page in docs/guides/clients/, for example Claude Desktop or Claude Code.io.github.agigante80/actual-mcp-server, with the npm package (stdio) and the Docker image (HTTP); the client asks for the same settings as the pages above.You need an Actual Budget server and Docker. 1. Create `.env` with a generated token. In an empty directory:
[ -f .env ] || install -m 600 /dev/null .env
[ -z "$(tail -c 1 .env)" ] || printf '\n' >> .env for key in ACTUAL_SERVER_URL=http://YOUR-ACTUAL-HOST:5006 ACTUAL_PASSWORD= ACTUAL_BUDGET_SYNC_ID=; do grep -q "^${key%%=*}=" .env || printf '%s\n' "$key" >> .env done chmod 600 .env if [ "$(grep -c '^MCP_SSE_AUTHORIZATION=' .env)" != 1 ] || ! grep -Eq '^MCP_SSE_AUTHORIZATION=[^[:space:]]{32,}$' .env; then ( umask 077; install -m 600 /dev/null .env.new; { grep -v '^MCP_SSE_AUTHORIZATION=' .env; printf 'MCP_SSE_AUTHORIZATION=%s\n' "$(openssl rand -hex 32)"; } > .env.new ) && mv .env.new .env fi grep '^MCP_SSE_AUTHORIZATION=' .env
The last line prints the Bearer token your client sends. It never overwrites a value you set, except a token that is missing, duplicated or shorter than 32 characters, so it is safe to run again.
2. Fill in `.env`: ACTUAL_PASSWORD, ACTUAL_BUDGET_SYNC_ID (Actual: Settings, Show advanced settings, Sync ID) and ACTUAL_SERVER_URL. The URL is read inside the container, where localhost is the container itself: use your Actual server's LAN address or domain, or http://host.docker.internal:5006 when Actual runs on the Docker host.
3. Start the server from the same directory:
docker run -d \
--name actual-mcp-server-backend \ -p 3600:3600 \ --add-host=host.docker.internal:host-gateway \ --env-file .env \ -v actual-mcp-data:/app/data \ -v actual-mcp-logs:/app/logs \ ghcr.io/agigante80/actual-mcp-server:latest
Check it with curl http://localhost:3600/health. The image is also on Docker Hub as agigante80/actual-mcp-server. Production flags, TLS, reverse proxies and the reason for the /app/data volume are in the deployment guide.
Docker Compose (Compose 2.24.0 or later), from a clone of this repository:
[ -f .env ] || install -m 600 .env.example .env
chmod 600 .env if [ "$(grep -c '^MCP_SSE_AUTHORIZATION=' .env)" != 1 ] || ! grep -Eq '^MCP_SSE_AUTHORIZATION=[^[:space:]]{32,}$' .env; then ( umask 077; install -m 600 /dev/null .env.new; { grep -v '^MCP_SSE_AUTHORIZATION=' .env; printf 'MCP_SSE_AUTHORIZATION=%s\n' "$(openssl rand -hex 32)"; } > .env.new ) && mv .env.new .env fi grep '^MCP_SSE_AUTHORIZATION=' .env docker compose --profile production up -d
On a fresh .env, fill in the three Actual settings, then run the last line again.
npx (Node.js 22 or later, no container), in a directory holding a filled-in .env from step 1, where http://localhost:5006 is right for Actual on the same machine:
npx actual-mcp-server --http
Budget data the tools return goes to whichever model provider your AI client uses. The server itself contacts only the configured Actual server and, when OIDC auth is configured, your identity provider (discovery and JWKS). Logs stay on the host you run it on. Details: security and privacy.
Node.js 22 or later, Actual Budget server 25.0.0 or later, and the bundled @actual-app/api (its version is in package.json and reported by the actual_server_info tool). Requirements and upgrade steps: upgrading.
Every tool, with its description and caveats, is in the tools reference.
All 85 tools are published by default. Chat clients with a small tool budget (Gemini, LibreChat) do better with fewer. A tool that is not published is also refused if a client calls it by name.
| Toolset | Tools | Contents |
|---|---|---|
context | 14 | Orientation, lookups and server information |
transactions | 14 | Transaction reads, create, update, delete, import and transfers |
analysis | 7 | Summaries, aggregates and balances |
budget | 10 | Budget months, amounts, carryover, holds, transfers, batch updates and notes |
rules | 7 | Rules and payee rules, including actual_rules_create_batch |
schedules | 5 | Scheduled transactions |
structure | 21 | Accounts, account groups, categories, category groups, payees and tags |
query | 1 | actual_query_run (SELECT only) |
admin | 6 | Budget switching, import, export, bank sync and session management |
The chat preset publishes 12 tools: actual_get_context, actual_query_run, actual_transactions_update_batch, actual_budget_updates_batch, actual_rules_create_batch, actual_transactions_create, actual_transactions_update, actual_transactions_delete, actual_rules_create, actual_budgets_transfer, actual_budgets_setAmount and actual_budgets_getMonth.
MCP_READ_ONLY=true hides and refuses 48 write-capable tools and leaves 37 published.
Example: a chat assistant with two extra tools.
MCP_TOOLSETS=chat
MCP_TOOLS=actual_accounts_list,actual_payees_get
A configuration that resolves to zero tools refuses to start. See Security and Privacy.
| Variable | Required | Description |
|---|---|---|
ACTUAL_SERVER_URL | Yes | URL of your Actual Budget server, as seen from where the MCP server runs. Inside a container localhost is the container itself: use the host's address, the container name on a shared Docker network, or http://host.docker.internal:5006 |
ACTUAL_PASSWORD | Yes | Login password for your Actual Budget server (not the budget encryption password) |
ACTUAL_BUDGET_SYNC_ID | Yes | Budget Sync ID from Actual (Settings then Sync ID) |
ACTUAL_BUDGET_PASSWORD | No | Encryption password for an end-to-end encrypted budget |
MCP_BRIDGE_PORT | No | Port the MCP server listens on |
MCP_SSE_AUTHORIZATION | No | Static Bearer token clients must send (the raw token, not Bearer ...); highly recommended in production |
AUTH_PROVIDER | No | none (static Bearer) or oidc (JWKS-validated JWT) |
MCP_TOOLSETS | No | Toolset groups and presets to publish; see Reducing the tool surface |
Every variable, with its type and default: configuration reference. Several budgets: multiple budgets. Auth modes, per-client tokens and OIDC: authentication.
Contributions are welcome. See CONTRIBUTING.md for setup, the checks every change must pass and the PR process. Questions and bug reports: SUPPORT.md.
Report a vulnerability privately as described in SECURITY.md, not in a public issue.
I build and maintain this in my own time. It is free, it stays free, and it gets maintained either way. If it saved you some time, you can say thanks at github.com/sponsors/agigante80. Entirely optional.
MIT, see LICENSE. Built on Actual Budget and the Model Context Protocol, with thanks to s-stefanov/actual-mcp for the original adapter pattern. An independent project, not affiliated with Actual Budget, provided as-is without warranty: if you connect it to real financial data, you do so at your own risk.
Version: 0.27.1 | Tool Count: 85 (verified LibreChat-compatible)