Skip to main content
Glama
DiegoTurpo

mef_subnational_efficiency_mcp

by DiegoTurpo

mef_subnational_efficiency_mcp

Sistema multi-agente local para auditar el gasto público del Perú usando Claude Code Skills, un servidor MCP local y PaddleOCR: analiza la ejecución presupuestal 2025 del MEF y digitaliza registros históricos de 1964.

Tarea HW_05 — Auditoría del Gasto Público vía Sistemas Multi-Agente, Claude Code Skills y MCP Local.


Arquitectura

Capa

Tecnología

Rol

Servidor MCP

FastMCP (SDK oficial) + httpx

10 herramientas sobre la API CKAN del portal

Ingesta / datos

DuckDB + pandasParquet

Procesa sin saturar memoria (anti-flooding)

OCR histórico

PaddleOCR + PyMuPDF

Digitaliza 15+ páginas de 1964

Dashboard

Streamlit + Plotly

4 pestañas (2025 + 1964)

Agentes

2 Claude Code Skills

Executor (construye) + Evaluator (audita/pule)

Related MCP server: LATAM-MCP

Fuentes de datos

  • 2025: dataset “Presupuesto y Ejecución de Gasto – Devengado Mensual” del portal datosabiertos.gob.pe (CSV 2025-Gasto-Devengado-Mensual.csv, con MONTO_PIM, MONTO_DEVENGADO_ANUAL, departamento, pliego, etc.).

  • 1964: PDF de la Cuenta General de la República (1964)data/raw_pdfs/cuenta_general_1964.pdf (descarga manual).

  • Vulnerabilidad social (Tab 2): dataset “Resumen de Hogares afiliados… Programa JUNTOS 2025” del portal datosabiertos.gob.pe (hogares en pobreza por departamento, proxy de vulnerabilidad).

  • Geo: peru_departamental_simple.geojson (repo juaneladio/peru-geojson).

Métricas

  • Avance de ejecución = (Devengado / PIM) × 100

  • Saldo No Devengado = PIM − Devengado


Estructura del proyecto

mef_subnational_efficiency_mcp/
├── app.py                    # Dashboard Streamlit (4 tabs)
├── requirements.txt
├── .streamlit/config.toml
├── .claude/skills/           # Skills Executor y Evaluator (.json + SKILL.md)
├── src/
│   ├── mcp_server.py         # Servidor MCP + 10 herramientas
│   ├── data_pipeline.py      # Ingesta 2025 (DuckDB → Parquet)
│   ├── ocr_engine.py         # OCR de 1964 (PaddleOCR + PyMuPDF)
│   ├── analytical_engine.py  # Métricas (Avance, Saldo No Devengado)
│   ├── vulnerabilidad.py     # Vulnerabilidad por depto (JUNTOS 2025)
│   └── utils.py              # Cliente CKAN + helpers
├── data/
│   ├── raw_pdfs/             # PDF crudo de 1964 (no versionado)
│   ├── snapshots/            # Muestras de esquema (5–10 filas)
│   ├── geo/                  # GeoJSON de departamentos del Perú
│   └── processed/            # Salidas Parquet "microscópicas"
├── docs/evaluator_report.md  # Reporte de auditoría del Evaluator (Tab 4)
└── video/link.txt            # Enlace del video de presentación

Requisitos e instalación

⚠️ Usar Python 3.12 (PaddleOCR no soporta 3.14).

# Crear entorno virtual con Python 3.12
py -3.12 -m venv .venv
.\.venv\Scripts\Activate.ps1

# Instalar dependencias
pip install -r requirements.txt

Uso

# 1) Servidor MCP (transporte stdio, sin auth)
py -3.12 src/mcp_server.py

# 2) Dashboard
py -3.12 -m streamlit run app.py

Flujo de desarrollo (Git)

El proyecto se construye por componentes en branches feature/* y se integra a main mediante Pull Requests (nunca commits directos a main):

feature/mcp-server-core · feature/data-snapshot-pipeline · feature/historical-1964-paddle-ocr · feature/executor-dashboard-draft · feature/evaluator-qa-refinement


Notas de ejecución

  • Los Parquet procesados (data/processed/) ya están versionados, así que el dashboard funciona tras clonar sin reprocesar los GB de origen.

  • El CSV crudo del MEF (~2.66 GB) se descarga a una carpeta temporal del sistema (fuera del repo) cuando se ejecuta el pipeline.

  • PaddleOCR/CPU: el código fija FLAGS_use_mkldnn=0 automáticamente para evitar un fallo de oneDNN en PaddlePaddle 3.x (no requiere acción manual).

  • El reporte de auditoría del Evaluator está en docs/evaluator_report.md y se muestra en el Tab 4 del dashboard.

F
license - not found
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    -
    maintenance
    Enables AI assistants and CLI tools to explore and analyze datasets from 600+ global CKAN open-data portals. Provides comprehensive tools for dataset discovery, datastore queries, metadata analysis, and local downloads without writing custom CKAN integrations.
    Last updated
    14
  • A
    license
    -
    quality
    C
    maintenance
    MCP server for Peruvian public-data lookups including SUNAT RUC registrations, BCRP exchange rates, and SEACE tenders. Provides official open-data access through tools for Claude, Cursor, and other MCP clients.
    Last updated
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    razilian public procurement (PNCP) and Federal Revenue CNPJ data for any MCP client. 18 tools covering bids, contracts, atas de registro de preço, annual procurement plans, CNPJ enrichment, plus temporal aggregation and period comparison. MIT licensed, maintained by Licinexus under Law 14.133/2021.
    Last updated
    18
    89
    75
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    Enables AI agents to search and retrieve metadata and data files from Peru's National Open Data Platform, and generate Jupyter notebooks for data analysis.
    Last updated
    3
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • Access US federal award, recipient, agency, and spending analytics data from USAspending.gov.

  • One key for 284 tools across 59 US public-data domains. Resale-safe government and open data.

  • USAspending MCP — Federal spending data from USAspending.gov API

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DiegoTurpo/mef_subnational_efficiency_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server