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
Visit Server

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured