Read-only MCP server and typed Python client for the comdirect banking API (photoTAN push login, OS keychain credentials)
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add comdirect --env COMDIRECT_CLIENT_ID='<COMDIRECT_CLIENT_ID>' --env COMDIRECT_CLIENT_SECRET='<COMDIRECT_CLIENT_SECRET>' --env COMDIRECT_USERNAME='<COMDIRECT_USERNAME>' --env COMDIRECT_PASSWORD='<COMDIRECT_PASSWORD>' -- uvx comdirect-mcp~/.codex/config.toml
[mcp_servers.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>" }
# codex mcp add comdirect --env COMDIRECT_CLIENT_ID='<COMDIRECT_CLIENT_ID>' --env COMDIRECT_CLIENT_SECRET='<COMDIRECT_CLIENT_SECRET>' --env COMDIRECT_USERNAME='<COMDIRECT_USERNAME>' --env COMDIRECT_PASSWORD='<COMDIRECT_PASSWORD>' -- uvx comdirect-mcp~/.cursor/mcp.json
{
"mcpServers": {
"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>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"comdirect": {
"type": "stdio",
"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>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"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>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"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>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"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>"
}
}
}
}Environment variables
COMDIRECT_CLIENT_IDCOMDIRECT_CLIENT_SECRETCOMDIRECT_USERNAMECOMDIRECT_PASSWORD
Replace the placeholders with your own credentials and keep them out of version control.