⏳ This skill is pending AI review.
Scores will appear once the review pipeline completes.
bank
Answer questions about the user's own bank accounts and money using the bank MCP tools (list_accounts, get_balances, get_transactions, watches). Use whenever the user asks about balances, spending, income, subscriptions, whether a payment arrived, or wants a monthly review. Encodes the account map and categorisation rules so answers are consistent.
Choose how to use this skill
You do not need every option. Choose the path your AI client supports. The stable page stays the same; versioned files are immutable.
1. Native installer
This listing has no registered native installer command. Use the complete package or source fallback below, depending on what your client supports.
Do not guess an installer command or replace an existing version without reviewing the diff.
2. Complete package recommended
Download the ZIP when available. It includes SKILL.md plus the references, security notes and version metadata.
No complete ProSkills package is published for this listing yet.3. Prompt-only
Copy the prompt above when the agent can read the stable page or when you want to adopt the workflow without installing a skill.
Need only the instruction file?
Download SKILL.md only if your client requires a single file. The complete ZIP is safer for a full installation because it preserves the references and release context.
No path installs or executes anything by itself. Your agent still needs access to the project files. Before updating, compare the installed version and review the diff.
// RATINGS
Not yet listed on ClawHub or SkillsMP
// README
BankMCP™
Your AI now reads your bank. Ask it anything about your accounts. Read-only, self-hosted, one user. Standard MCP; tested with Claude and Ollama.
BankMCP™ is not a bank. It is a small open-source server you host yourself
(npm package bankmcp). It connects to your banks
through Enable Banking, which wraps 2,700+
European banks in one PSD2 API, and exposes them to any MCP client as a
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."
How it works
Your assistant ──OAuth──▶ your BankMCP™ server ──JWT──▶ Enable Banking ──PSD2──▶ your bank
- Your assistant (Claude, ChatGPT, Cursor, or any MCP client) talks to your server as a connector. You sign in once with a password; tokens handle the rest.
- Your server holds the Enable Banking application key, the bank consents and your account ids. It does not store balances or transactions and sends no telemetry.
- Enable Banking is the licensed provider between your server and your bank. Every balance and transaction you ask for passes through their servers on the way to yours; they do not store it, and they do not see your bank credentials, since you log in at your bank's own site. This hop is how PSD2 works and is the one part of the chain that is not on your machine.
Setup
Two ways to run it. Both need a free Enable Banking account and about ten minutes.
- On your own machine for Claude Desktop, Claude Code, Cursor and other desktop MCP clients. Nothing to deploy, no password.
- On a small server when you want it in claude.ai or on your phone.
On your own machine
The server and its state live on your computer, and no AI vendor or app maker sees your data. The bank connection is not on your computer: it goes through Enable Banking, as described above.
Requires Node 24 or newer. Add BankMCP™ to your client:
Claude Code:
claude mcp add bankmcp -- npx -y bankmcp
Claude Desktop: download
bankmcp.mcpb
and open it; Claude Desktop installs it as an extension. Or add it by hand in
claude_desktop_config.json:
{ "mcpServers": { "bankmcp": { "command": "npx", "args": ["-y", "bankmcp"] } } }
Cursor and others: the same command, npx -y bankmcp, as a stdio server.
Then ask your assistant anything about your bank. It will answer with a localhost address. Open it: the setup page lists the values to register an application at Enable Banking, then takes the application id and the key file. Your browser will warn once about the certificate on localhost, which the server made for itself because Enable Banking requires https for the bank redirect. Continue past it. Say "connect my bank" and log in at your bank.
To avoid the warning altogether, use a certificate your browser already
trusts: mkcert makes one with
mkcert localhost 127.0.0.1; point TLS_CERT_PATH and TLS_KEY_PATH at the
two files and the server uses them instead of generating its own. BankMCP™
itself does not touch your system's trust store.
State lives in ~/.bankmcp. Delete the folder to forget everything.
On a server
1. Deploy
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.
A prebuilt image is published on every release:
ghcr.io/noskillish/bankmcp (built by GitHub Actions
from the tagged source, linux/amd64 and linux/arm64).
Railway:
deploys the published image with a volume at
/data and a domain, nothing
to fill in. Or by hand: New Project, Deploy from GitHub repo, pick this
repo, add a volume mounted at /data and generate a domain (Settings,
Networking, port 8080). The server learns its own address from Railway.
Fly.io: three commands from a checkout, using fly.toml:
fly launch --copy-config --no-deploy # pick an app name and region
fly volumes create data --size 1
fly deploy
Render:
uses render.yaml. Render's persistent disks need a paid
instance.
Docker on your own box:
docker run -d --name bankmcp --restart unless-stopped \
-p 8080:8080 -v bankmcp-data:/data ghcr.io/noskillish/bankmcp:latest
or docker compose up -d with compose.yaml. 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. The server binds every interface by default. When the proxy
runs on the same machine, set BIND_HOST=127.0.0.1 so nothing else on the local
network reaches the login and setup pages.
Open the address. A fresh server shows a setup page.
2. Register an Enable Banking application
The setup page can do this for you. Enter the email of your Enable Banking account (or the one you want to create it with) and press Send me the sign-in link. Enable Banking emails you a one-time link; paste it on the next page. Your server signs in with it once, creates the application with the right redirect and policy addresses, generates the key pair and stores the id and the key. The sign-in is not kept. On a local server the click on the link does the same without pasting.
Or by hand: the setup page lists the exact values Enable Banking's form asks
for, with Copy buttons. At https://enablebanking.com/cp/applications create
an application with them, keep generate private key selected, and save. A
.pem file downloads once; that is the key. Paste the application id and
choose the .pem file on the setup page. Before anything is stored, the id
and key are checked against Enable Banking.
Either way: Production for your real accounts, Sandbox for test data. A production application for your own accounts is activated once in the Control Panel with Activate by linking accounts; see Going live below.
3. Finish setup
Choose a password of twelve characters or more. A Ready page then shows what was checked: the application, whether its redirect URL is registered and whether it is active, and the connector address to copy.
Prefer configuration by environment? Set these and the setup page does not appear:
4. Add the connector in your assistant
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.
Other MCP clients (ChatGPT, Mistral Le Chat, Cursor, VS Code) work the same
way: add the URL as a remote MCP server, sign in with the password. Tested
with Claude, Claude Code and Ollama; the others follow the same standard.
A client whose domain is not in ALLOWED_REDIRECT_HOSTS needs adding there.
5. Connect your bank
In your assistant, say "connect my bank" (or use the connect-bank prompt). It
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; you are told when one
is about to expire and the same conversation renews it.
Give accounts labels ("Everyday", "Joint expenses", "Mortgage") whe
// HOW IT'S BUILT
KEY FILES