mcp-bcr
MCP server that provides real-time access to Peruvian economic indicators from the BCRP API, with persistent memory, knowledge graph, document RAG, and statistical analysis tools.
README
MCP BCR
Servidor MCP (Model Context Protocol) para la Base de Datos del Banco Central de Reserva del Perú (BCRP).
Descripción
Este servidor MCP permite consultar indicadores económicos oficiales del Perú en tiempo real a través de la API del BCRP. Incluye almacenamiento de contexto, memoria persistente con embeddings reales, knowledge graph, búsqueda híbrida (semántica + FTS5), caché histórico de series, análisis estadístico/econométrico, comparación internacional vía Banco Mundial, y RAG sobre documentos/PDFs para análisis económico avanzado.
Características
- API del BCRP: Consulta en tiempo real de indicadores económicos, con caché histórico local en SQLite
- Almacenamiento de Contexto: Guardar y recuperar datos económicos
- Memoria Persistente: Búsqueda híbrida (FTS5 + embeddings reales con
@xenova/transformers, modelo multilingüe con soporte de español, sin API key) - Knowledge Graph: Relacionar indicadores y conceptos económicos
- Búsqueda Vectorial: Búsqueda semántica por similitud de coseno sobre embeddings reales
- Análisis Estadístico: Variación %, media móvil, correlación, regresión lineal/proyección, deflactación
- Banco Mundial: Comparación de indicadores de Perú frente a otros países
- RAG de Documentos: Ingesta de PDFs/URLs/texto y búsqueda semántica con cita de fuente
Instalación
# Clonar el repositorio
git clone https://github.com/rodrigocapiz67-tech/mcp-bcr.git
cd mcp-bcr
# Instalar dependencias
npm install
# Compilar
npm run build
Uso
Como servidor MCP
El servidor se ejecuta en stdio y puede ser configurado en cualquier cliente MCP compatible.
Configuración .mcp.json (Antigravity IDE u otros)
{
"mcpServers": {
"mcp-bcr": {
"type": "stdio",
"command": "node",
"args": ["dist/index.js"],
"env": {}
}
}
}
Configuración en Claude Desktop
Añade lo siguiente a tu archivo claude_desktop_config.json:
{
"mcpServers": {
"mcp-bcr": {
"command": "node",
"args": ["C:/source/mcp-bcr/dist/index.js"]
}
}
}
Herramientas BCRP
Consultas Directas
bcrp_get_series: Consultar cualquier serie del BCRPbcrp_tipo_cambio: Tipo de cambio SOL/USDbcrp_inflacion: Inflación (IPC)bcrp_pbi: Producto Bruto Internobcrp_tasas_interes: Tasas de interésbcrp_reservas: Reservas internacionalesbcrp_buscar_series: Buscar series disponiblesbcrp_series_disponibles: Listar series predefinidasbcrp_historial: Historial completo cacheado localmente de una serie (sin red)
Análisis Estadístico/Econométrico
bcrp_estadisticas: Variación %, media móvil y desviación estándar de una seriebcrp_correlacion: Correlación de Pearson entre dos seriesbcrp_proyeccion: Regresión lineal simple y proyección a futurobcrp_deflactar: Ajustar una serie nominal por un índice de precios (valores reales)
Banco Mundial
worldbank_indicador: Consultar un indicador para uno o más países (ISO-2)worldbank_comparar_paises: Comparar Perú vs. otros países (último valor y tendencia a 10 años)
RAG de Documentos
docs_ingest: Ingerir un PDF/URL/texto plano (se trocea y embebe)docs_search: Búsqueda semántica sobre documentos ingeridos, con fuente para citardocs_list: Listar documentos ingeridos
Contexto
context_get: Obtener un valor de contexto por clavecontext_set: Establecer un valor de contextocontext_delete: Eliminar una entrada de contextocontext_list: Listar todas las entradas de contexto
Memoria
memory_store: Almacenar una entrada de memoriamemory_recall: Buscar y recuperar recuerdosmemory_get: Obtener una memoria específica por IDmemory_delete: Eliminar una entrada de memoriamemory_find_by_tag: Encontrar memorias por etiquetamemory_find_similar: Encontrar memorias similares
Knowledge Graph
graph_add_node: Agregar un nodo al grafograph_get_node: Obtener un nodo del grafograph_add_edge: Agregar una arista entre nodosgraph_get_edges: Obtener aristas de un nodograph_find_path: Encontrar un camino entre nodosgraph_get_neighbors: Obtener nodos vecinosgraph_find_by_type: Encontrar nodos por tipograph_get_subgraph: Obtener un subgrafo
Búsqueda Vectorial
vector_search: Buscar contenido similarvector_add: Agregar contenido al índice vectorialvector_similarity: Calcular similitud entre textosembeddings_reindex: Recalcular todos los embeddings con el modelo actual (usar tras cambiar de modelo)
El modelo de embeddings (
Xenova/paraphrase-multilingual-MiniLM-L12-v2) es multilingüe e incluye español. Si en el futuro se cambia de modelo, el servidor avisa por stderr al arrancar si detecta que lo indexado quedó desactualizado — en ese caso hay que correrembeddings_reindexuna vez.
Series Predefinidas
| Código | Nombre |
|---|---|
| PD04635PD | Tipo de Cambio Promedio |
| PD04645PD | Tipo de Cambio Venta |
| PN02537MA | IPC Mensual |
| PN02538MA | IPC Anual |
| PN02521PA | PIB Trimestral |
| PD05462PM | Tasa Corto Plazo |
| PD04662PM | Reservas Internacionales |
API del BCRP
Documentación: https://estadisticas.bcrp.gob.pe/estadisticas/series/ayuda/api
Ejemplo de consulta:
https://estadisticas.bcrp.gob.pe/estadisticas/series/api/PN01270PM/json
Arquitectura
mcp-bcr/
├── src/
│ ├── index.ts # Punto de entrada
│ ├── server.ts # Configuración del servidor MCP
│ ├── bcrp/
│ │ └── client.ts # Cliente API del BCRP (+ caché local)
│ ├── worldbank/
│ │ └── client.ts # Cliente API del Banco Mundial
│ ├── analysis/
│ │ └── stats.ts # Funciones estadísticas/econométricas puras
│ ├── embeddings/
│ │ └── embedder.ts # Embeddings locales (@xenova/transformers)
│ ├── rag/
│ │ └── ingest.ts # Descarga/extracción/chunking de documentos
│ ├── db/
│ │ └── manager.ts # Gestor de base de datos SQLite (+ FTS5)
│ ├── memory/
│ │ └── store.ts # Sistema de memoria persistente
│ ├── graph/
│ │ └── graph.ts # Knowledge Graph
│ └── tools/
│ ├── bcrp.ts # Herramientas BCRP
│ ├── context.ts # Herramientas de contexto
│ ├── memory.ts # Herramientas de memoria
│ ├── graph.ts # Herramientas de grafo
│ ├── vector.ts # Herramientas vectoriales
│ ├── analysis.ts # Herramientas de análisis estadístico
│ ├── worldbank.ts # Herramientas de comparación internacional
│ └── rag.ts # Herramientas de ingesta/búsqueda de documentos
├── package.json
├── tsconfig.json
└── .mcp.json
Licencia
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。