Open Net Worth
Open Net Worth는 직접 운영하는 오픈소스 개인 AI 자산 비서로, 전체 재무를 하나의 원장에 기록하고 사용자가 제어하는 AI가 관리
Claude에게 잔액·지출·청구서 도착 여부를 물어보세요. 읽기 전용, 직접 운영 서버에서 오픈뱅킹으로, 오픈소스
Ask Claude about your balance, your spending, whether the invoice landed. Read-only, on a server you run, through open banking. Open source.
금융TypeScript · DockerfileGitHub @noskillish온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
BankMCP™: your bank, in Claude. Self-hosted, read-only MCP server for your own bank accounts via open banking (Enable Banking, PSD2).
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Your bank, in Claude. Read-only, self-hosted, one user.
BankMCP™ is not a bank. It is a small open-source server you host yourself
(package name bank-mcp). It connects to your banks
through Enable Banking, which wraps 2,700+
European banks in one PSD2 API, and exposes them to Claude as an MCP
connector. Read-only, no payments, no third party holding your data.
"Has the invoice from Acme been paid?" · "What did we spend on groceries in
August?" · "Which subscriptions am I paying for, and what do they cost per
year?" · "Tell me when my balance drops below 5,000."README 전문 보기 ↗Your bank, in Claude. Read-only, self-hosted, one user.
BankMCP™ is not a bank. It is a small open-source server you host yourself
(package name bank-mcp). It connects to your banks
through Enable Banking, which wraps 2,700+
European banks in one PSD2 API, and exposes them to Claude as an MCP
connector. Read-only, no payments, no third party holding your data.
"Has the invoice from Acme been paid?" · "What did we spend on groceries in August?" · "Which subscriptions am I paying for, and what do they cost per year?" · "Tell me when my balance drops below 5,000."
Claude ──OAuth──▶ your BankMCP™ server ──JWT──▶ Enable Banking ──PSD2──▶ your bank
You need an Enable Banking account (free), a place to run a container with a public https address, and about fifteen minutes.
Any container host works. The server needs a persistent volume at /data
and a public https address; it asks you for everything else in the browser.
Railway: New Project, Deploy from GitHub repo, pick this repo. Add a
volume mounted at /data and generate a domain (Settings, Networking, port
8080). The Dockerfile and railway.json are picked up
automatically, and the server learns its own address from Railway.
Docker Compose on your own box: docker compose up -d, then put a TLS
terminator in front (Caddy needs two lines:
YOUR-HOST { reverse_proxy localhost:8080 }) and set BASE_URL to the
public address. Fly.io works like Railway: volume at /data, the app name
gives the address.
Open the address. A fresh server shows a setup page.
The setup page lists the exact values Enable Banking's form asks for: the redirect URL, a description for the consent screen, and the privacy and terms URLs, all pointing at your server. At https://enablebanking.com/cp/applications create an application with them:
.pem file downloads once when you
save; that is the key. The application id (a UUID) is shown after saving.Back on the setup page: paste the application id, choose the .pem file, pick
a password of twelve characters or more. Everything is stored on the volume,
and the page turns into a status page showing the connector URL for Claude.
Prefer configuration by environment? Set these and the setup page never appears:
| Variable | Value |
|---|---|
EB_APP_ID | the application id |
EB_PRIVATE_KEY | the .pem contents, base64: base64 -i app.pem | tr -d '\n' |
ADMIN_PASSWORD_HASH | output of npm run hash-password (or set ADMIN_PASSWORD) |
BASE_URL | https://YOUR-HOST (Railway and Fly set this for you) |
DEFAULT_COUNTRY | your country code, e.g. DK |
APP_NAME | optional, the name shown on the sign-in and status pages (default BankMCP™) |
Optional: NOTIFY_WEBHOOK_URL for watch notifications and sign-in alerts (a
Slack incoming webhook works). Full list in .env.example.
npm run check verifies a configuration from a terminal.
In claude.ai (or the desktop app): Settings → Connectors → Add custom
connector. Name it BankMCP™, paste https://YOUR-HOST/mcp, save, then click
Connect. Your server shows a password page; enter the admin password. That
is the only login you will do.
In Claude Code:
claude mcp add --transport http bank https://YOUR-HOST/mcp
then run /mcp inside Claude Code to sign in.
In Claude, say "connect my bank" (or use the connect-bank prompt). Claude
looks up your bank, gives you a link, you log in at the bank and approve, and
the accounts appear. Consents last up to 180 days; Claude tells you when one
is about to expire and the same conversation renews it.
Give accounts labels ("Everyday", "Joint expenses", "Mortgage") when Claude suggests them. Every tool accepts labels instead of ids.
Enable Banking's production environment normally requires a contract, but it has a restricted mode for accessing your own accounts, explicitly allowed for individual non-commercial use. After registering a Production application:
Read the Restriction of Use section of Enable Banking's Terms of Service before you rely on it: restricted mode is for your own accounts, not for offering a service to others. This project does not change those terms.
Tools (all read-only):
| Tool | What it does |
|---|---|
list_banks, start_consent, consent_status, disconnect_bank | connect and manage banks |
list_accounts, set_account_label | accounts with booked balances; your own names for them |
get_balances | booked and available balance for one account |
get_transactions | signed amounts, one counterparty, one description; paginated |
create_watch, list_watches, delete_watch, check_watches | background rules with webhook notifications |
Prompts: connect-bank, monthly-summary, build-budget,
subscription-audit, unusual-transactions.
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗