Local-first personal finance MCP

io.github.adelaidasofia由 GitHub 帳號 adelaidasofia 發布v0.1.0更新於 Oct 24, 2026

Local-first personal finance MCP. Aggregates bank, brokerage, credit, and loan accounts via Plaid.…

發布方自己的服務:Finance Foundation

概覽

AI 產生的概覽

透過 Plaid 彙整銀行、券商、信用卡與貸款帳戶,並將餘額、持倉與交易寫入本機 markdown 儲存庫。

可以做什麼
透過 Plaid 連結美國金融機構,抓取即時餘額、含成本基礎的投資持倉、以游標為基礎的交易歷史,以及信用卡年利率與學貸還款資訊等負債明細。結果會寫入本機 Obsidian 風格 markdown 檔案(Accounts.md、Investments.md、Cash Flow.md)的自動同步區塊,交易紀錄則存入本機 SQLite 資料庫。它也會計算每月收支彙總,並保留 Plaid 呼叫與鑰匙圈存取的稽核日誌。
適用情境
適合想讓助理讀取自己的銀行、券商與貸款資料,並在自己的機器上保留私有純 markdown 紀錄,而不把資料交給個人理財 SaaS 的使用者。適用於個人記帳、淨資產追蹤與每月現金流彙總,而非交易或付款。
執行需求
在 macOS 上以本機程序執行(需要鑰匙圈),需要 Python 3.11+。需要 Plaid 憑證:PLAID_CLIENT_ID 與 PLAID_SECRET,放在外掛根目錄的 .env 檔案中。需要連線至 plaid.com 的網路存取。必須設定儲存庫資料夾路徑;Plaid 環境(sandbox、development、production)透過 PLAID_ENV 選擇。
安裝前請注意
它處理真實金融帳戶資料,並要求提供 PLAID_CLIENT_ID 與 PLAID_SECRET,這些憑證存放在 .env 檔案中。Plaid 存取權杖保存在 macOS 鑰匙圈,不會出現在工具回應中。連結與取消連結機構會改變狀態:unlink 會撤銷 Plaid item 並刪除鑰匙圈項目。它會在設定的儲存庫資料夾內寫入 markdown 檔案,並將交易存入本機 SQLite 資料庫。README 表示資料只會傳送到 plaid.com,但也說明首次載入會向 myceliumai.co 發送一次匿名安裝訊號,可用 MYCELIUM_NO_PING=1 關閉。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Local-first personal finance MCP,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[License] [GitHub stars] [Last commit] [Open issues] [PyPI version] [PyPI downloads] [Built by Mycelium AI]

finance-mcp

Local-first personal finance MCP. Aggregates bank, brokerage, credit, and loan accounts via Plaid. Writes balances, holdings, and transactions to your local Obsidian-style markdown vault. Access tokens stay in macOS Keychain. Never sends data anywhere except plaid.com.

What it does

  • Link any US bank or brokerage via Plaid (Chase, Citi, Schwab, Discover, Fidelity, Wells Fargo, Bank of America, Capital One, Vanguard, Robinhood, Coinbase, student-loan servicers, 12,000+ institutions total).
  • Pull live balances for every account → writes the auto-sync block in your vault's Accounts.md.
  • Pull investment holdings with shares, cost basis, current value → writes Investments.md.
  • Pull transactions cursor-style (delta only after first sync) → stores in local SQLite.
  • Roll up monthly cash flow by category → writes Cash Flow.md.
  • Pull liabilities (credit-card APRs, statement balances, student-loan payoff info).
  • Audit log every Plaid call and every keychain access.

Why local-first matters

Most personal-finance SaaS (Mint, Copilot, YNAB, Monarch) puts your bank data on their servers and charges you for the privilege. This MCP:

  • Runs on your laptop, talks directly to Plaid, writes to your local vault.
  • Stores access tokens in macOS Keychain, not env files or any database.
  • Never returns access tokens in tool responses — items are referenced by alias (chase, citi, etc.).
  • Vault data is plain markdown with inline Dataview fields — your data, your format, queryable forever.

Install

Open Claude Code, paste:

/plugin marketplace add adelaidasofia/finance-mcp/plugin install finance-mcp@finance-mcp

Requires macOS (for Keychain) and Python 3.11+. After install, set your Plaid credentials in .env at the plugin root (see SETUP.md for the Plaid signup walkthrough).

First-time use

> healthcheck

If it shows blockers, follow them. Once green:

> link_start(institution_alias="chase")

Open the returned link_token in Plaid's Link demo page (paste the token in the field labeled "Link Token", then click "Open Plaid Link"). Complete bank auth in the browser. Copy the public_token from the success page.

> link_complete(institution_alias="chase", public_token="public-sandbox-...")

Repeat for each bank.

> sync_balances> sync_holdings> sync_transactions> rollup_month(month="2026-05")

Your vault's Accounts.md, Investments.md, and Cash Flow.md now have auto-sync blocks with current data. Re-run any time.

Tool surface

ToolWhat it does
healthcheckVerify Plaid creds, vault path, keychain access.
link_start(alias)Start linking a new bank. Returns link_token.
link_complete(alias, public_token)Exchange public_token, store in Keychain.
list_linkedList linked institutions + last-sync timestamps.
unlink(alias)Remove an institution. Revokes Plaid item + deletes Keychain entry.
sync_balances([alias])Pull current balances → Accounts.md.
sync_holdings([alias])Pull investment positions → Investments.md.
sync_transactions([alias])Cursor-based transaction sync → SQLite.
sync_liabilities([alias])Pull credit + loan details.
sync_all([alias])All of the above in sequence.
rollup_month(month)Compute monthly income/expense rollup → Cash Flow.md.
audit_tail(n)Last N audit-log entries.

Security model

  • Plaid access_token lives in macOS Keychain (security CLI), service name finance-mcp, account name = your institution alias.
  • Plaid client_id + secret live in .env (chmod 600). Never committed (in .gitignore).
  • Transaction history lives in SQLite at ~/.claude/finance-mcp/data.db (not in your vault).
  • Vault writes only happen inside the configured FINANCE_MCP_FINANCE_FOLDER. Set to empty string to disable vault writes entirely.
  • Audit log records every Plaid call and every keychain operation.
  • Tool responses never include raw access tokens.

Plaid environments

  • sandbox (default): fake banks, fake credentials (user_good / pass_good). Free forever. Use this first.
  • development: real banks, free up to 100 items per Plaid account. Use this for personal accounts.
  • production: real banks at scale. Requires a Plaid application + paid plan.

Set via PLAID_ENV in .env. Switch by re-linking all institutions (tokens are environment-bound).

Companion MCPs

  • jkoelker/schwab-mcp — Direct Charles Schwab Trader API for options, trade placement, and deep position data beyond what Plaid exposes.
  • tomasgesino/schwab-mcp — Schwab wheel-strategy management with dry-run-default trading.

finance-mcp covers Schwab basic balances and holdings via Plaid; the above are the route for Schwab power-user features.

Related MCPs in this family

Telemetry

This plugin sends a single anonymous install signal to myceliumai.co the first time it loads in a Claude Code session on a given machine.

What is sent:

  • Plugin name (e.g. slack-mcp)
  • Plugin version (e.g. 0.1.0)

What is NOT sent:

  • No user identifiers, names, emails, tokens, or API keys
  • No file paths, message content, or anything from your work
  • No IP address is stored after dedup processing

Why: Helps the maintainer know which plugins people actually install, so attention goes to the ones that get used.

Opt out: Set the environment variable MYCELIUM_NO_PING=1 before launching Claude Code. The hook will skip the network call entirely. Already-pinged installs leave a sentinel at ~/.mycelium/onboarded-<plugin> — delete it if you want to reset state.

License

MIT. See LICENSE.


Legacy install (manual)

For users who can't use the plugin marketplace yet, the manual flow:

bash
git clone https://github.com/adelaidasofia/finance-mcp ~/.claude/finance-mcpcd ~/.claude/finance-mcppip3 install --break-system-packages -r requirements.txtcp .env.example .envchmod 600 .env

Then register with Claude Code by adding to your vault's .mcp.json (project scope) or ~/.claude.json (user scope, via claude mcp add):

json
"finance": {  "type": "stdio",  "command": "python3",  "args": ["-m", "finance_mcp.server"],  "env": {    "PYTHONPATH": "/Users/<you>/.claude/finance-mcp",    "FINANCE_MCP_VAULT_PATH": "/Users/<you>/Documents/MyVault",    "FINANCE_MCP_FINANCE_FOLDER": "Finance"  }}

Restart Claude Code. Tools appear under mcp__finance__*.


Built by Adelaida Diaz-Roa. Full install or team version at diazroa.com.

來源:README.md,提交 9d3b986

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Finance 整合