Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Connect your AI assistant to YNAB. Read-only by default, with reversible opt-in writes.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
YNAB_API_KEY, YNAB_PLAN_ID, YNAB_ALLOW_WRITESค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"for-ynab": {
"command": "uvx",
"args": [
"mcp-server-for-ynab"
],
"env": {
"YNAB_API_KEY": "ใส่ค่าของคุณ",
"YNAB_PLAN_ID": "ใส่ค่าของคุณ",
"YNAB_ALLOW_WRITES": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add for-ynab --env YNAB_API_KEY='ใส่ค่าของคุณ' --env YNAB_PLAN_ID='ใส่ค่าของคุณ' --env YNAB_ALLOW_WRITES='ใส่ค่าของคุณ' -- uvx mcp-server-for-ynabเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"for-ynab": {
"command": "uvx",
"args": [
"mcp-server-for-ynab"
],
"env": {
"YNAB_API_KEY": "ใส่ค่าของคุณ",
"YNAB_PLAN_ID": "ใส่ค่าของคุณ",
"YNAB_ALLOW_WRITES": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"for-ynab": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-server-for-ynab"
],
"env": {
"YNAB_API_KEY": "ใส่ค่าของคุณ",
"YNAB_PLAN_ID": "ใส่ค่าของคุณ",
"YNAB_ALLOW_WRITES": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
YNAB_PLAN_ID envYNAB_ALLOW_WRITES envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub hs737 ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: YNAB_API_KEY
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.4.0) เข้า registry 2 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, EmbeddedCI BenchPod
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Drive a BenchPod hardware-in-the-loop bench: power, flash, UART, I2C, CAN, analog and logic.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Ask your budget a question. Connect Claude, Codex, Cursor, or any MCP client to YNAB and get answers about your actual money — how the month is going, what is overspent, what your subscriptions really cost.
YNAB_API_KEY=your_token uvx mcp-server-for-ynab smoke
Read-only by default. The write tools are not registered at all unless you set YNAB_ALLOW_WRITES=1, so they never appear to the assistant and nothing can change your budget until you say so. When you do enable them, every write records the state that preceded it and can be undone.
An MCP server that exposes the YNAB API as tools, then adds enriched tools answering questions the raw API cannot answer in one call — budget health, cleanup queues, spending analysis, recurring charges.
Generate a personal access token at app.ynab.com/settings/developer.
You also need uv, which provides uvx:
curl -LsSf https://astral.sh/uv/install.sh | sh # macOS and Linux
brew install uv # macOS with Homebrew winget install --id=astral-sh.uv -e # Windows
Check both work. Nothing to clone — uvx fetches the package and runs it in a throwaway environment:
YNAB_API_KEY=your_token uvx mcp-server-for-ynab smoke
smoke validates configuration and tool registration, then exits. It should print smoke: app created, 62 tools registered.
The two most common paths:
Claude Code — install the plugin, which brings its own MCP config:
/plugin marketplace add hs737/mcp-server-for-ynab
/plugin install mcp-server-for-ynab@mcp-server-for-ynab
Or register the server directly, if you would rather not use a plugin:
claude mcp add --env YNAB_API_KEY=your_ynab_token --transport stdio --scope user \
ynab -- uvx mcp-server-for-ynab stdio
Claude Desktop, Cursor, Windsurf, and most others — paste into the client's MCP config file:
{
"mcpServers": { "ynab": { "command": "uvx", "args": ["mcp-server-for-ynab", "stdio"], "env": { "YNAB_API_KEY": "your_ynab_token", "YNAB_PLAN_ID": "your_plan_id" } } } }
YNAB_PLAN_ID is optional but recommended — with it set, you never have to name a budget in a request. Full per-client instructions, including where each config file lives and how to keep the token out of it, are in Client Setup.
Desktop hosts that accept bundles — download the .mcpb file from the latest release and open it. The host asks for your token in a form and stores it in your OS keychain, so there is no config file to edit and no token sitting in plain text. A checkbox controls whether writes are enabled.
A published image is available for linux/amd64 and linux/arm64. The server speaks MCP over stdin and stdout, so run it attached with -i. There is no port to publish:
docker run -i --rm -e YNAB_API_KEY=your_ynab_token \
ghcr.io/hs737/mcp-server-for-ynab
Or build it yourself from a clone:
docker build -t mcp-server-for-ynab .
docker run -i --rm -e YNAB_API_KEY=your_ynab_token mcp-server-for-ynab
If you enable writes, mount a volume for the history — otherwise --rm discards the record that makes a revert possible:
docker run -i --rm -e YNAB_API_KEY=your_ynab_token -e YNAB_ALLOW_WRITES=1 \
-v ynab-mcp-history:/home/app/.mcp-server-for-ynab mcp-server-for-ynab
What's my cash position across all accounts?
If that works, you're set. If it doesn't, see Troubleshooting — the usual cause is that the client cannot find uvx on its PATH.
Read-only, works out of the box:
| Ask | Tool it reaches for |
|---|---|
| "How is this month's budget doing?" | overview_month_health |
| "What's my cash position across all accounts?" | overview_cash_position |
| "Which transactions still need a category?" | triage_uncategorized |
| "What's waiting for me to approve?" | triage_unapproved |
| "Which categories are overspent, and by how much?" | analysis_overspent_categories |
| "Which targets won't be funded this month?" | analysis_target_funding_gaps |
| "Are any scheduled transactions at risk?" | analysis_upcoming_scheduled_risks |
| "What have I spent at this payee over the last year?" | bookkeeping_transaction_history |
| "What subscriptions am I actually paying for?" | analysis_recurring_charges |
| "Does this account match the statement, and what's in the way?" | reconcile_preview |
| "Here's the bank CSV — what's missing on each side?" | transactions_match_statement |
| "Are there card holds sitting on my account that never posted?" | triage_pending_imports |
With YNAB_ALLOW_WRITES=1:
Categorize last week's uncategorized transactions, then show me what you changed.
The agent categorizes, and history_list shows every write with the value that preceded it. history_revert undoes any of them.
Agents work best when they start with overview_available_tools, which returns the current tool catalog grouped by family. See Tool Surface for the full map.
Seven prompts ship with the server, and most clients surface them as slash commands — a starting point that does not require reading the tool list first: monthly review, weekly triage, categorize and approve, subscription audit, cash position, review-and-undo, and a multi-month budget audit.
Four resources (ynab://guide/*) carry the YNAB method, the write-safety rules, guidance on which tool to reach for, and how credit accounts behave. They are fetched on demand, so they cost nothing until a client asks for them.
| Variable | Required | Description |
|---|---|---|
YNAB_API_KEY | Yes | YNAB personal access token |
YNAB_PLAN_ID | Recommended | Default plan ID, making plan_id optional on most tools |
YNAB_ALLOW_WRITES | No | Register write tools. Unset means read-only |
YNAB_HISTORY_PATH | No | Write history file, default ~/.mcp-server-for-ynab/history.jsonl |
YNAB_RATE_LIMIT_PER_HOUR | No | Client-side request budget, default 190 of YNAB's 200 |
YNAB_RATE_WARN_THRESHOLD | No | Warn when this many requests remain, default 50 |
LOG_LEVEL | No | Logging verbosity, default INFO |
Set these in your MCP client's env block. For local development, copy .env.example to .env and fill it in.
YNAB allows 200 requests per hour per token, and a single enriched tool can spend several. The server tracks its own usage in a rolling hour and stops just below YNAB's ceiling, so the limit you hit is local and clearly reported rather than a 429 in the middle of a workflow.
Every tool response carries requests_used_this_hour and requests_remaining, the way an HTTP API returns X-RateLimit-Remaining — an agent paces itself against a number it can already see, where asking for it costs a call it will not make. overview_request_budget adds the limit, the window, and when an exhausted budget reopens; ping answers whether the server is up at all. Both cost nothing.
The quota belongs to the access token, so your own YNAB apps spend from it too. The count here is what this server used, which can be less than what YNAB has left — every rate-limit error says so, and carries the reopening time as an absolute timestamp as well as a delay, so a scheduled retry does not come back early.
62 read-only tools, 84 with writes enabled, plus 7 guided prompts and 4 reference resources.
| Family | Type | Purpose |
|---|---|---|
overview | enriched | Budget health snapshots and orientation |
triage | enriched | Transaction cleanup queues |
bookkeeping | enriched | Categorization suggestions, memo help, history |
analysis | enriched | Overspending, funding gaps, scheduled risks, card funding, multi-month audits |
reconcile | enriched | Statement comparison, bank-export matching, and finishing a reconciliation |
history | enriched | Review and roll back writes this server made |
changes | enriched | What moved since a given server_knowledge value |
user | raw | YNAB user info |
plans | raw | Plan and settings reads |
accounts | raw | Account reads and creation |
categories | raw | Categories and category groups |
months | raw | Month-level budget data, multi-month ranges, batch assignment |
payees | raw | Payee management |
payee_locations | raw | Geographic payee metadata, niche/low-priority |
transactions | raw | Transaction CRUD and import trigger |
scheduled_transactions | raw | Scheduled transaction management |
money_movements | raw | Money movement data, and moving money between categories |
Raw tools are close mirrors of YNAB endpoints — use them for exact reads and most writes. Enriched tools combine several reads into one answer — use th
ตัดมาแค่ช่วงต้น อ่านต่อใน repo