ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

Actual Budget

โดย henfrydlsรุ่น 0.12.0i★ –iรันบนเครื่อง
ชื่อใน registryio.github.henfrydls/actual-budget-mcp

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

Actual Budget, carefully: deletes preview first, and new transactions check for duplicates.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: บัญชี การเงิน และภาษี
  • ต้องใส่ค่าเหล่านี้: ACTUAL_SERVER_URL, ACTUAL_PASSWORD, ACTUAL_SESSION_TOKEN, ACTUAL_BUDGET_ID, ACTUAL_ENCRYPTION_PASSWORD, ACTUAL_ENCRYPTION_PASSWORDS, ACTUAL_HTTP_TOKEN, ACTUAL_HTTP_WRITE_TOKEN

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

  • ผลตรวจเบื้องต้น: ผ่าน 1 จาก 1 ข้อ
  • รันในเครื่องคุณด้วยสิทธิ์ของผู้ใช้คุณ (ไฟล์ อินเทอร์เน็ต แอปต่าง ๆ)
  • ค่าที่คุณต้องใส่เอง: ACTUAL_SERVER_URL, ACTUAL_PASSWORD, ACTUAL_SESSION_TOKEN, ACTUAL_BUDGET_ID, ACTUAL_ENCRYPTION_PASSWORD, ACTUAL_BUDGET_IDS, ACTUAL_ENCRYPTION_PASSWORDS, ACTUAL_BUDGET_WORKERS, ACTUAL_WORKER_IDLE_MINUTES, ACTUAL_WORKER_READY_SECONDS, ACTUAL_READ_ONLY, ACTUAL_TOOLSET, ACTUAL_DATA_DIR, ACTUAL_HTTP_TIMEOUT_MS, ACTUAL_HTTP_PORT, ACTUAL_HTTP_TOKEN, ACTUAL_HTTP_WRITE_TOKEN, ACTUAL_HTTP_HOST, ACTUAL_HTTP_ALLOW_REMOTE, ACTUAL_HTTP_ALLOWED_HOSTS

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

ต้องเตรียมก่อน

  • npmติดตั้ง Node.js (มีคำสั่ง npx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "actual-budget": {
      "command": "npx",
      "args": [
        "-y",
        "actual-budget-mcp"
      ],
      "env": {
        "ACTUAL_SERVER_URL": "ใส่ค่าของคุณ",
        "ACTUAL_PASSWORD": "ใส่ค่าของคุณ",
        "ACTUAL_SESSION_TOKEN": "ใส่ค่าของคุณ",
        "ACTUAL_BUDGET_ID": "ใส่ค่าของคุณ",
        "ACTUAL_ENCRYPTION_PASSWORD": "ใส่ค่าของคุณ",
        "ACTUAL_BUDGET_IDS": "ใส่ค่าของคุณ",
        "ACTUAL_ENCRYPTION_PASSWORDS": "ใส่ค่าของคุณ",
        "ACTUAL_BUDGET_WORKERS": "ใส่ค่าของคุณ",
        "ACTUAL_WORKER_IDLE_MINUTES": "ใส่ค่าของคุณ",
        "ACTUAL_WORKER_READY_SECONDS": "ใส่ค่าของคุณ",
        "ACTUAL_READ_ONLY": "ใส่ค่าของคุณ",
        "ACTUAL_TOOLSET": "ใส่ค่าของคุณ",
        "ACTUAL_DATA_DIR": "ใส่ค่าของคุณ",
        "ACTUAL_HTTP_TIMEOUT_MS": "ใส่ค่าของคุณ",
        "ACTUAL_HTTP_PORT": "ใส่ค่าของคุณ",
        "ACTUAL_HTTP_TOKEN": "ใส่ค่าของคุณ",
        "ACTUAL_HTTP_WRITE_TOKEN": "ใส่ค่าของคุณ",
        "ACTUAL_HTTP_HOST": "ใส่ค่าของคุณ",
        "ACTUAL_HTTP_ALLOW_REMOTE": "ใส่ค่าของคุณ",
        "ACTUAL_HTTP_ALLOWED_HOSTS": "ใส่ค่าของคุณ"
      }
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add actual-budget --env ACTUAL_SERVER_URL='ใส่ค่าของคุณ' --env ACTUAL_PASSWORD='ใส่ค่าของคุณ' --env ACTUAL_SESSION_TOKEN='ใส่ค่าของคุณ' --env ACTUAL_BUDGET_ID='ใส่ค่าของคุณ' --env ACTUAL_ENCRYPTION_PASSWORD='ใส่ค่าของคุณ' --env ACTUAL_BUDGET_IDS='ใส่ค่าของคุณ' --env ACTUAL_ENCRYPTION_PASSWORDS='ใส่ค่าของคุณ' --env ACTUAL_BUDGET_WORKERS='ใส่ค่าของคุณ' --env ACTUAL_WORKER_IDLE_MINUTES='ใส่ค่าของคุณ' --env ACTUAL_WORKER_READY_SECONDS='ใส่ค่าของคุณ' --env ACTUAL_READ_ONLY='ใส่ค่าของคุณ' --env ACTUAL_TOOLSET='ใส่ค่าของคุณ' --env ACTUAL_DATA_DIR='ใส่ค่าของคุณ' --env ACTUAL_HTTP_TIMEOUT_MS='ใส่ค่าของคุณ' --env ACTUAL_HTTP_PORT='ใส่ค่าของคุณ' --env ACTUAL_HTTP_TOKEN='ใส่ค่าของคุณ' --env ACTUAL_HTTP_WRITE_TOKEN='ใส่ค่าของคุณ' --env ACTUAL_HTTP_HOST='ใส่ค่าของคุณ' --env ACTUAL_HTTP_ALLOW_REMOTE='ใส่ค่าของคุณ' --env ACTUAL_HTTP_ALLOWED_HOSTS='ใส่ค่าของคุณ' -- npx -y actual-budget-mcp

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "actual-budget": {
      "command": "npx",
      "args": [
        "-y",
        "actual-budget-mcp"
      ],
      "env": {
        "ACTUAL_SERVER_URL": "ใส่ค่าของคุณ",
        "ACTUAL_PASSWORD": "ใส่ค่าของคุณ",
        "ACTUAL_SESSION_TOKEN": "ใส่ค่าของคุณ",
        "ACTUAL_BUDGET_ID": "ใส่ค่าของคุณ",
        "ACTUAL_ENCRYPTION_PASSWORD": "ใส่ค่าของคุณ",
        "ACTUAL_BUDGET_IDS": "ใส่ค่าของคุณ",
        "ACTUAL_ENCRYPTION_PASSWORDS": "ใส่ค่าของคุณ",
        "ACTUAL_BUDGET_WORKERS": "ใส่ค่าของคุณ",
        "ACTUAL_WORKER_IDLE_MINUTES": "ใส่ค่าของคุณ",
        "ACTUAL_WORKER_READY_SECONDS": "ใส่ค่าของคุณ",
        "ACTUAL_READ_ONLY": "ใส่ค่าของคุณ",
        "ACTUAL_TOOLSET": "ใส่ค่าของคุณ",
        "ACTUAL_DATA_DIR": "ใส่ค่าของคุณ",
        "ACTUAL_HTTP_TIMEOUT_MS": "ใส่ค่าของคุณ",
        "ACTUAL_HTTP_PORT": "ใส่ค่าของคุณ",
        "ACTUAL_HTTP_TOKEN": "ใส่ค่าของคุณ",
        "ACTUAL_HTTP_WRITE_TOKEN": "ใส่ค่าของคุณ",
        "ACTUAL_HTTP_HOST": "ใส่ค่าของคุณ",
        "ACTUAL_HTTP_ALLOW_REMOTE": "ใส่ค่าของคุณ",
        "ACTUAL_HTTP_ALLOWED_HOSTS": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "actual-budget": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "actual-budget-mcp"
      ],
      "env": {
        "ACTUAL_SERVER_URL": "ใส่ค่าของคุณ",
        "ACTUAL_PASSWORD": "ใส่ค่าของคุณ",
        "ACTUAL_SESSION_TOKEN": "ใส่ค่าของคุณ",
        "ACTUAL_BUDGET_ID": "ใส่ค่าของคุณ",
        "ACTUAL_ENCRYPTION_PASSWORD": "ใส่ค่าของคุณ",
        "ACTUAL_BUDGET_IDS": "ใส่ค่าของคุณ",
        "ACTUAL_ENCRYPTION_PASSWORDS": "ใส่ค่าของคุณ",
        "ACTUAL_BUDGET_WORKERS": "ใส่ค่าของคุณ",
        "ACTUAL_WORKER_IDLE_MINUTES": "ใส่ค่าของคุณ",
        "ACTUAL_WORKER_READY_SECONDS": "ใส่ค่าของคุณ",
        "ACTUAL_READ_ONLY": "ใส่ค่าของคุณ",
        "ACTUAL_TOOLSET": "ใส่ค่าของคุณ",
        "ACTUAL_DATA_DIR": "ใส่ค่าของคุณ",
        "ACTUAL_HTTP_TIMEOUT_MS": "ใส่ค่าของคุณ",
        "ACTUAL_HTTP_PORT": "ใส่ค่าของคุณ",
        "ACTUAL_HTTP_TOKEN": "ใส่ค่าของคุณ",
        "ACTUAL_HTTP_WRITE_TOKEN": "ใส่ค่าของคุณ",
        "ACTUAL_HTTP_HOST": "ใส่ค่าของคุณ",
        "ACTUAL_HTTP_ALLOW_REMOTE": "ใส่ค่าของคุณ",
        "ACTUAL_HTTP_ALLOWED_HOSTS": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าที่ต้องใส่เอง

  • ACTUAL_SERVER_URL จำเป็น env
    URL of your Actual Budget server, for example http://localhost:5006
  • ACTUAL_PASSWORD ความลับ env
    Password for your Actual Budget server. Not needed if you set ACTUAL_SESSION_TOKEN
  • ACTUAL_SESSION_TOKEN ความลับ env
    Session token for servers behind OIDC, which have no password. Use instead of ACTUAL_PASSWORD; if both are set, the token wins
  • ACTUAL_BUDGET_ID จำเป็น env
    Your budget's Sync ID, found under Settings > Show advanced settings
  • ACTUAL_ENCRYPTION_PASSWORD ความลับ env
    Only needed if your budget file is end-to-end encrypted
  • ACTUAL_BUDGET_IDS env
    Every budget this server serves, comma separated, when it is more than one. Each tool then takes a budget_id, and each budget is opened in a process of its own
  • ACTUAL_ENCRYPTION_PASSWORDS ความลับ env
    A JSON object of budget sync id to encryption password, for when more than one of the budgets is encrypted. Each worker is given its own and never the map
  • ACTUAL_BUDGET_WORKERS env
    How many budgets stay open at once. Defaults to 3. A fourth budget closes the one that went longest without a call
  • ACTUAL_WORKER_IDLE_MINUTES env
    How long an open budget with nothing to do stays open. Defaults to 15
  • ACTUAL_WORKER_READY_SECONDS env
    How long a call waits for a budget that is still opening before it answers that it is still opening. Defaults to 45
  • ACTUAL_READ_ONLY env
    Set to 1 to hide every write tool from the model, exposing only reads and analysis
  • ACTUAL_TOOLSET env
    Set to chat to offer the 18 everyday tools instead of all 44, which is 17.4 KiB of tool descriptions instead of 39.7 KiB on every connection. Defaults to full
  • ACTUAL_DATA_DIR env
    Directory for the local budget cache
  • ACTUAL_HTTP_TIMEOUT_MS env
    How long to wait for your server to start replying, in milliseconds. Defaults to 60000; raise it if a GoCardless bank sync is being cut off
  • ACTUAL_HTTP_PORT env
    Serve MCP over HTTP on this port instead of stdio. Only for a server you run yourself and point clients at: a client that starts this package itself speaks stdio and cannot reach it once this is set
  • ACTUAL_HTTP_TOKEN ความลับ env
    The credential for the read path, /mcp. Required once ACTUAL_HTTP_PORT is set, and at least 32 characters
  • ACTUAL_HTTP_WRITE_TOKEN ความลับ env
    A second credential, for the write path, /mcp-write. Without it the server serves no write path at all
  • ACTUAL_HTTP_HOST env
    What to bind to. Defaults to 127.0.0.1; inside a container that is unreachable, so 0.0.0.0 together with ACTUAL_HTTP_ALLOW_REMOTE
  • ACTUAL_HTTP_ALLOW_REMOTE env
    Set to 1 to bind somewhere other than loopback. Nothing here terminates TLS, so put something in front of it that does
  • ACTUAL_HTTP_ALLOWED_HOSTS env
    Hostnames to accept in the Host header, comma separated and without ports, for a server that is not on loopback. Anything else is answered 403

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 9 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub henfrydls ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด บัญชี การเงิน และภาษีi

  • ดาวมากกว่า 0% ของอีก 2960 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 85% ของอีก 2960 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 2960 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Actual Budget ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

ต้องใส่ค่าเหล่านี้: ACTUAL_SERVER_URL, ACTUAL_PASSWORD, ACTUAL_SESSION_TOKEN, ACTUAL_BUDGET_ID, ACTUAL_ENCRYPTION_PASSWORD, ACTUAL_ENCRYPTION_PASSWORDS, ACTUAL_HTTP_TOKEN, ACTUAL_HTTP_WRITE_TOKEN

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.12.0) เข้า registry 4 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js, Docker ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Finance Toolkit, SolidInvoice, Korea Tax Calculator

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Finance Toolkit

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

โดย JerBoumaใช้กันมาก↓ 15.5K/สัปดาห์★ 5.5Kอัปเดต เมื่อวานซืน

บนเครื่องหรือคลาวด์

SolidInvoice

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

โดย SolidInvoiceกำลังโต★ 981อัปเดต 10 วันที่ผ่านมา

รันบนคลาวด์✓ solidinvoice.co

Korea Tax Calculator

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

โดย UpstageAIกำลังโต↓ 3.2K/สัปดาห์★ 97อัปเดต เมื่อวาน

รันบนเครื่อง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

actual-budget-mcp

Talk to your budget. An MCP server that connects Actual Budget to Claude. Ask where the money went, get real analysis back, and let it write without holding your breath.

Listed in the official Actual Budget community projects.

Features

  • Real analysis, not just lookups - Projections, category trends, budget vs actual, and month summaries
  • Writes you can trust - Every delete previews what it will remove and waits for you to confirm; ACTUAL_READ_ONLY=1 hides the write tools from the model entirely (Safety)
  • Multi-currency that survives reality - Splits and residual reconciliation, not just a currency symbol
  • Recovers from an out-of-sync budget - repair_sync rebuilds the local sync state when @actual-app/api and your server disagree, the failure that otherwise leaves every tool erroring
  • Ask about your budget in plain language - "How much did I spend on food this month?" or "Am I over budget on anything?"
  • Create and manage transactions - Add expenses, transfers, and edits without opening the app
  • Manage categories, payees, and rules - Full CRUD without opening the app
  • Use names, not IDs - Say "Wallet" instead of a1b2c3d4-..., with helpful suggestions if ambiguous
  • Natural dates in English and Spanish - "last month", "este mes", "hace 3 meses", "yesterday"
  • Clean formatted output - Aligned tables and clear summaries, not raw JSON
  • Clear error messages - If something's wrong, you'll know exactly what to fix

Does it work with local models?

Yes. This is an MCP server, so it works with any client that speaks MCP, and the model behind that client is the client's business, not this server's. Claude Desktop, Claude Code, Cursor and VS Code are the ones documented below because they are the ones people ask about, but anything that can run an MCP client, including a local setup pointed at Ollama or LM Studio, talks to it the same way.

Your budget data goes to whatever model your client uses. If that matters to you, and for a lot of people running Actual it does, a local model keeps it on your machine.

Does it work with ChatGPT?

No. ChatGPT's connectors only accept remote MCP servers: a public HTTPS endpoint speaking SSE or Streamable HTTP. With HTTP mode this server can be one. What we have read says their connectors sign in through OAuth or not at all and cannot send the fixed token header this version takes, and nobody here has tried it. OpenAI does offer a tunnel for local servers, but it is limited to enterprise plans.

Making it work would mean exposing your Actual server to the internet, which is the opposite of what most people running Actual want. Anything that can start a local MCP process works instead: Claude Desktop, Claude Code, Cursor, VS Code, Gemini CLI, or your own setup pointed at a local model.

If what you actually want is OpenAI's model, use Codex, which does run MCP servers locally over stdio. Option 6 is the one command it takes.

Prerequisites

  • Actual Budget server running (local or remote)
  • Node.js 22.14 or newer for every option below except the Desktop Extension (see Node.js requirement)
  • The Desktop Extension needs nothing but Claude Desktop. It runs on the Node that Claude Desktop ships, and the bundle carries a SQLite binary for every platform it supports, so nothing is compiled either. Checked on Windows 11 with Claude Desktop 2.110.0 and Node removed from the machine.

Quick Start

On Claude Desktop, the shortest path is the extension: no config file to edit and no command to run. Otherwise, copy this into Claude Code or Claude Desktop:

Install the actual-budget-mcp MCP server from npm (https://github.com/henfrydls/actual-budget-mcp).

Configure it with these credentials:

  • My Actual Budget server: http://localhost:5006
  • Password: YOUR_PASSWORD
  • Budget ID: YOUR_BUDGET_ID

Claude will configure everything for you.

Installation

Option 1: Claude Desktop extension (no config files)

A packaged Desktop Extension is available: install it and Claude Desktop asks for your server URL, password and Sync ID in its own settings UI, with the password and session token stored in your operating system's keychain rather than a config file you have to edit.

[Download actual-budget-mcp.mcpb](https://github.com/henfrydls/actual-budget-mcp/releases/latest/download/actual-budget-mcp.mcpb), then open Claude Desktop, go to Settings > Extensions, and drag the file onto that screen.

On Windows, dragging is the way in: double-clicking the file opens Windows' "select an app to open this file" dialogue instead, because Claude Desktop does not register the .mcpb file type. Verified on a clean Windows 11 install with Claude Desktop 0.14.10.

The extension carries everything it needs, so the first question you ask is answered straight away rather than after an install you cannot see. It is a large download, once, with a progress bar.

You do not need Node.js installed for this route. Claude Desktop runs the extension on the Node it ships with. Checked by renaming Node out of the way on a Windows 11 machine and asking a question anyway: the server started and answered.

Earlier builds launched the package from npm instead. That made the download small and moved it to the first run, where nothing showed progress: Claude Desktop waited, decided the server was dead and said it could not connect, and the extension started working on its own a few minutes later. The bundle now includes Actual's SQLite binary for every platform it supports. They are N-API binaries, so one per platform serves every Node version, and nothing has to be chosen at startup.

Updating the extension

Installing a new version over an old one keeps the settings you filled in, with one exception seen in practice: the saved server password was cleared when a field's title changed between versions. If Claude cannot connect after an update, open the extension's settings and check the password field before looking anywhere else.

Option 2: Claude Code (one command)
claude mcp add actual-budget-mcp -e ACTUAL_SERVER_URL=http://localhost:5006 -e ACTUAL_PASSWORD=your-password -e ACTUAL_BUDGET_ID=your-budget-id -- npx -y actual-budget-mcp
Option 3: Claude Desktop (edit the config file)

Add this to your claude_desktop_config.json:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{

"mcpServers": { "actual-budget-mcp": { "command": "npx", "args": ["-y", "actual-budget-mcp"], "env": { "ACTUAL_SERVER_URL": "http://localhost:5006", "ACTUAL_PASSWORD": "your-password", "ACTUAL_BUDGET_ID": "your-budget-sync-id" } } } }

Option 4: Cursor

The button installs it with placeholder values. Open Cursor Settings > MCP afterwards and replace the three: your server URL, your password, and your budget's Sync ID. To do it all by hand instead, go to Cursor Settings > MCP > Add new MCP server and add:

{

"mcpServers": { "actual-budget-mcp": { "command": "npx", "args": ["-y", "actual-budget-mcp"], "env": { "ACTUAL_SERVER_URL": "http://localhost:5006", "ACTUAL_PASSWORD": "your-password", "ACTUAL_BUDGET_ID": "your-budget-sync-id" } } } }

Option 5: VS Code (GitHub Copilot)

Same as above: the button fills in placeholders, and you replace the three values afterwards. By hand, add this to your VS Code settings.json:

{

"mcp": { "servers": { "actual-budget-mcp": { "command": "npx", "args": ["-y", "actual-budget-mcp"], "env": { "ACTUAL_SERVER_URL": "http://localhost:5006", "ACTUAL_PASSWORD": "your-password", "ACTUAL_BUDGET_ID": "your-budget-sync-id" } } } } }

Option 6: Codex (OpenAI)

One command, and it writes the entry into ~/.codex/config.toml for you:

codex mcp add actual-budget-mcp \

--env ACTUAL_SERVER_URL=http://localhost:5006 \ --env ACTUAL_PASSWORD=your-password \ --env ACTUAL_BUDGET_ID=your-budget-sync-id \ -- npx -y actual-budget-mcp

Codex has no extension or bundle format, so this one-liner is the shortest route there is. codex mcp list shows it afterwards, and codex mcp remove actual-budget-mcp undoes it.

This is Codex the local agent, the CLI and the IDE extension. Codex in the browser runs on OpenAI's machines and cannot reach an Actual server on your network.

Option 7: Docker

The image speaks stdio like every other option, so your client starts the container and owns its lifetime:

{

"mcpServers": { "actual-budget-mcp": { "command": "docker", "args": [ "run", "-i", "--rm", "--add-host=host.docker.internal:host-gateway", "-v", "actual-budget-mcp-data:/data", "-e", "ACTUAL_SERVER_URL", "-e", "ACTUAL_PASSWORD", "-e", "ACTUAL_BUDGET_ID", "ghcr.io/henfrydls/actual-budget-mcp:latest" ], "env": { "ACTUAL_SERVER_URL": "http://host.docker.internal:5006", "ACTUAL_PASSWORD": "your-password", "ACTUAL_BUDGET_ID": "your-budget-sync-id" } } } }

Two things that bite everyone once:

  • Inside the container, `localhost` is the container. Your Actual server is not there. host.docker.internal (

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx