mcp-bcr

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.

Category
访问服务器

README

MCP BCR

Servidor MCP (Model Context Protocol) para la Base de Datos del Banco Central de Reserva del Perú (BCRP).

License: MIT

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 BCRP
  • bcrp_tipo_cambio: Tipo de cambio SOL/USD
  • bcrp_inflacion: Inflación (IPC)
  • bcrp_pbi: Producto Bruto Interno
  • bcrp_tasas_interes: Tasas de interés
  • bcrp_reservas: Reservas internacionales
  • bcrp_buscar_series: Buscar series disponibles
  • bcrp_series_disponibles: Listar series predefinidas
  • bcrp_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 serie
  • bcrp_correlacion: Correlación de Pearson entre dos series
  • bcrp_proyeccion: Regresión lineal simple y proyección a futuro
  • bcrp_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 citar
  • docs_list: Listar documentos ingeridos

Contexto

  • context_get: Obtener un valor de contexto por clave
  • context_set: Establecer un valor de contexto
  • context_delete: Eliminar una entrada de contexto
  • context_list: Listar todas las entradas de contexto

Memoria

  • memory_store: Almacenar una entrada de memoria
  • memory_recall: Buscar y recuperar recuerdos
  • memory_get: Obtener una memoria específica por ID
  • memory_delete: Eliminar una entrada de memoria
  • memory_find_by_tag: Encontrar memorias por etiqueta
  • memory_find_similar: Encontrar memorias similares

Knowledge Graph

  • graph_add_node: Agregar un nodo al grafo
  • graph_get_node: Obtener un nodo del grafo
  • graph_add_edge: Agregar una arista entre nodos
  • graph_get_edges: Obtener aristas de un nodo
  • graph_find_path: Encontrar un camino entre nodos
  • graph_get_neighbors: Obtener nodos vecinos
  • graph_find_by_type: Encontrar nodos por tipo
  • graph_get_subgraph: Obtener un subgrafo

Búsqueda Vectorial

  • vector_search: Buscar contenido similar
  • vector_add: Agregar contenido al índice vectorial
  • vector_similarity: Calcular similitud entre textos
  • embeddings_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 correr embeddings_reindex una 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

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选