Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

BankMCP™

by noskillishversion 0.1.14i★ –iRuns on your computer
Registry nameio.github.noskillish/bankmcp

Install

Overview

Description from the maker (original English)

Read-only MCP server for your own bank accounts via Enable Banking. Self-hosted, one user.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Accounting, finance & tax

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • The registry lists no key to fill in.

You need

  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "bankmcp": {
      "command": "npx",
      "args": [
        "-y",
        "bankmcp"
      ]
    }
  }
}

Run this in your terminal

claude mcp add bankmcp -- npx -y bankmcp

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "bankmcp": {
      "command": "npx",
      "args": [
        "-y",
        "bankmcp"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "bankmcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "bankmcp"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account noskillish, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Accounting, finance & taxi

  • More stars than 0% of the other 1734 servers in this category
  • Published to the registry more recently than 44% of the other 1734 servers in this category
  • Basic checks equal to or better than 100% of the other 1734 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is BankMCP™ safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.1.14) reached the registry 2 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: Finance Toolkit, SolidInvoice, Korea Tax Calculator

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Finance Toolkit

by JerBouma

500+ transparent financial methods calculated from raw statements, not third-party endpoints.

Computer or cloud★ 5,496MITUpdated today
Install

SolidInvoice

by SolidInvoice

Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.

Runs in the cloud★ 981MITUpdated 8 days ago
Install

Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.

Runs on your computer★ 97MITUpdated yesterday
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

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") when it suggests them. Every tool accepts labels instead of ids.

Going live with your own accounts

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:

  1. On the (Inactive) application click Activate by linking accounts.
  2. Log in at your bank and approve. Repeat for each bank you want.
  3. The application becomes active and the API returns only the accounts you linked this way.

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.

What you get

Tools (all read-only):

ToolWhat it does
list_banks, start_consent, consent_status, disconnect_bankconnect and manage banks
list_accounts, set_account_labelaccounts with booked balances; your own names for them
get_balancesbooked and available balance for one account
get_transactionssigned amounts, one counterparty, one description; paginated
search_transactionsfind a merchant or invoice number across all accounts; whole-word matches
monthly_summarymoney in and out per month, transfers between your own accounts left out
create_watch, list_watches, delete_watch, check_watchesbackground rules with webhook notifications
attest_accountoff by default; a signed yes/no that an IBAN is yours, for a third party you are proving an account to — see ATTESTATION.md

Prompts: connect-bank, monthly-summary, build-budget, savings-scan, subscription-audit, unusual-transactions.

Watches run on the server. Rules: balance below or above an amount, a single debit over an amount, an incoming or outgoing payment matching a name, and "tell me if this payment has not arrived by this date". Accounts are checked at most four times a day, the PSD2 limit for unattended access. Notifications go to NOTIFY_WEBHOOK_URL as a Slack message or a JSON POST.

Enable Banking's own webhooks cover payment initiation only, so account data is polled. There is no way around that under PSD2.

Claude Code plugin

The repository is also a Claude Code plugin marketplace. The bank plugin brings three skills: /bank:setup walks you through installing BankMCP™ on your machine, /bank:deploy through hosting it, and bank encodes how to work with the data: an account map, categorisation rules, the monthly review format and when to create watches.

Point it at your server, then install:

export OPENBANK_URL=https://YOUR-HOST/mcp   # put this in your shell profile
/plugin marketplace add noskillish/bankmcp

/plugin install bank@bank

Then /mcp, select bank, Authenticate, and enter your password. No organisation admin is involved; plugins are per user.

The skill lives at plugin/skills/bank/SKILL.md. Copy it into your own skills to fill in the account map and your merchant rules. The server stays generic; your rules stay yours.

Local models (experimental)

The server does not care which model asks. npm run chat bridges an Ollama model to the same tools over stdio, so no AI vendor sees a transaction:

ollama pull qwen3:8b

npm run chat -- "what's my balance?"

Measured on a MacBook Air with 24 GB: correct per-account balances, a wrong total, ten minutes per answer. An 8B model is not yet trustworthy with money; a 30B-class model on a machine with a real GPU is where it gets useful. Any MCP client with tool calling (LM Studio, Goose, Jan) can also point at node src/stdio.ts directly. Enable Banking still sits between you and the bank either way; that part is regulated and unavoidable.

##

Only the beginning is shown; read the rest in the repo

Ask PopNx