EcuDataMCP

io.github.DweskZ由 GitHub 账号 DweskZ 发布v0.15.0更新于 Nov 8, 2026

Ecuador's open government data for AI assistants: CKAN, SRI, BCE, INEC, Supercias, SERCOP and more.

概览

AI 生成的概览

本地 MCP 服务器,让 AI 助手以对话方式访问厄瓜多尔开放政府数据:CKAN 目录、SRI、BCE、INEC、Supercias、SERCOP 和 gob.ec。

可以做什么
搜索并浏览厄瓜多尔开放数据,涵盖 CKAN 目录、gob.ec 办事流程与机构信息以及主题分类,提供统一搜索工具和分类列表。在内存中预览数据集文件(CSV/TSV、JSON/GeoJSON、Excel 及部分压缩格式),并查询 CKAN DataStore 资源而无需下载整个文件。查询公共采购(SERCOP/OCDS)、风险与地震事件、INEC 统计与普查、BCE 经济指标,以及 Supercias 公司名录与财务数据。获取护照、RUC 注册等政府办事流程的要求、费用和步骤。
适用场景
适合记者、研究人员、开发者和公民用自然语言询问厄瓜多尔公共数据、统计、采购或政府办事流程,而不必浏览政府门户。也适合快速搭建仪表盘原型或为 AI 代理提供厄瓜多尔相关背景。
运行要求
以 Python 包(ecuador-mcp)通过 uvx 本地运行,或用 Docker;手动安装需 Python 3.11+ 和 uv。兼容的公共数据源无需 API 密钥。需要访问厄瓜多尔政府门户的网络。可选环境变量可配置传输方式、端口、数据目录和 HTTP Bearer 令牌(MCP_AUTH_TOKEN)。
安装前请注意
部分工具定义和参数由 AI 生成,可能不完整或过时;重要决策前请对照链接的官方来源核实结果。Supercias 的 SQLite 数据库首次使用时需下载约 356 MB,耗时数分钟。若将 HTTP 服务器暴露到远程,应设置 MCP_AUTH_TOKEN 和 MCP_REQUIRE_AUTH,因为 /health 和 /usage 不要求认证。可选的调用日志(ECUADOR_MCP_USAGE_LOG)会记录每次调用。

安装

在 SourceWeft 中

  1. 打开 控制台中的 EcuDataMCP,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

EcuDataMCP

Sitio: https://dweskz.github.io/EcuDataMCP/

[License: MIT] [Python 3.11+] [MCP] [M8ven Score]

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.


Documentación del proyecto

  • 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.

Beneficios

  • 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_data parsea CSV/TSV, JSON/GeoJSON, Excel (XLS/XLSX) y algunos archivos comprimidos en memoria; query_resource_data consulta 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, Codex, 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.

Casos de uso

Para ciudadanos

  • 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.

Para periodistas e investigadores

  • 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.

Para desarrolladores

  • 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.

Para el sector público

  • 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.

Fuentes de datos

Este MCP unifica fuentes gubernamentales en un solo servidor:

FuenteDatos
Datos Abiertos y Cuenca en Datos (CKAN)Catálogos, DataStore y archivos públicos
SRIDatasets estadísticos, recaudación y RUC
Gob.ecTrámites, instituciones y regulaciones
SERCOP/OCDSContratación pública
SGR e IG-EPNEventos de riesgo, tsunami y sismos
INECANDA, Ecuador en Cifras, censos y recursos estadísticos
BCEBCEData, IEM y otros indicadores económicos públicos
Superintendencia de CompañíasDirectorio, auditores y datos financieros
Geografía INEC/DPAProvincias, cantones y parroquias

Sin API key para las fuentes públicas compatibles.


Conecta tu chatbot al servidor MCP

Claude Desktop

La forma más simple no necesita levantar ningún servidor: Claude Desktop ejecuta el paquete de PyPI con uv. Agrega lo siguiente a tu archivo de configuración (~/Library/Application Support/Claude/claude_desktop_config.json en macOS, %APPDATA%\Claude\claude_desktop_config.json en Windows):

json
{  "mcpServers": {    "ecuador-datos": {      "command": "uvx",      "args": ["ecuador-mcp", "--transport", "stdio"]    }  }}

También puedes instalar el archivo .mcpb adjunto a cada release como extensión de Claude Desktop. Si ya tienes el servidor HTTP corriendo (ver Ejecutar localmente), usa "command": "npx" con "args": ["mcp-remote", "http://localhost:8000/mcp"].

Cursor

  1. Abre Cursor Settings
  2. Busca "MCP"
  3. Agrega un nuevo servidor MCP:
json
{  "mcpServers": {    "ecuador-datos": {      "url": "http://localhost:8000/mcp",      "transport": "http"    }  }}

VS Code

Agrega a tu archivo mcp.json (ejecuta MCP: Open User Configuration desde la paleta de comandos):

json
{  "servers": {    "ecuador-datos": {      "url": "http://localhost:8000/mcp",      "type": "http"    }  }}

ChatGPT

Disponible para planes pagos (Plus, Pro, Team, Enterprise).

  1. Ve a Settings > Apps and connectors
  2. Abre Advanced settings y habilita Developer mode
  3. En Settings > Connectors > Browse connectors, haz clic en Add a new connector
  4. Configura la URL: http://localhost:8000/mcp

Claude Code

bash
claude mcp add --transport http ecuador-datos http://localhost:8000/mcp

Codex

bash
codex mcp add ecuador-datos --url http://localhost:8000/mcp

Esto guarda un bloque [mcp_servers.ecuador-datos] con url en ~/.codex/config.toml. Para usar el servidor por stdio en vez de HTTP:

bash
codex mcp add ecuador-datos -- uvx ecuador-mcp --transport stdio

Gemini CLI

Agrega a ~/.gemini/settings.json:

json
{  "mcpServers": {    "ecuador-datos": {      "httpUrl": "http://localhost:8000/mcp"    }  }}

Le Chat (Mistral)

  1. Ve a Intelligence > Connectors
  2. Add connector > Custom MCP Connector
  3. Nombre: "Ecuador Datos" / URL: http://localhost:8000/mcp

Windsurf

Agrega a ~/.codeium/windsurf/mcp_config.json:

json
{  "mcpServers": {    "ecuador-datos": {      "command": "npx",      "args": ["-y", "mcp-remote", "http://localhost:8000/mcp"]    }  }}

HuggingChat

  1. En el chat, haz clic en el ícono + > MCP Servers > Manage MCP Servers
  2. Add Server con nombre "Ecuador Datos" y URL http://localhost:8000/mcp

Ejecutar localmente

Con uvx (desde PyPI)

bash
uvx ecuador-mcp --transport stdio

search_ranking/get_financials usan una base SQLite local de Supercías que se construye sola en segundo plano cuando la primera consulta la necesita (descarga ~356 MB, 5-10 min; esa consulta pide reintentar). Instalado desde PyPI se guarda en el directorio de datos del usuario (%LOCALAPPDATA%\ecuador-mcp en Windows, ~/Library/Application Support/ecuador-mcp en macOS, ~/.local/share/ecuador-mcp en Linux); ECUADOR_MCP_DATA_DIR cambia la ubicación.

Con Docker (recomendado)

La imagen arranca por stdio, como cualquier servidor MCP en Docker:

bash
docker build -t ecuador-mcp https://github.com/DweskZ/EcuDataMCP.gitdocker run -i --rm ecuador-mcp

Para el servidor HTTP, docker compose fija MCP_TRANSPORT=http y exige autenticación (MCP_REQUIRE_AUTH=1): sin MCP_AUTH_TOKEN el proceso se detiene con un error y el contenedor se reinicia en bucle. Define el token antes de arrancar, en el entorno o en un .env:

bash
git clone https://github.com/DweskZ/EcuDataMCP.gitcd EcuDataMCP
# Opción A: token en el entorno (puerto 8000)MCP_AUTH_TOKEN="$(openssl rand -hex 32)" docker compose up -d
# Opción B: token en .env (docker compose lo lee solo)cp .env.example .env    # edita MCP_AUTH_TOKEN=... y MCP_REQUIRE_AUTH=1docker compose up -d
# Con variables personalizadasMCP_AUTH_TOKEN=... MCP_PORT=8007 LOG_LEVEL=DEBUG docker compose up -d
# Detenerdocker compose down

Los clientes envían el token como Authorization: Bearer <token> en POST /mcp. La lista completa de variables y el despliegue detrás de un proxy HTTPS están en docs/DEPLOYMENT.md.

Instalación manual

Requiere Python 3.11+ y uv.

bash
git clone https://github.com/DweskZ/EcuDataMCP.gitcd EcuDataMCP
# Instalar dependenciasuv sync
# Copiar variables de entornocp .env.example .env
# Iniciar el servidoruv run main.py

Variables de entorno (las más usadas; la lista completa, con el perfil de tools, la concurrencia, el proxy geográfico y las URLs base de cada fuente, está en docs/DEPLOYMENT.md § Variables de entorno):

VariableDescripciónDefault
MCP_HOSTDirección de bind127.0.0.1
MCP_PORTPuerto del servidor8000
MCP_TRANSPORTTransporte: http o stdiohttp
LOG_LEVELNivel de log (DEBUG, INFO, WARNING, ERROR)INFO
MCP_AUTH_TOKENToken Bearer opcional para /mcpvacío
MCP_REQUIRE_AUTHRechaza el arranque remoto sin token0
MCP_RATE_LIMIT_REQUESTS / MCP_RATE_LIMIT_WINDOW_SECONDSCuota por cliente/IP120 / 60
MCP_SSL_CERTFILE / MCP_SSL_KEYFILECertificado y clave para TLS directovacío
ECUADOR_MCP_USAGE_LOG1 guarda cada llamada (tool, resultado, duración; nunca argumentos) en usage.jsonl del directorio de datos; scripts/usage_report.py lo resumevacío
ECUADOR_MCP_DATA_DIRDónde guardar la base de Supercías y los snapshots del BCEdata/ en un clon; directorio de datos del usuario si se instaló desde PyPI

Para ejecutar el transporte stdio localmente:

bash
uv run python main.py --transport stdio

La referencia detallada de cada herramienta está en docs/TOOLS.md. El contrato JSON para agentes de BCEData/IEM está en docs/RESPONSE_CONTRACT.md.


Endpoints

EndpointDescripción
POST /mcpMensajes JSON-RPC (cliente → servidor)
GET /healthHealth check: {"status":"ok","uptime_since":"...","version":"..."}
GET /usageLlamadas, errores y latencia p50/p95 por tool desde el arranque

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 y /usage permanecen sin autenticación (no exponen argumentos ni datos de usuarios). Consulta docs/DEPLOYMENT.md para el despliegue remoto.


Ejemplos de uso

Buscar datos del SRI

"¿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.

Ver datos de salud

"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.

Consultar trámites

"¿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.

Explorar por categoría

"¿Qué categorías de datos hay disponibles?"

El MCP listará las categorías temáticas disponibles.


Arquitectura

Cliente MCP (Claude, ChatGPT, Cursor, etc.)    │    ▼ POST /mcp┌──────────────────────────────┐│   MCPServer (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│   └── ...                    │└──────────────────────────────┘

Licencia

MIT License - ver LICENSE para más detalles.


Contribuir

Las contribuciones son bienvenidas. Consulta CONTRIBUTING.md para el proceso de colaboración.

来源:README.md,提交 6c4d019

工具

0
SourceWeft 曾在隔离沙箱中以无凭据方式启动该软件包一次,以列出其工具,但未能完成:服务器未在限时内响应。

版本历史

5
  1. v0.13.0Oct 17, 2026
  2. v0.12.0Oct 11, 2026
  3. v0.11.0Oct 2, 2026
  4. v0.10.0Sep 28, 2026
  5. v0.9.1Sep 27, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分