elPeruanoMCP

Servidor MCP de codigo abierto para el Diario Oficial El Peruano (busquedas.elperuano.pe). Busqueda, lectura de dispositivos y URLs de PDF, directo desde tu harness.

1. Instalacion local

Requiere Python 3.10+. Con uv:

git clone https://github.com/usuario/elPeruanoMCP
cd elPeruanoMCP
uv sync
uv run elperuano-mcp serve

Alternativa sin uv: pip install . y elperuano-mcp serve.

2. Conectar el cliente (stdio)

En claude_desktop_config.json, opencode, Cursor o tu harness. Cambia lo marcado en rojo:

"mcpServers": {
  "elPeruanoMCP": {
    "command": "uv",
    "args": ["--directory", "RUTA/elPeruanoMCP", "run", "elperuano-mcp", "serve"]
  }
}

No requiere token ni navegador: el MCP corre en tu PC.

Conectar a instancia remota

Paso opcional: si prefieres no instalar nada, apunta al endpoint remoto con un token de acceso temporal (24 h, solo en RAM del servidor). Responde una pregunta básica de derecho peruano y obtienes el bloque listo para pegar:

"mcpServers": {
  "elPeruanoMCP": {
    "url": "https://busquedas.elperuano.xyz/mcp",
    "headers": { "Authorization": "Bearer TU_TOKEN" }
  }
}

¿Sin JSON? Si tu harness soporta OAuth (Claude, Codex, opencode, Cursor...), deja el Bearer vacío y solo pega la URL: se abrirá el navegador con esta misma pregunta y el acceso queda listo al volver.

Herramientas

ToolUso
buscar_dispositivosBusqueda full-text con filtros (cuadernillo, fecha, rango) y paginacion
buscar_por_opPuntual por numero de orden de publicacion (NNNNNNN-N)
obtener_dispositivoSumilla, tipo, numero, sector, fechas y texto integral
obtener_dispositivo_textoTexto por parrafos en rangos (documentos largos)
listar_cuadernillosCuadernillos por fecha, con pdf_url
descargar_pdf / descargar_cuadernilloDevuelven la URL publica del PDF (no descargan nada)
listar_tipos_publicacionSiglas NL/BO/EX/PC/DJ/JU/SE/CA/IN/TU y cuales tienen dispositivos

Buenas practicas

Diseno del servidor

Variables de entorno (opcionales)

EPERUANO_BASE_URL=https://busquedas.elperuano.pe
EPERUANO_TIMEOUT=60
EPERUANO_CACHE_TTL=300
EPERUANO_MAX_PAGINAS=20
EPERUANO_MAX_CONCURRENCY=10
EPERUANO_PORT=8500            # transporte HTTP opcional
EPERUANO_BIND=127.0.0.1
EPERUANO_AUTH_TOKEN=          # token maestro (vacio = sin auth)
EPERUANO_TOKEN_TTL_H=24       # tokens efimeros del quiz
EPERUANO_REPO_URL=...