프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Actual Budget MCP Server

제작자: agigante80버전 0.27.1i★ –i내 컴퓨터에서 실행
레지스트리 이름io.github.agigante80/actual-mcp-server

설치

개요

제작자가 쓴 설명(영어 원문)

Manage Actual Budget accounts, transactions, budgets, rules and reports from an AI assistant.

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 내 컴퓨터에서 실행
  • 전송 방식: stdio, Streamable HTTP
  • 카테고리: 회계, 재무 및 세금
  • 입력해야 할 값: ACTUAL_SERVER_URL, ACTUAL_PASSWORD, ACTUAL_BUDGET_SYNC_ID, ACTUAL_BUDGET_PASSWORD

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

  • 기본 점검: 1개 중 1개 통과
  • 내 컴퓨터에서 내 사용자 계정의 권한(파일, 네트워크, 앱)으로 실행돼요.
  • 직접 입력할 값: ACTUAL_SERVER_URL, ACTUAL_PASSWORD, ACTUAL_BUDGET_SYNC_ID, ACTUAL_BUDGET_PASSWORD, MCP_BRIDGE_DATA_DIR

비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.

필요한 것

  • npmNode.js 설치(npx 명령어용)

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

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에서 열기

또는 설정을 직접 복사하기

프로젝트의 .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"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .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는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

직접 입력할 값

  • ACTUAL_SERVER_URL 필수 env
    URL of the Actual Budget server, for example https://actual.example.com
  • ACTUAL_PASSWORD 비밀 필수 env
    Actual Budget server login password
  • ACTUAL_BUDGET_SYNC_ID 필수 env
    Sync ID of the budget (Actual: Settings, Advanced settings)
  • ACTUAL_BUDGET_PASSWORD 비밀 env
    End-to-end encryption password, for an encrypted budget only. Requires an https:// ACTUAL_SERVER_URL
  • MCP_BRIDGE_DATA_DIR env
    Absolute path of a user-private directory for the local budget cache

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 9일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 agigante80 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

회계, 재무 및 세금 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 2960개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 2960개 중 85%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 2960개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Actual Budget MCP Server, 안전한가요?

해당하는 기본 점검 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

Finance Toolkit

500+ transparent financial methods calculated from raw statements, not third-party endpoints.

제작자: JerBouma널리 사용됨↓ 1.6만/주★ 5.5천그저께 업데이트

컴퓨터 또는 클라우드

SolidInvoice

Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.

제작자: SolidInvoice성장 중★ 9819일 전 업데이트

클라우드에서 실행✓ solidinvoice.co

Korea Tax Calculator

Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.

제작자: UpstageAI성장 중↓ 3.2천/주★ 97어제 업데이트

내 컴퓨터에서 실행

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. 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).

Pick your path

  • Claude Desktop, Claude Code, Cursor, VS Code or another local client: run it over stdio with npx, no server to keep running. Follow your client's page in docs/guides/clients/, for example Claude Desktop or Claude Code.
  • A chat UI such as LibreChat or LobeChat, or several users: run it over HTTP in Docker with the quick start below, then follow LibreChat or LobeChat.
  • A client that installs from the official [MCP Registry](https://registry.modelcontextprotocol.io/): it is listed as 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.
  • Unraid: install it from Community Applications; see Unraid.

Quick start (Docker, HTTP)

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

Privacy

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.

Compatibility

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.

Tools

Every tool, with its description and caveats, is in the tools reference.

Reducing the tool surface

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.

ToolsetToolsContents
context14Orientation, lookups and server information
transactions14Transaction reads, create, update, delete, import and transfers
analysis7Summaries, aggregates and balances
budget10Budget months, amounts, carryover, holds, transfers, batch updates and notes
rules7Rules and payee rules, including actual_rules_create_batch
schedules5Scheduled transactions
structure21Accounts, account groups, categories, category groups, payees and tags
query1actual_query_run (SELECT only)
admin6Budget 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.

Configuration

VariableRequiredDescription
ACTUAL_SERVER_URLYesURL 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_PASSWORDYesLogin password for your Actual Budget server (not the budget encryption password)
ACTUAL_BUDGET_SYNC_IDYesBudget Sync ID from Actual (Settings then Sync ID)
ACTUAL_BUDGET_PASSWORDNoEncryption password for an end-to-end encrypted budget
MCP_BRIDGE_PORTNoPort the MCP server listens on
MCP_SSE_AUTHORIZATIONNoStatic Bearer token clients must send (the raw token, not Bearer ...); highly recommended in production
AUTH_PROVIDERNonone (static Bearer) or oidc (JWKS-validated JWT)
MCP_TOOLSETSNoToolset 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.

Documentation

  • Documentation index: every page.
  • Connect a client, deployment, authentication, upgrading, troubleshooting.
  • Architecture, testing and reliability.

Contributing

Contributions are welcome. See CONTRIBUTING.md for setup, the checks every change must pass and the PR process. Questions and bug reports: SUPPORT.md.

Security

Report a vulnerability privately as described in SECURITY.md, not in a public issue.

Sponsor

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.

License

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)

PopNx에게 묻기