selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

BankMCP™ logo

Self-host BankMCP™

v0.1.15

Self-hosted MCP server for bank accounts via Enable Banking

BetaOpen SourceMIT
Updated6 days ago
LanguageTypescript
Setup difficultyModerate
Stars
295
Port
8080 (HTTP server for MCP endpoint, setup page, and OAuth callbacks)
Requires
Enable Banking, Node.js
Docker
ghcr.io/noskillish/bankmcp
Install with Docker

What is BankMCP™?

BankMCP™ is an open-source Model Context Protocol (MCP) server that you host yourself to give AI assistants like Claude, ChatGPT, Mistral, Cursor, or local Ollama models read-only access to your bank accounts. It connects to over 2,700 European banks through Enable Banking, a licensed PSD2 provider. The server exposes tools for listing accounts, fetching balances and transactions, searching transactions, generating monthly summaries, and setting up background watches with webhook notifications. It runs as a single-user OAuth 2.1 server with password authentication, stores only consents and account IDs (not transactions), and can be deployed via npx on your local machine, as a Docker container on Railway, Fly.io, Render, or any container host, or installed as a Claude Desktop extension. The software is MIT-licensed and has no hosted version—each user runs their own copy.

Should you self-host BankMCP™?

BankMCP™ scores 47/100 on selfhost.directory (how scoring works) and ranks #32 of 62 in Personal Finance. It has 295 GitHub stars.

It shipped 10 stable releases in the past year. The latest, v0.1.15, came out on 28 September 2026.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is MIT-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is Firefly III (82/100, 25 024 stars). It scores higher overall, so compare the two before you pick. See BankMCP™ vs Firefly III side by side.

Features

  • Account attestation (optional)Off by default; enabled via ATTESTATION_ENABLED
  • Account management
  • Background watches with webhook notifications
  • Claude Code plugin
  • Local mode (no OAuth)
  • MCP (Model Context Protocol) server
  • MCP prompts
  • Monthly summaries and budgeting
  • Multi-Client Support
  • OAuth 2.1 authorization server
  • Read-only bank account access
  • Self-signed TLS for localhost
  • Transaction search and retrieval

BankMCP™ README

How to install BankMCP™

Install BankMCP™ with Docker

Docker, persistent volume at /data, public HTTPS address
Environment variables
BASE_URL, PORT, BIND_HOST, DATA_DIR, EB_APP_ID, EB_PRIVATE_KEY_PATH, ADMIN_PASSWORD_HASH, NOTIFY_WEBHOOK_URL, etc.

docker run -d --name bankmcp --restart unless-stopped
-p 8080:8080 -v bankmcp-data:/data ghcr.io/noskillish/bankmcp:latest

Requires TLS terminator (e.g., Caddy) and BASE_URL set for production

How to configure BankMCP™

  • ADMIN_PASSWORDAdmin password for OAuth login page (plain text, less secure than hash)

    Admin password for OAuth login page (plain text, less secure than hash)

  • ADMIN_PASSWORD_HASHScrypt hash of admin password (from npm run hash-password)

    Scrypt hash of admin password (from npm run hash-password)

  • ALLOWED_REDIRECT_HOSTSclaude.ai,claude.com,chatgpt.com,openai.com,mistral.ai,cursor.com,cursor.sh,vscode.dev,localhost,127.0.0.1Comma-separated hosts an OAuth client may redirect back to

    Comma-separated hosts an OAuth client may redirect back to

  • APP_NAMEBankMCP™Name shown on sign-in and status pages

    Name shown on sign-in and status pages

  • ATTESTATION_ENABLED0Enable account attestation feature (off by default)

    Enable account attestation feature (off by default)

    values: 0, 1

  • ATTESTATION_INCLUDE_HOLDER_NAME0Include account holder name in attestations (off by default)

    Include account holder name in attestations (off by default)

    values: 0, 1

  • ATTESTATION_MAX_BALANCEHighest threshold a balance question may ask about

    Highest threshold a balance question may ask about

  • ATTESTATION_RATE_LIMIT30Attestations per hour across the server

    Attestations per hour across the server

  • BASE_URLPublic https URL for the server (Enable Banking redirect and MCP client connection)

    Public https URL for the server (Enable Banking redirect and MCP client connection)

  • BIND_HOST0.0.0.0Interface to bind (default 0.0.0.0, use 127.0.0.1 with local proxy)

    Interface to bind (default 0.0.0.0, use 127.0.0.1 with local proxy)

  • DATA_DIR./dataDirectory for state file (consents, account IDs, watches, tokens)

    Directory for state file (consents, account IDs, watches, tokens)

  • DEFAULT_COUNTRYDKDefault country for bank picker (ISO 3166-1 alpha-2)

    Default country for bank picker (ISO 3166-1 alpha-2)

  • EB_APP_IDEnable Banking application ID

    Enable Banking application ID

  • EB_PRIVATE_KEYEnable Banking private key contents base64-encoded

    Enable Banking private key contents base64-encoded

  • EB_PRIVATE_KEY_PATHPath to the Enable Banking private key .pem file

    Path to the Enable Banking private key .pem file

  • NOTIFY_WEBHOOK_URLWebhook URL for watch notifications (Slack incoming webhook or JSON POST)

    Webhook URL for watch notifications (Slack incoming webhook or JSON POST)

  • POLL_INTERVAL_HOURS6How often the background poller may check an account (hours, PSD2 allows 4/day)

    How often the background poller may check an account (hours, PSD2 allows 4/day)

  • PORT8080Port the server listens on

    Port the server listens on

  • TLS_CERT_PATHPath to TLS certificate for terminating TLS in the process

    Path to TLS certificate for terminating TLS in the process

  • TLS_KEY_PATHPath to TLS private key for terminating TLS in the process

    Path to TLS private key for terminating TLS in the process

BankMCP™ releases & version history

FAQ

How do I run it?

On your machine with npx bankmcp, in Claude Desktop with the bundle from GitHub releases, or as a container on Railway or Fly. There is no hosted version; you deploy your own copy.

Can it make payments?

No. It uses account information access only (read-only) and has no payment tools.

Where does my data go?

From your bank to Enable Banking to your server to your assistant. Your server fetches data when asked and does not save transactions. Nothing goes to the makers of BankMCP™.

What does it cost?

The software is free under the MIT license. Registering at Enable Banking is free for your own accounts. You only pay for hosting, which is nothing on your own machine.

Which banks does it cover?

Around 2,700 bank connections in 29 European countries via Enable Banking. The list is maintained by Enable Banking and changes over time.

Which AI assistants work with it?

Any client supporting the Model Context Protocol, including Claude, ChatGPT, Mistral, Cursor, and local models through Ollama. Tested with Claude and Ollama.

What is BankMCP™?

BankMCP™ is an open-source MCP server for your own bank accounts that you run yourself. It connects to banks through Enable Banking and lets an AI assistant read balances and transactions with no payment tools.

More in Personal Finance

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…