openbanking-mcp
Allows querying accounts, balances, and transactions from CaixaBank via TrueLayer PSD2 API, and generates analytics such as spending by category, subscriptions, unusual charges, and monthly summaries.
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., "@openbanking-mcpshow my last 10 transactions"
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.
openbanking-mcp
Servidor MCP de finanzas personales de solo lectura sobre la TrueLayer Data API (PSD2). Consulta cuentas, saldos y movimientos de tus bancos y genera analítica: gasto por categoría, suscripciones, cargos inusuales y resúmenes mensuales.
Solo lectura. No inicia pagos ni transferencias. Los scopes solicitados a TrueLayer son exclusivamente de datos (
info accounts balance transactions ...).
Funciona con cualquier banco que cubra TrueLayer (cientos en UK y Europa). No está atado a ningún banco concreto: el banco se elige con
TRUELAYER_PROVIDERSen tu.env.
Aviso
Proyecto independiente, no afiliado ni respaldado por TrueLayer ni por ningún banco. Manejas tus propios datos bancarios bajo tu responsabilidad: cada quien autohospeda con sus credenciales, los datos nunca salen de tu máquina. Software entregado "tal cual", sin garantías (ver LICENSE). Lee también las notas PSD2.
Related MCP server: Lunch Flow MCP Server
Arquitectura
Tu banco (PSD2)
-> Proveedor Open Banking (TrueLayer) [interfaz BankDataProvider]
-> Capa de sincronización (pull idempotente e incremental)
-> SQLite (SQLAlchemy)
-> Capa de analítica (funciones puras)
-> Servidor MCP (solo lectura)
-> Cliente MCP: Claude Desktop / Cursor / ChatGPTEl servidor MCP lee de SQLite, nunca llama al banco en caliente. La sincronización
es un proceso aparte (finmcp sync, manual o por cron).
Crea tu app de TrueLayer (2 minutos, gratis)
Cada usuario usa sus propias credenciales de TrueLayer (así nadie depende de un servidor central ni comparte secretos). Conseguirlas en sandbox es gratis y rápido:
Entra en console.truelayer.com y crea una cuenta.
Crea una aplicación (botón Create application / New app). Empiezas en Sandbox.
En la app, abre Settings / Keys y copia:
Client ID → a
TRUELAYER_CLIENT_IDen tu.env.Client secret → a
TRUELAYER_CLIENT_SECRETen tu.env.
En Redirect URIs, añade exactamente:
http://localhost:3000/callback(debe coincidir con
TRUELAYER_REDIRECT_URI/FINMCP_CALLBACK_PORTdel.env).Deja
TRUELAYER_ENV=sandboxyTRUELAYER_PROVIDERS=uk-cs-mockpara probar contra el Mock Bank (datos ficticios, sin tocar dinero real).
🔒 No compartas tu
Client secretni lo subas al repo (ya está en.gitignorevía.env). Identifica a tu aplicación ante TrueLayer y todo el uso recae sobre tu cuenta.
¿Datos de tu banco real? Necesitas que TrueLayer apruebe tu app para
live(TRUELAYER_ENV=live) y elegir el provider de tu banco (ver Bancos soportados). No es inmediato; para probar el proyecto, sandbox basta.
Puesta en marcha
# 1. Clona y entra
git clone <tu-fork-o-este-repo> openbanking-mcp && cd openbanking-mcp
# 2. Entorno
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
# 3. Configura credenciales (sandbox)
cp .env.example .env
# -> rellena TRUELAYER_CLIENT_ID y TRUELAYER_CLIENT_SECRET desde console.truelayer.com
# -> registra la redirect URI http://localhost:3000/callback en tu app
# -> elige tu banco en TRUELAYER_PROVIDERS (ver .env.example)
# 4. Autoriza (abre el navegador, Mock Bank en sandbox)
finmcp auth
# 5. Sincroniza datos a SQLite
finmcp sync
# 6. Revisa
finmcp accountsBancos soportados
TrueLayer es un agregador PSD2 que cubre cientos de bancos de UK y Europa. Eliges cuál(es)
ofrecer en el diálogo de consentimiento mediante TRUELAYER_PROVIDERS:
Caso | Valor de ejemplo |
Sandbox (datos mock) |
|
Todos los bancos de un país (live) |
|
Un banco concreto (live) |
|
Los IDs exactos están en console.truelayer.com → Data API → Providers. El modo
liverequiere acceso aprobado por TrueLayer (no es inmediato); ensandboxsolo existe el Mock Bank.
Comandos
Comando | Estado | Descripción |
| ✅ | Flujo OAuth, guarda tokens cifrados |
| ✅ | Trae cuentas/saldos/movimientos a SQLite |
| ✅ | Lista cuentas locales |
| ✅ | Arranca el servidor MCP (stdio) |
Herramientas MCP (solo lectura)
list_accounts · get_balances · get_transactions · search_transactions ·
spend_by_category_tool · list_subscriptions · unusual_charges ·
monthly_summary_tool · sync_status
Cargos inusuales usa mediana + MAD (robusto): un único pico no contamina su propia línea base, así que se detecta de verdad.
Conectar a Claude Desktop
En claude_desktop_config.json (usa la ruta absoluta a tu clon del repo):
{
"mcpServers": {
"openbanking": {
"command": "/RUTA/ABSOLUTA/A/openbanking-mcp/.venv/bin/finmcp",
"args": ["serve"]
}
}
}El servidor lee de SQLite; recuerda correr finmcp sync (manual o por cron) para
mantener los datos al día.
Conectar a ChatGPT
ChatGPT no lanza procesos locales: solo se conecta a servidores MCP remotos por HTTP(S). Hace falta exponer el servidor por una URL pública y añadirlo como connector en Modo Desarrollador (Settings → Connectors, requiere plan de pago).
⚠️ Datos bancarios por una URL pública. Usa SIEMPRE bearer token y un túnel con HTTPS. Para uso solo-local, Claude Desktop (stdio) es más seguro.
# 1. Arranca en HTTP con token
export FINMCP_HTTP_TOKEN="<token-largo-aleatorio>"
finmcp serve --http --port 8000 # expone POST /mcp
# 2. Túnel HTTPS público (ejemplo con ngrok)
ngrok http 8000 # -> https://xxxx.ngrok.appEn ChatGPT → Connectors → Add custom connector:
URL:
https://xxxx.ngrok.app/mcpAuth: cabecera
Authorization: Bearer <FINMCP_HTTP_TOKEN>
El servidor responde 401 a cualquier petición sin el token correcto.
Categorías personalizadas
finmcp rules add "mercadona" "Supermercado"
finmcp rules add "netflix" "Entretenimiento" --field merchant
finmcp rules list
finmcp categorize # reaplica todas las reglasLas reglas se reaplican automáticamente al final de cada finmcp sync.
my_category (manual/regla) tiene prioridad sobre la categoría del proveedor.
Sincronización programada (macOS / launchd)
# Sustituye __PROJECT_DIR__ por la ruta absoluta de tu clon
sed -i '' "s|__PROJECT_DIR__|$PWD|g" deploy/com.openbanking-mcp.sync.plist
# Copia el LaunchAgent y actívalo (sync cada 6 h)
cp deploy/com.openbanking-mcp.sync.plist ~/Library/LaunchAgents/
launchctl load ~/Library/LaunchAgents/com.openbanking-mcp.sync.plist
# Logs en data/sync.log · para parar:
launchctl unload ~/Library/LaunchAgents/com.openbanking-mcp.sync.plistNotas PSD2
El
access_tokendura ~1 h; se refresca solo con elrefresh_token.PSD2 obliga a re-consentir con SCA cada 90 días: pasado ese plazo hay que repetir
finmcp auth.El acceso
livea bancos reales requiere una app de TrueLayer aprobada para producción. Ensandboxse usa el Mock Bank de TrueLayer.
Desarrollo
pip install -e ".[dev]"
pytest # suite de tests (analítica, mapper, sync)La analítica son funciones puras testeadas contra una SQLite en memoria; el flujo de
sync se prueba con un cliente falso (sin tocar el banco). CI en GitHub Actions corre la
suite en Python 3.11–3.13 (.github/workflows/ci.yml).
Licencia
MIT © 2026 Guille Pérez
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.
Latest Blog Posts
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/guille-near/openbanking-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server