mcpField
C
comdirect

comdirect

Local
github.comFinance3Updated 2w ago

About comdirect

comdirect is a read-only MCP server and typed Python client for comdirect customers who need to inspect accounts, transactions, portfolios, orders, and postbox documents. It adds spending and portfolio summaries, with photoTAN-approved login and no money-moving tools.

Key features

  1. 01View accounts, cards, and balances
  2. 02Summarize monthly cash flow and spending
  3. 03Find recurring payments and subscriptions
  4. 04Inspect depot positions, orders, and trades
  5. 05Read postbox documents
  6. 06Use the typed Python client

Use cases

  1. 01Review monthly income, expenses, and net totals
  2. 02Estimate annual subscription costs
  3. 03Check portfolio allocation
  4. 04Find and read tax documents

MCP support

As a read-only MCP server, it exposes tools and prompts for querying accounts, transactions, securities, orders, and documents.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"mad4ms-comdirect": {
"command": "uvx",
"args": [
"comdirect-mcp"
],
"env": {
"COMDIRECT_CLIENT_ID": "<COMDIRECT_CLIENT_ID>",
"COMDIRECT_CLIENT_SECRET": "<COMDIRECT_CLIENT_SECRET>",
"COMDIRECT_USERNAME": "<COMDIRECT_USERNAME>",
"COMDIRECT_PASSWORD": "<COMDIRECT_PASSWORD>",
"COMDIRECT_MCP_PUSH_TAN_WAIT": "<COMDIRECT_MCP_PUSH_TAN_WAIT>",
"COMDIRECT_MCP_UNMASK_IBANS": "<COMDIRECT_MCP_UNMASK_IBANS>",
"COMDIRECT_MCP_MASK_NAMES": "<COMDIRECT_MCP_MASK_NAMES>",
"COMDIRECT_ENV_FILE": "<COMDIRECT_ENV_FILE>",
"COMDIRECT_MCP_CACHE_TTL": "<COMDIRECT_MCP_CACHE_TTL>",
"COMDIRECT_MCP_MAX_DOCUMENT_BYTES": "<COMDIRECT_MCP_MAX_DOCUMENT_BYTES>",
"COMDIRECT_MCP_CATEGORIES": "<COMDIRECT_MCP_CATEGORIES>",
"COMDIRECT_MCP_SKIP_ELICITATION": "<COMDIRECT_MCP_SKIP_ELICITATION>",
"COMDIRECT_MCP_LOG_FILE": "<COMDIRECT_MCP_LOG_FILE>",
"COMDIRECT_MCP_LOG_LEVEL": "<COMDIRECT_MCP_LOG_LEVEL>"
}
}
}
}
Run commanduvx comdirect-mcp
Environment variables to set
COMDIRECT_CLIENT_IDSecretcomdirect API client id (or stored in the OS keychain via `comdirect-mcp configure`)
COMDIRECT_CLIENT_SECRETSecretcomdirect API client secret (or stored in the OS keychain via `comdirect-mcp configure`)
COMDIRECT_USERNAMESecretcomdirect Zugangsnummer (or stored in the OS keychain via `comdirect-mcp configure`)
COMDIRECT_PASSWORDSecretcomdirect PIN (or stored in the OS keychain via `comdirect-mcp configure`)
COMDIRECT_MCP_PUSH_TAN_WAITSeconds to wait for the push TAN approval if the client cannot show a confirmation dialog
COMDIRECT_MCP_UNMASK_IBANSSet to true to return counterparty IBANs unmasked
COMDIRECT_MCP_MASK_NAMESSet to true to replace counterparty names with stable pseudonyms
COMDIRECT_ENV_FILEPath to a dotenv file with the credentials (opt-in; prefer the OS keychain)
COMDIRECT_MCP_CACHE_TTLSeconds the server keeps bank results within a session; 0 disables the cache
COMDIRECT_MCP_MAX_DOCUMENT_BYTESSize limit for postbox documents in bytes
COMDIRECT_MCP_CATEGORIESPath of the category rules file (default ~/.config/comdirect-mcp/categories.toml)
COMDIRECT_MCP_SKIP_ELICITATIONSet to 1 to skip the login confirmation dialog and wait for the push TAN approval instead
COMDIRECT_MCP_LOG_FILEFile the server appends its log to (default stderr)
COMDIRECT_MCP_LOG_LEVELLog level of the server

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypicomdirect-mcp0.6.1

Tools

21

Saved tool list · updated 2w ago

This tool takes no parameters.

Details

From the project README

comdirect-mcp

PyPI Python Tests MCP License: MIT

Read-only MCP server and typed Python client for the comdirect REST API. Let Claude, GitHub Copilot or a local model look at your accounts, transactions, depot and postbox. You approve the login in the photoTAN app, and no tool can move money.

LM Studio with a local model answers „Welche Abos zahle ich, und was kosten sie im Jahr?“ (synthetic sample data)

Warning

Unofficial, not affiliated with comdirect. It handles your banking credentials, and every tool result goes to the model behind your MCP client: with a cloud assistant your financial data leaves your computer. For the most privacy use a local model. See SECURITY.md.

Warnung (auf Deutsch, weil comdirect)

Leute, hier geht es um euer Geld. Nutzt das nur, wenn ihr den Code versteht und die Risiken kennt. MIT-Lizenz: Jeder darf damit machen, was er/sie will (auch ihr, comdirect 👀), aber ohne Gewährleistung und ohne Haftung.

Transparenz: Ein Teil des Codes stammt von Opus 5.5 und gpt-6.1-sol, ich habe reviewed, getestet und weise genickt. Genau deshalb: Code verstehen.

Der Server nutzt nur lesende Endpunkte, aber Fehler passieren trotzdem: comdirect kann die API ändern, Dependencies können kompromittiert werden, und 2FA ist kein Freifahrtschein. Deshalb:

  • Nur lokal auf dem eigenen Rechner nutzen, Zugangsdaten niemandem geben.
  • Zugangsdaten in den OS-Schlüsselbund (comdirect-mcp configure). Eine .env enthält das Passwort im Klartext: niemals committen.
  • Updates nicht blind einspielen: Version pinnen, Änderungen anschauen.

MCP-Server: Hängt ihr ihn an einen Cloud-Client, verlassen eure Daten euren Rechner und können in Logs landen. Verwendungszwecke und Dokumente können Prompt-Injections enthalten. Also nur in Umgebungen nutzen, denen ihr vertraut.

Wer seine Kontoauszüge eh schon in ChatGPT kopiert: Macht, was ihr wollt, aber auf eigene Verantwortung!

Features

  • Safe login: push TAN confirmed in your client; stops before comdirect's lock after five unconfirmed challenges; revokes the session on logout and shutdown
  • Credentials in the OS keychain, read-only tools with truthful annotations
  • Answers on the server: cash flow and spending per month, counterparty or your own categories, subscriptions with yearly costs, portfolio allocation
  • Clean data: transfers between your own accounts are kept out of spending, PayPal payments show the merchant, payment texts are cleaned up, IBANs masked
  • Typed Python client for your own scripts

The API returns account transactions of the last 180 days only.

Tool
login / logoutStart a session (push TAN) / end and revoke it
list_accounts, list_cards, get_wealth_overviewBalances of accounts, cards and all products
list_transactionsIndividual transactions
summarize_transactionsIncome, expenses and net per month, counterparty, type or category
find_recurring_paymentsSubscriptions, contracts and standing orders
list_depots, get_depot_positions, summarize_portfolioDepot positions and allocation
list_depot_transactions, list_orders, get_order, get_instrumentSecurities movements, order book, security data
list_documents, read_documentPostbox documents as text or PDF (reading marks them as read)

Prompts: monthly_review, find_subscriptions, tax_documents. Details: Tools reference.

Quickstart

You need uv, comdirect API access (Client ID and Secret) and photoTAN Push as default TAN method.

uvx [email protected] configure   # stores your credentials in the OS keychain

Add the server to your client, e.g. Claude Code:

claude mcp add --transport stdio --scope user comdirect -- uvx [email protected]

or Claude Desktop, LM Studio and others:

{
  "mcpServers": {
    "comdirect": {
      "command": "uvx",
      "args": ["[email protected]"]
    }
  }
}

Then ask, e.g. „Welche Abos zahle ich, und was kosten sie im Jahr?“ The assistant calls login and you approve the push in the app. VS Code, Ollama and more: Configure MCP clients · step by step: Getting started · problems: Troubleshoot.

Python library

from comdirect_mcp import ComdirectClient
from comdirect_mcp.utils import default_push_tan_callback

client = ComdirectClient(
    {"client_id": "...", "client_secret": "...", "username": "...", "password": "..."},
    {"push_tan_cb": default_push_tan_callback},
)
client.login()  # approve the push TAN, then press Enter
for account in client.list_accounts():
    print(account.id, account.balance, account.currency)

See Use the Python library.

More

Documentation · CHANGELOG · CONTRIBUTING · AGENTS.md for AI coding agents · MIT License

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.