Finance Toolkit
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Actual Budget, carefully: deletes preview first, and new transactions check for duplicates.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
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ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด 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/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 เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .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_BUDGET_IDS envACTUAL_BUDGET_WORKERS envACTUAL_WORKER_IDLE_MINUTES envACTUAL_WORKER_READY_SECONDS envACTUAL_READ_ONLY envACTUAL_TOOLSET envACTUAL_DATA_DIR envACTUAL_HTTP_TIMEOUT_MS envACTUAL_HTTP_PORT envACTUAL_HTTP_HOST envACTUAL_HTTP_ALLOW_REMOTE envACTUAL_HTTP_ALLOWED_HOSTS envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 9 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub henfrydls ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 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
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.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
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.
ACTUAL_READ_ONLY=1 hides the write tools from the model entirely (Safety)repair_sync rebuilds the local sync state when @actual-app/api and your server disagree, the failure that otherwise leaves every tool erroringa1b2c3d4-..., with helpful suggestions if ambiguousYes. 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.
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.
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:
Claude will configure everything for you.
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.
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.
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
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" } } } }
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" } } } }
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" } } } } }
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.
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:
host.docker.internal (ตัดมาแค่ช่วงต้น อ่านต่อใน repo