Skip to main content
Glama
Banxico SIE MCP Server

Banxico SIE MCP Server

by DanMR8

mcp-banxico-sie

Servidor MCP (Model Context Protocol) en Python para consultar indicadores macroeconómicos clave del Banco de México (SIE-API): tasas, UDIS, dólar y divisas, salario mínimo, reservas, finanzas públicas, SPEI y expectativas de inflación. 17 herramientas solo-lectura.

Python MCP License CI

English version →


Características principales

  • Herramientas orientadas a casos de uso: No expone endpoints 1:1. Agrupa consultas para responder preguntas financieras reales (ej. spread TIIE-Cetes o conversiones directas UDI/MXN).

  • Control estricto de cuotas (Quota-aware): Agrupación de series por llamada al SIE ($\le$ 20 series por petición), caché en memoria (12 h para series oportunas, 7 d para metadatos) y límites de rango temporal ($\le$ 365 días).

  • Manejo de edge cases de Banxico: Tolera el desfase de las subastas semanales de Cetes (lag de 2 a 5 días) y reporta la publicación adelantada de UDIS con nota aclaratoria en lugar de fallar.

  • Doble transporte: Soporte nativo para stdio (clientes locales de cualquier proveedor) y streamable-http (despliegues remotos en contenedor).


Related MCP server: mcp-banxico

Conexión con clientes MCP

Compatible con cualquier cliente MCP (Claude Desktop, Cursor, Codex, OpenCode, MCP Inspector, ...). Agrega el servidor a la configuración mcpServers de tu cliente:

Vía entorno virtual local

{
  "mcpServers": {
    "banxico-sie": {
      "command": "C:\\ruta\\al\\proyecto\\.venv\\Scripts\\python.exe",
      "args": ["-m", "mcp_banxico_sie.server"],
      "env": {
        "BANXICO_TOKEN": "tu_token_de_64_caracteres"
      }
    }
  }
}

(En macOS/Linux, reemplaza la ruta del ejecutable por /ruta/al/proyecto/.venv/bin/python).

Token del SIE: Puedes tramitarlo de forma gratuita e instantánea en el portal de desarrolladores de Banxico.


Herramientas disponibles (17 Tools, solo lectura)

Tasas y costo del dinero

Herramienta

Parámetros

Descripción / Series consultadas

get_tasa_hoy

Ninguno

Consulta oportuna en un solo lote: Tasa Objetivo (SF61745), TIIE 28 (SF60648), TIIE 91 (SF60649) y Cetes 28 (SF60633).

get_tasas_rango

fecha_ini, fecha_fin

Rango histórico ($\le$ 365 días). Resume cada serie (min/max/variación) y calcula el spread TIIE 28 vs. Cetes 28.

get_curva_tiie

Ninguno

Curva TIIE en un lote: Fondeo 1 día (SF331451) + TIIE 28/91/182 (SF60648/SF60649/SF111916).

estimar_rendimiento_cetes

monto_mxn

Estima el rendimiento a 28 días con la última subasta semanal de Cetes 28 (no garantizado).

UDIS, inflación y valor real

Herramienta

Parámetros

Descripción / Series consultadas

get_udis_hoy

Ninguno

Valor vigente de la UDI (SP68257), gestionando la publicación oficial anticipada de Banxico.

convertir_udis_a_pesos

monto_udis, fecha (YYYY-MM-DD)

Convierte un importe en UDIS a moneda nacional según el valor oficial en la fecha indicada.

get_inflacion_udis

fecha_ini, fecha_fin

Calcula la variación porcentual de la UDI en el periodo seleccionado como estimación de inflación.

get_inflacion_ytd

Ninguno

Inflación acumulada del año en un clic (UDIS del 1 de enero a hoy).

ajustar_por_udis

monto, fecha_ini, fecha_fin

Actualiza cualquier cantidad (renta, deuda, sueldo) por UDIS entre dos fechas.

Dólar y divisas

Herramienta

Parámetros

Descripción / Series consultadas

get_dolar_hoy

Ninguno

FIX (SF43718) + DOF (SF60653) oportuno con contexto FIX de 30 días (promedio/min/max).

get_divisas_rango

fecha_ini, fecha_fin

Euro (SF46410), yen (SF46406), libra (SF46407) y dólar canadiense (SF60632) con variación %.

convertir_mxn_divisa

monto_mxn, divisa, fecha (YYYY-MM-DD)

Convierte pesos a USD/EUR/JPY/GBP/CAD al tipo de cambio de la fecha exacta.

Salario, reservas, finanzas públicas, SPEI y expectativas

Herramienta

Parámetros

Descripción / Series consultadas

get_salario_minimo

Ninguno

Salario mínimo vigente (SL11298) + último incremento ($ y %), con nota de rezago mensual.

get_reservas

Ninguno

Reservas internacionales (SF43707): último dato semanal + variación semanal y anual.

get_finanzas_publicas

fecha_ini, fecha_fin

Gasto primario (SG59) + ISR (SG80) + IVA (SG81) + IEPS (SG79/SG55) en rango mensual.

get_spei

fecha_ini, fecha_fin

SPEI mensual: monto/número de enviadas (SF406262/SF406263) + monto de recibidas (SF406458).

get_expectativa_inflacion

Ninguno

Inflación que esperan los especialistas al cierre del año (SR14138, media).


Instalación y ejecución local

Requisitos previos

  • Python 3.11 o superior.

  • Token activo de la API de Banxico.

1. Clonar y preparar entorno

git clone https://github.com/DanMR8/mcp-banxico-sie.git
cd mcp-banxico-sie

# Crear entorno virtual
python -m venv .venv

# Activar en Windows (PowerShell):
.\.venv\Scripts\Activate.ps1
# O en Linux/macOS:
source .venv/bin/activate

# Instalar dependencias en modo editable
pip install -e ".[dev]"

2. Configurar variables de entorno

Copia la plantilla y coloca tu token:

cp .env.example .env

O expórtala en tu terminal:

# PowerShell
$env:BANXICO_TOKEN="tu_token_aqui"

# Bash/Zsh
export BANXICO_TOKEN="tu_token_aqui"

3. Ejecutar el servidor

Modo stdio (clientes locales con soporte MCP):

python -m mcp_banxico_sie.server

Modo HTTP Streamable (remoto o contenedores):

# PowerShell
$env:MCP_TRANSPORT="http"
$env:PORT="8000"
python -m mcp_banxico_sie.server

# Bash/Zsh
MCP_TRANSPORT=http PORT=8000 python -m mcp_banxico_sie.server

Ejecución con Docker

Para correr el servidor como servicio HTTP aislado:

docker build -t mcp-banxico-sie .
docker run -d -p 8000:8000 -e BANXICO_TOKEN="tu_token" -e MCP_TRANSPORT="http" mcp-banxico-sie

Decisiones técnicas y arquitectura

  1. Agrupación de peticiones (Batching): La API de Banxico permite solicitar hasta 20 identificadores de series en una sola llamada REST (/series/{id1},{id2}/datos). El cliente aprovecha esta capacidad para resolver herramientas como get_tasa_hoy en una única transacción de red.

  2. Resiliencia ante series asíncronas: Las tasas de Cetes se actualizan semanalmente mediante subasta, mientras que la TIIE es diaria. El cliente normaliza y alinea las series temporales para evitar fallos cuando una serie no presenta registro en la fecha exacta consultada.

  3. Manejo de cuotas: Se aplican tiempos de vida (TTL) locales en memoria para mitigar el consumo de peticiones contra los techos oficiales del SIE (80 peticiones/min para series oportunas; 200 peticiones/5 min para series históricas). Ver límites oficiales de consulta.

  4. Pruebas sin consumo de cuota: La suite de pruebas usa un cliente falso con valores reales del API (mocks inline, sin red), permitiendo ejecutar el CI completo vía pytest sin agotar el token.


Desarrollo y pruebas

Ejecutar suite de pruebas:

pytest tests/ -v

Revisión de estilo:

ruff check src/ tests/

Información financiera obtenida del Banco de México a través del Sistema de Información Económica (SIE-API). Este proyecto es una implementación independiente de código abierto y no cuenta con afiliación oficial ni patrocinio de Banxico. El uso de los datos se realiza conforme a los términos y salvedades de uso del Banco de México.

Licencia

Distribuido bajo la licencia MIT — ver LICENSE.

Available Tools

17 tools
ajustar_por_udisC

Actualiza renta/deuda/sueldo por UDIS entre fechas. / UDIS adjustment.

Inputs: monto (required), fecha_fin (required), fecha_ini (required).

convertir_mxn_divisaB

Convierte pesos a divisa (USD/EUR/JPY/GBP/CAD) a fecha exacta. / MXN to FX.

Inputs: fecha (required), divisa (required), monto_mxn (required).

convertir_udis_a_pesosC

Convierte UDIS a pesos a fecha exacta yyyy-MM-dd. / Convert UDIS to MXN.

Inputs: fecha (required), monto_udis (required).

estimar_rendimiento_cetesB

Estima rendimiento a 28 dias con la ultima subasta de Cetes. / Cetes estimate.

Inputs: monto_mxn (required).

get_curva_tiieB

Curva TIIE: fondeo 1d + 28/91/182 en un lote. / TIIE curve.

Inputs: no named parameters.

get_divisas_rangoC

Euro, yen, libra y dolar canadiense en rango (yyyy-MM-dd). / EUR/JPY/GBP/CAD range.

Inputs: fecha_fin (required), fecha_ini (required).

get_dolar_hoyA

Dolar hoy: FIX + DOF con contexto 30 dias. / USD today with 30d context.

Inputs: no named parameters.

get_expectativa_inflacionB

Inflacion esperada por especialistas al cierre del anio. / Expected inflation.

Inputs: no named parameters.

get_finanzas_publicasC

Gasto + ISR + IVA + IEPS en rango (yyyy-MM-dd). / Public finances.

Inputs: fecha_fin (required), fecha_ini (required).

get_inflacion_udisC

Variacion % UDIS en periodo (proxy inflacion). / UDIS inflation proxy.

Inputs: fecha_fin (required), fecha_ini (required).

get_inflacion_ytdB

Inflacion acumulada del anio en un clic (UDIS 1-ene a hoy). / Year-to-date inflation.

Inputs: no named parameters.

get_reservasB

Reservas internacionales con variacion semanal y anual. / FX reserves.

Inputs: no named parameters.

get_salario_minimoA

Salario minimo vigente + ultimo incremento. / Current minimum wage.

Inputs: no named parameters.

get_speiD

SPEI mensual en rango (yyyy-MM-dd). / SPEI transfers.

Inputs: fecha_fin (required), fecha_ini (required).

get_tasa_hoyA

Tasa de referencia hoy: objetivo + TIIE 28/91 + Cetes 28. / Reference rates today.

Inputs: no named parameters.

get_tasas_rangoB

Tasas en rango + spread TIIE-Cetes (max 365d, yyyy-MM-dd). / Rate range with spread.

Inputs: fecha_fin (required), fecha_ini (required).

get_udis_hoyB

Valor UDIS oportuno (puede ser fecha futura oficial). / Latest UDIS value.

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

    TDQS

    B3/5.0

    Scored across 17 tools

    Disambiguation4/5

    Tools target mostly distinct Banxico data products, but several rate-related tools (get_tasa_hoy, get_tasas_rango, get_curva_tiie, estimar_rendimiento_cetes) and UDIS/inflation tools (get_udis_hoy, get_inflacion_udis, get_inflacion_ytd, ajustar_por_udis) overlap enough to risk misselection for broad queries. Descriptions usually clarify scope, so ambiguity is mild rather than severe.

    Naming Consistency5/5

    All tool names use consistent snake_case with a Spanish action verb followed by an object or metric (get_, convertir_, estimar_, ajustar_). There is no casing inconsistency or vague naming pattern.

    Tool Count4/5

    17 tools is slightly above the typical 3-15 range but reasonable for the broad scope of Mexican central bank indicators. Each tool appears to cover a distinct data category rather than duplicating another tool.

    Completeness3/5

    The set covers many key indicators such as reference rates, UDIS, FX, inflation, minimum wage, reserves, public finances, SPEI, and expectations. However, it lacks a generic SIE series lookup and major categories like economic activity, employment, monetary aggregates, credit, and external sector, creating notable gaps for full Banxico SIE coverage.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Enables access to Bank of Mexico (Banxico) economic data including real-time and historical USD/MXN exchange rates, inflation data, interest rates, and other financial indicators. Supports querying current rates, historical data with date ranges, and economic metadata through natural language.
      9
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Provides access to Chilean economic indicators (dolar, UF, IPC, etc.) via the mindicador.cl API, enabling queries for current values, historical series, and specific dates.
      MIT