Free, open tools for AI safety
Sandbox AI agents, watch what they do with a hidden Observer, and measure it with evals. Open source, local, with evidence anyone can check.
Itzamná: servidores MCP de código abierto que conectan la IA con los datos públicos oficiales de México, siempre con su fuente.
Translation pending
Developer toolsPythonGitHub @itzamna-mxOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Servidor MCP para indicadores oficiales del INEGI: población, inflación, empleo, PIB e IGAE por país, estado y municipio. Parte de Itzamná.
Translation pending
Loading the full README.
Read the full README ↗Servidor MCP para que cualquier asistente de IA (Claude, ChatGPT, Gemini, Cursor o un modelo local) consulte datos oficiales del INEGI y conteste citando la fuente:
Forma parte de Itzamná, una familia de servidores MCP de código abierto sobre los datos públicos de México. Proyecto independiente, sin afiliación con el INEGI.
Cada respuesta trae el ID del indicador, el periodo, la unidad, la fuente oficial y la fecha de última actualización, para que cualquiera la pueda verificar.
| Herramienta | Qué hace |
|---|---|
perfil_area | Perfil de un lugar: población, mujeres y hombres, % indígena, desempleo y negocios |
indicadores_clave | Catálogo de indicadores verificados, con su ID y cobertura geográfica |
consultar_indicador | Último valor o serie de un indicador para el país, un estado o un municipio |
comparar_areas | El mismo indicador en varios estados o municipios, ordenado de mayor a menor |
buscar_municipio | Clave de un municipio o alcaldía por nombre, sin importar acentos |
metadatos_indicador | Nombre oficial, unidad, frecuencia, fuente y periodo cubierto |
contar_negocios | Cuántos negocios de un giro hay en el país, un estado o un municipio |
buscar_negocios | Negocios por nombre o giro en un área, con dirección, contacto y tamaño |
negocios_cercanos | Negocios alrededor de unas coordenadas, del más cercano al más lejano |
buscar_actividad | Código SCIAN de un giro ("tortillerías" → 311830) |
consultar_indicador acepta las claves del catálogo (INFLACION_ANUAL, POBLACION_TOTAL,
TASA_DESOCUPACION, PIB_REAL, IGAE…) o cualquier ID numérico del Banco de Indicadores.
Las áreas se pueden dar por nombre o por clave: estados (Jalisco, CDMX, 14) y los 2,478
municipios y alcaldías (Naucalpan, Juárez, Chihuahua, 15057). Si un nombre existe en varios
estados, como Benito Juárez, el servidor devuelve los candidatos en lugar de adivinar.
Las herramientas del DENUE aceptan el giro en lenguaje natural ("gimnasio", "oxxo", "taller mecánico"): el servidor lo traduce al código SCIAN con el catálogo oficial incluido en el paquete y dice qué actividad usó, con alternativas por si no era esa. También se puede filtrar por tamaño (personal ocupado, de "0 a 5" hasta "251 y más").
Hay una instancia pública hospedada en streamable-http. No necesitas Python ni pedir tu propio
token del INEGI:
https://itzamna-mcp.duckdns.org/inegi/mcp
En Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"inegi": {
"type": "streamable-http",
"url": "https://itzamna-mcp.duckdns.org/inegi/mcp"
}
}
}
En Claude Code:
claude mcp add --transport http inegi https://itzamna-mcp.duckdns.org/inegi/mcp
Es un servicio comunitario en infraestructura propia, con límite de 30 consultas por minuto por IP. Para uso intensivo o en producción, instálalo localmente con tu propio token.
uvx)export INEGI_TOKEN="tu_token"
export DENUE_TOKEN="tu_token_denue"
uvx mcp-inegi --test
claude_desktop_config.json):{
"mcpServers": {
"inegi": {
"command": "uvx",
"args": ["mcp-inegi"],
"env": { "INEGI_TOKEN": "tu_token", "DENUE_TOKEN": "tu_token_denue" }
}
}
}
En Claude Code:
claude mcp add inegi -e INEGI_TOKEN=tu_token -e DENUE_TOKEN=tu_token_denue -- uvx mcp-inegi
mcp-inegi --transport streamable-http --host 127.0.0.1 --port 8000 --allowed-host tu.dominio
Detrás de un proxy inverso, --allowed-host declara el nombre público para la protección contra
DNS rebinding.
Cosas que descubrimos al construirlo (octubre de 2026) y que el servidor ya resuelve por ti:
BIE-BISE; con BIE a secas la API responde que no hay resultados.reciente=true la API falla en municipios cuando el
periodo nacional más nuevo (p. ej. 2025) no existe a ese nivel.httpx para no filtrarlo.scripts/generar_municipios.py lo
regenera desde el Marco Geoestadístico).0 y se suman los estados: con 00 la API
responde 0. La búsqueda por área sí usa 00 para todo el país, y "todos" no es comodín ahí.scripts/generar_scian.py lo regenera desde los catálogos
2023 y 2018 del INEGI; requiere openpyxl).resumen: una frase lista para citar con la cifra, el periodo y la
fuente, pensada para que modelos pequeños no tengan que reformatear números.INEGI_CACHE_TTL, en segundos) y los catálogos de
unidades, fuentes, frecuencias y áreas durante 24 horas.uv venv && uv pip install -e ".[dev]"
pytest
ruff check .
Licencia MIT.