FinTS-Finanzen
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FinTS-Finanzenshow my account balances"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FinTS-Finanzen
Read-only MCP server for German banks via FinTS/HBCI — accounts, balances, and transactions over PIN/TAN.
To our knowledge, this is the only MCP server for the FinTS/HBCI protocol — the standard online-banking interface supported by virtually every German bank. It gives an LLM a safe, read-only window into your bank accounts: no transfer code exists anywhere in this codebase.
Features
MCP tools exposed over stdio (via FastMCP):
Tool | Description |
| List all accounts (IBAN, account number, BIC) |
| Current balance of one account (empty → first account) |
| Transactions of the last |
| All accounts + balances in a single call |
Strictly read-only — the wrapper around
python-fintsonly implements account listing, balances, and transaction retrieval. There is no code for transfers or any other write operation.Any FinTS bank — defaults to DKB (
12030000), switchable to any other FinTS-capable bank viaFINTS_BANK_CODE/FINTS_ENDPOINT.Graceful errors — expected failure modes (not enrolled, missing master key, TAN required, bank/network errors) are returned as structured tool errors (
{"ok": false, "error": "...", "message": "..."}), never as crashes.~90 days TAN-free reads — after a one-time interactive pushTAN enrollment, the persisted FinTS client state keeps read access TAN-free under the PSD2 SCA exemption (~90 days). When it expires, tools return a
tan_requirederror and you simply re-runenroll.py.
Related MCP server: finance-reconcile-mcp
Installation
Requires Python 3.10+.
git clone https://github.com/NG-Bullseye/FinTS-Finanzen.git
cd FinTS-Finanzen
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt1. Generate a master key (one-time)
cp .env.example .env
.venv/bin/python -c "import crypto; print(crypto.generate_key())"
# put the output into .env as FINTS_MASTER_KEY(enroll.py can also generate and display a key for you.)
2. Enroll (one-time, interactive)
set -a; . ./.env; set +a # load FINTS_MASTER_KEY into the environment
.venv/bin/python enroll.pyThe enrollment asks for your online-banking login name (not the account number) and PIN, walks through the bank's pushTAN flow (including decoupled app-based approval), and — only on success — stores the PIN encrypted plus the FinTS client state.
3. Register the MCP server
The server runs over stdio. Example MCP configuration (FINTS_MASTER_KEY must be set in the server's environment) — use absolute paths, MCP clients do not launch servers from the repo directory. Prefer exporting FINTS_MASTER_KEY in the client's environment over writing it into this file:
{
"mcpServers": {
"fints-finanzen": {
"command": "/absolute/path/to/FinTS-Finanzen/.venv/bin/python",
"args": ["/absolute/path/to/FinTS-Finanzen/mcp_server.py"],
"env": {
"FINTS_MASTER_KEY": "<base64-32-byte-key>",
"FINTS_BANK_CODE": "12030000",
"FINTS_PRODUCT_ID": ""
}
}
}
}Configuration
All configuration is via environment variables:
Variable | Default | Purpose |
| — (required) | Base64-encoded 32-byte AES-256-GCM key used to encrypt/decrypt the stored credentials |
|
| Bank code (BLZ) of your bank |
|
| FinTS endpoint URL of your bank |
| public default from | FinTS product ID. Empty uses a public ID reported working with DKB (python-fints#183). For a clean, permanent setup, register your own ID with the Deutsche Kreditwirtschaft (fints.org product registration) |
Security model — honest description
How your bank credentials are actually handled (verifiable in crypto.py, config.py, fints_client.py):
Encryption at rest. Your login name and PIN are stored AES-256-GCM-encrypted (12-byte random nonce per encryption, prepended to the ciphertext) in
~/.config/fints-finanzen/credentials.enc. The FinTS client state (system ID, BPD/UPD) is stored alongside asfints_state.bin. Directory mode0700, file mode0600. Nothing sensitive is inside the repo directory, and.gitignorekeeps.envout of git.The key lives only in the environment. The AES key comes exclusively from the
FINTS_MASTER_KEYenvironment variable — it is never written to disk by this project. Without it, the stored credentials are unreadable. Flip side, stated plainly: whoever has both the key (e.g. from your MCP config file or process environment) andcredentials.enccan decrypt your PIN. Protect your MCP configuration accordingly.PIN in memory at runtime. To talk to the bank, the server necessarily decrypts the PIN in process memory for each FinTS dialog. It is never logged or returned by any tool.
Read-only by construction. The FinTS wrapper implements only
get_sepa_accounts,get_balance, andget_transactions. Even a fully compromised LLM session cannot initiate transfers through this server, because the code for it does not exist.PIN entry only in
enroll.py. The PIN is read viagetpass(no echo) in the interactive enrollment; the MCP server itself never asks for or accepts credentials.
License
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceA read-only MCP server that enables users to analyze their real bank, credit card, loan, and brokerage data through Plaid. It provides financial analysis tools for transactions, balances, investments, liabilities, and debt while keeping all access tokens and data locally stored.Last updated24MIT
- AlicenseAqualityDmaintenanceRead-only MCP server for reconciling SimpleFIN bank data against Firefly III ledger, enabling audit and review workflows without mutation.Last updated1991MIT
- Flicense-qualityDmaintenanceRead-only MCP server for accessing personal finance data from Ogarni.AI, including receipts, categories, summaries, notifications, and more.Last updated
- Alicense-qualityBmaintenanceA read-only MCP server that provides filtered account and portfolio data from Portfolio Performance .portfolio files to generate reports.Last updated3MIT
Related MCP Connectors
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Read-only MCP server for Robinhood Chain token discovery, research, and due diligence via GMGN.
Read-only MCP server for searching Japan government procurement bid information from the KKJ portal.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/NG-Bullseye/FinTS-Finanzen'
If you have feedback or need assistance with the MCP directory API, please join our Discord server