Infraestructura abierta de datos públicos para Ecuador. EcuDataMCP conecta asistentes de IA, investigadores, periodistas y software con datos oficiales ecuatorianos mediante una interfaz común.
Utiliza el Model Context Protocol (MCP) para que clientes compatibles como Claude, ChatGPT, Gemini y Cursor puedan buscar, explorar y analizar esos datos mediante conversación o software.
En lugar de navegar manualmente por portales gubernamentales, simplemente pregunta cosas como:
- "¿Qué datos tiene el SRI sobre recaudación tributaria?"
- "Muéstrame los datasets de salud del INEC"
- "¿Cuáles son los requisitos para sacar el pasaporte?"
- "Dame un preview de los datos de transporte aéreo"
Aviso: Las definiciones, parámetros y descripciones de algunas herramientas fueron generadas o asistidas por IA y pueden estar incompletas, desactualizadas o no cubrir todos los casos del endpoint subyacente. Una herramienta puede devolver resultados parciales, rechazar parámetros válidos o comportarse de forma inesperada cuando cambia la fuente oficial. Verifica siempre la respuesta contra la fuente enlazada y revisa manualmente los resultados antes de usarlos para decisiones importantes.
- docs/ROADMAP.md — qué fuentes están integradas y qué falta.
- docs/RESEARCH.md — el porqué de cada fila del roadmap: hallazgos verificados en vivo, dominios investigados, dead ends.
- CHANGELOG.md — qué se publicó recientemente.
- Acceso instantáneo a datos públicos: Pregunta en lenguaje natural y explora datos de instituciones del Estado ecuatoriano sin navegar portales, descargar archivos ni lidiar con formatos.
- Unifica múltiples fuentes en un solo punto: Datos abiertos, trámites, regulaciones, contratación pública, riesgos, datos estadísticos y otras fuentes oficiales, todo accesible desde una sola conversación con tu IA.
- Preview de datos sin descargas:
preview_resource_dataparsea CSV/TSV, JSON/GeoJSON, Excel (XLS/XLSX) y algunos archivos comprimidos en memoria;query_resource_dataconsulta el DataStore CKAN sin bajar el archivo completo. - Cero fricción: No necesitas API key ni permisos especiales para las fuentes públicas compatibles.
- Compatible con cualquier cliente MCP: Claude, ChatGPT, Gemini, Cursor, VS Code, Windsurf, Le Chat, HuggingChat y más.
- Listo para producción: Docker, health checks, logging estructurado, y un servidor HTTP Streamable compatible con MCP.
- Consultar requisitos, costos y pasos de cualquier trámite gubernamental sin navegar gob.ec.
- Buscar datos públicos por tema (salud, educación, seguridad, economía) y entender qué publica cada institución.
- Explorar datasets del catálogo nacional y hacer preview de los datos directamente desde Claude o ChatGPT.
- Cruzar información de múltiples instituciones (SRI, INEC, BCE y ministerios) en una sola conversación.
- Acceder rápidamente a datos de anticorrupción, presupuestos y ejecución del gasto público.
- Integrar datos abiertos de Ecuador en aplicaciones mediante el protocolo MCP estándar.
- Prototipar dashboards y análisis exploratorios sin escribir código de scraping ni parseo de archivos.
- Usar como backend de datos para agentes de IA que necesiten contexto sobre Ecuador.
- Hacer más accesibles y descubribles los datos que ya publican las instituciones.
- Permitir que chatbots institucionales respondan preguntas con datos reales y actualizados.
- Demostrar el valor de los datos abiertos conectándolos directamente con herramientas de IA.
Este MCP unifica fuentes gubernamentales en un solo servidor:
| Fuente | Datos |
|---|---|
| Datos Abiertos y Cuenca en Datos (CKAN) | Catálogos, DataStore y archivos públicos |
| SRI | Datasets estadísticos, recaudación, RUC y Saiku público |
| Gob.ec | Trámites, instituciones y regulaciones |
| SERCOP/OCDS | Contratación pública |
| SGR e IG-EPN | Eventos de riesgo, tsunami y sismos |
| INEC | ANDA, Ecuador en Cifras, censos y recursos estadísticos |
| BCE | BCEData, IEM y otros indicadores económicos públicos |
| Superintendencia de Compañías | Directorio, auditores y datos financieros |
| Geografía INEC/DPA | Provincias, cantones y parroquias |
Sin API key para las fuentes públicas compatibles.
Agrega lo siguiente a tu archivo de configuración de Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json en macOS, %APPDATA%\Claude\claude_desktop_config.json en Windows):
{
"mcpServers": {
"ecuador-datos": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:8000/mcp"
]
}
}
}- Abre Cursor Settings
- Busca "MCP"
- Agrega un nuevo servidor MCP:
{
"mcpServers": {
"ecuador-datos": {
"url": "http://localhost:8000/mcp",
"transport": "http"
}
}
}Agrega a tu archivo mcp.json (ejecuta MCP: Open User Configuration desde la paleta de comandos):
{
"servers": {
"ecuador-datos": {
"url": "http://localhost:8000/mcp",
"type": "http"
}
}
}Disponible para planes pagos (Plus, Pro, Team, Enterprise).
- Ve a
Settings>Apps and connectors - Abre
Advanced settingsy habilita Developer mode - En
Settings>Connectors>Browse connectors, haz clic en Add a new connector - Configura la URL:
http://localhost:8000/mcp
claude mcp add --transport http ecuador-datos http://localhost:8000/mcpAgrega a ~/.gemini/settings.json:
{
"mcpServers": {
"ecuador-datos": {
"httpUrl": "http://localhost:8000/mcp"
}
}
}- Ve a
Intelligence>Connectors Add connector>Custom MCP Connector- Nombre: "Ecuador Datos" / URL:
http://localhost:8000/mcp
Agrega a ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"ecuador-datos": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://localhost:8000/mcp"]
}
}
}- En el chat, haz clic en el ícono
+>MCP Servers>Manage MCP Servers Add Servercon nombre "Ecuador Datos" y URLhttp://localhost:8000/mcp
git clone https://github.com/DweskZ/EcuDataMCP.git
cd EcuDataMCP
# Iniciar con configuración por defecto (puerto 8000)
docker compose up -d
# Con variables personalizadas
MCP_PORT=8007 LOG_LEVEL=DEBUG docker compose up -d
# Detener
docker compose downRequiere Python 3.11+ y uv.
git clone https://github.com/DweskZ/EcuDataMCP.git
cd EcuDataMCP
# Instalar dependencias
uv sync
# Copiar variables de entorno
cp .env.example .env
# Iniciar el servidor
uv run main.pyVariables de entorno:
| Variable | Descripción | Default |
|---|---|---|
MCP_HOST |
Dirección de bind | 127.0.0.1 |
MCP_PORT |
Puerto del servidor | 8000 |
MCP_TRANSPORT |
Transporte: http o stdio |
http |
LOG_LEVEL |
Nivel de log (DEBUG, INFO, WARNING, ERROR) | INFO |
MCP_AUTH_TOKEN |
Token Bearer opcional para /mcp |
vacío |
MCP_REQUIRE_AUTH |
Rechaza el arranque remoto sin token | 0 |
MCP_RATE_LIMIT_REQUESTS / MCP_RATE_LIMIT_WINDOW_SECONDS |
Cuota por cliente/IP | 120 / 60 |
MCP_SSL_CERTFILE / MCP_SSL_KEYFILE |
Certificado y clave para TLS directo | vacío |
Para ejecutar el transporte stdio localmente:
uv run python main.py --transport stdioLa referencia detallada de cada herramienta está en docs/TOOLS.md. El contrato JSON para agentes de BCEData/IEM está en docs/RESPONSE_CONTRACT.md.
| Endpoint | Descripción |
|---|---|
POST /mcp |
Mensajes JSON-RPC (cliente → servidor) |
GET /health |
Health check: {"status":"ok","uptime_since":"...","version":"..."} |
Cuando MCP_AUTH_TOKEN está definido, POST /mcp requiere el encabezado
Authorization: Bearer <token>. Para un despliegue remoto usa también
MCP_REQUIRE_AUTH=1, HTTPS y un proxy con su propia cuota por IP. /health
permanece sin autenticación para que Docker pueda comprobar el servicio.
Consulta docs/DEPLOYMENT.md para el despliegue remoto.
"¿Qué datos tiene el SRI sobre recaudación?"
El MCP buscará los datos públicos del SRI y te mostrará los resultados con títulos, descripciones y enlaces.
"Muéstrame un preview de los datos de hospitales"
El MCP descargará el archivo compatible y te mostrará las primeras filas como una tabla formateada.
"¿Cuáles son los requisitos para obtener el RUC?"
El MCP buscará en el portal gob.ec y te dará los requisitos, procedimiento y costo.
"¿Qué categorías de datos hay disponibles?"
El MCP listará las categorías temáticas disponibles.
Cliente MCP (Claude, ChatGPT, Cursor, etc.)
│
▼ POST /mcp
┌──────────────────────────────┐
│ FastMCP Server (main.py) │
├──────────────────────────────┤
│ tools/ │
│ ├── search_ecuador │ → CKAN + gob.ec (unificado)
│ ├── search_datasets │
│ ├── query_resource_data │ → CKAN DataStore
│ ├── preview_resource_data │ → CSV / JSON / XLS / XLSX
│ ├── get_category_info │ → helpers/ckan_client.py
│ ├── search_tramites │
│ ├── get_institucion_info │ → helpers/gobec_client.py
│ └── ... │
└──────────────────────────────┘
MIT License - ver LICENSE para más detalles.
Las contribuciones son bienvenidas. Consulta CONTRIBUTING.md para el proceso de colaboración.