indec-mcp
Consultar y explorar estadísticas oficiales del INDEC desde un agente MCP, con herramientas genéricas y especializadas para series económicas y sociales de Argentina.
Descubrir datasets, columnas y verificar el estado/spec de la API sin token (
indec_list_datasets,indec_describe_dataset,indec_status).Consultar cualquier dataset con select, filtros, orden, paginación y conteo exacto (
indec_query_dataset,indec_count_rows).Descubrir valores distintos y agregar datos por grupo con suma, promedio, mínimo, máximo o conteo (
indec_distinct_values,indec_aggregate).Consultar IPC/inflación con aperturas por región, nivel y categoría (
indec_ipc).Consultar canastas CBA/CBT y canasta de crianza (
indec_canastas).Consultar salarios, precios mayoristas, costo de construcción y redeterminación de obras (
indec_salarios,indec_precios_mayoristas,indec_costo_construccion).Consultar actividad económica e industria: EMAE e IPI manufacturero/minero (
indec_emae,indec_ipi).Consultar pobreza/indigencia, mercado de trabajo y población nacional, por jurisdicción o por departamento (
indec_pobreza,indec_mercado_trabajo,indec_poblacion).Consultar comercio exterior de bienes y resolver códigos de países, rubros, subrubros, usos económicos y GCE (
indec_comercio_exterior,indec_buscar_codigo).Usar resources y prompts para catálogo, guías e informes; consultar datos requiere
INDEC_API_TOKEN.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@indec-mcp ¿Cuánto fue la inflación de cada mes de 2024?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
indec-mcp
Servidor MCP (Model Context Protocol) para consultar las estadísticas del INDEC de Argentina desde agentes de IA (Claude, Cursor y cualquier cliente MCP), sobre la API oficial api.indec.gob.ar (hoy en BETA).
Proyecto no oficial. No está afiliado ni respaldado por el INDEC. Los datos pertenecen al INDEC: citá siempre la fuente.
Vos: ¿Cuánto fue la inflación de cada mes de 2025 y cómo se compara con la canasta básica?
Claude: [indec_ipc → indec_canastas] …Cubre los 19 datasets de la API: IPC, canastas (CBA/CBT y de crianza), salarios, precios mayoristas, costo de la construcción, EMAE, IPI manufacturero y minero, pobreza, mercado de trabajo (EPH), población (nacional, por jurisdicción y por departamento) y comercio exterior (exportaciones, importaciones y nomenclaturas).
English: an MCP server that lets AI agents query Argentina's national statistics office (INDEC) through its public API: inflation, wage indices, poverty, GDP proxy (EMAE), trade and more. Unofficial. Requires a free INDEC API token (see below). Spanish-language tool descriptions and responses.
Requisitos
Node.js ≥ 20
Un token JWT de la API del INDEC (gratis): registrate en https://api.indec.gob.ar, verificá el mail con el código de verificación y generá el token desde Gestionar la cuenta. Copialo y guardalo en un lugar seguro. Vence a los 12 meses, y si lo perdés o deja de andar podés generar uno nuevo (el anterior deja de ser válido enseguida).
Related MCP server: mcp-inegi
Instalación asistida por tu agente (Claude Code)
Si usás Claude Code, la forma más fácil es dejar que tu agente te guíe. Este repositorio incluye una skill que revisa si tenés Node.js y npm, te pide permiso antes de instalar cualquier cosa, te lleva a la página del INDEC para conseguir tu API key, registra el servidor y verifica que funcione:
/plugin marketplace add SantinoSpingola/indec-mcp
/plugin install indec-mcp@indecDespués pedile a Claude: «ayudame a instalar el MCP del INDEC». También funciona si le pegás el link de este repositorio y le pedís que lo instale (leerá skills/instalar-indec-mcp/SKILL.md).
Para agentes de IA: si un usuario te pidió instalar este MCP, seguí
skills/instalar-indec-mcp/SKILL.md: comprobá Node.js (≥ 20), pedí permiso antes de instalar o modificar nada, indicá al usuario que genere su API key en https://api.indec.gob.ar (no la crees por él) y verificá conindec_status.
Si preferís hacerlo a mano, seguí con las opciones de abajo.
Instalación
Opción A: desde npm (la más simple)
En Claude Desktop o Cursor (en Claude Desktop: Settings → Developer → Edit Config):
{
"mcpServers": {
"indec": {
"command": "npx",
"args": ["-y", "indec-mcp"],
"env": { "INDEC_API_TOKEN": "tu_token_jwt" }
}
}
}En Claude Code:
claude mcp add indec --env INDEC_API_TOKEN=tu_token_jwt -- npx -y indec-mcpEn Windows (PowerShell o CMD, no WSL) Claude Code necesita cmd /c delante de npx:
claude mcp add indec --env INDEC_API_TOKEN=tu_token_jwt -- cmd /c npx -y indec-mcpOpción B: desde el código fuente
git clone https://github.com/SantinoSpingola/indec-mcp.git
cd indec-mcp
npm install # compila solo (script `prepare`)Después apuntá tu cliente MCP a node /ruta/absoluta/a/indec-mcp/dist/index.js (mismo bloque mcpServers de arriba, con "command": "node" y esa ruta en args).
Opción C: directo desde GitHub con npx
"args": ["--allow-git=all", "-y", "github:SantinoSpingola/indec-mcp"] en el bloque de arriba. La primera vez compila y tarda un minuto. --allow-git=all hace falta desde npm 12, que por seguridad ya no descarga paquetes desde git por defecto; con npm 10 u 11 podés omitirlo.
Tu token es personal. Ponelo solo en la variable de entorno de tu cliente MCP; el servidor nunca lo escribe en logs ni en las respuestas.
Variables de entorno
Variable | Default | Descripción |
| — | JWT del portal (obligatorio para consultar datos) |
|
| Base de la API. Solo se acepta HTTPS (o |
|
| TTL de la caché en memoria (0 = sin caché) |
|
| Timeout por request |
Herramientas (19)
Tool | Para qué |
| Descubrir datasets, columnas y claves (no usan token) |
| Consulta genérica: select, filtros, orden, paginación, conteo |
| Contar filas / descubrir valores de una columna |
| Sumar, promediar o contar agrupando (recorre hasta N filas) |
| Token configurado y detección de cambios en el spec de la API |
| Precios y costos |
| Actividad económica e industria |
| Condiciones de vida y población |
| Sector externo (resuelve países y rubros por nombre) |
Las tools de series devuelven solo el último período si no se indica desde/hasta (formatos AAAA, AAAA-MM, AAAA-N para semestres y trimestres).
También expone resources (indec://catalogo, indec://dataset/{id}, indec://signos-convencionales, indec://guia-paginacion) y prompts (informe-inflacion, panorama-economico, evolucion-pobreza, comercio-exterior-por-pais).
Cómo está hecho
docs/openapi.snapshot.jsones el spec oficial (público enGET /v1/).npm run gengenera de élsrc/datasets/registry.generated.ts(columnas, tipos, claves de orden y frecuencia).npm run gen -- --fetchactualiza el snapshot desde el INDEC;indec_statusavisa si el spec remoto cambió.Los filtros se validan contra el registry; se manda siempre la clave primaria completa en
orderpara que la paginación sea estable; los valores se codifican conURLSearchParams.Reintentos con backoff ante 429/502/503/504, caché con TTL y deduplicación de requests concurrentes. Se identifica con un
User-Agentpropio.Los signos convencionales del INDEC (
*,**,s, …) se detectan y se informan junto a los datos.
Particularidades de la API (verificadas contra datos reales, nov-2026)
Columnas
<col>_null: cada columna anulable tiene una hermana con el signo convencional cuando el valor es nulo (valor_FOB=null,valor_FOB_null="s"). No figuran en el spec, pero se pueden usar enselecty filtros. Este servidor las limpia de la salida y las resume enrazon_nulo/signos_convencionales.Períodos de la EPH:
20261S(semestre) y20262T(trimestre), noAAAAN. Los mensuales sonAAAAMM.Tipos de indicador en precios y salarios:
Indice,v_m(mensual),v_ia(interanual),v_acum,incidencia; el IPI usa nombres en español. Las tools exponen un parámetrotipoamigable que los traduce.Datos confidenciales: en comercio exterior cerca de la mitad de las filas tienen
s(secreto estadístico). No suman y se informan comofilas_sin_valor.Provisorios: el texto de
observaciones(ej. «Dato provisorio») se devuelve ennotas.
Límites conocidos
Solo transporte stdio (cliente local). No hay servidor HTTP.
La API del INDEC está en BETA: puede cambiar sin aviso. El script de verificación y
indec_statusayudan a detectarlo.Los totales calculados por
indec_aggregateyindec_comercio_exteriorson sumas de las filas publicadas y pueden diferir levemente de los informes técnicos del INDEC (redondeo, datos confidenciales).El servidor no interpreta ni valida económicamente los datos: son lo que publica el INDEC.
Límites de uso del INDEC: la API tiene límites según el tipo de cuenta, que el INDEC no detalla en sus términos. Para ser un buen usuario, el servidor guarda las respuestas en caché (1 hora por defecto), reintenta con espera creciente y limita cuántas filas recorre:
indec_aggregatehasta 50.000 por consulta (max_rows) yindec_comercio_exteriorhasta 200.000, avisando cuando el resultado es parcial. Si una consulta es muy grande, acotala con filtros.
Desarrollo
npm install
npm test # tests unitarios, de contrato con el spec y del servidor con API simulada
npm run typecheck
npm run smoke # handshake real por stdio, sin token
npm run smoke -- --live # 1 request real por dataset (requiere INDEC_API_TOKEN)
npm run e2e # escenarios de agente contra la API real (requiere INDEC_API_TOKEN)
node scripts/verify-live.mjs [distinct|samples|tipos|comercio|signos] # muestras reales
node scripts/probe.mjs "<ruta?query>" # request crudo a la APILos tests de CI no usan el token: la API se simula (el smoke solo consulta el spec público). Las pruebas contra la API real (smoke --live, e2e) se corren a mano.
Datos y atribución
Los datos son del INDEC (https://www.indec.gob.ar), obtenidos de su API pública. Revisá los términos de la API antes de redistribuir datos.
Cómo citar: el INDEC pide citar la fuente de forma clara y visible, con el formato «Fuente: INDEC» más el servicio de datos consultado, por ejemplo «Fuente: INDEC, IPC nacional». Cada respuesta de este servidor trae el campo dataset con el servicio consultado para armar esa cita. Este proyecto no está afiliado al INDEC ni cuenta con su respaldo.
Seguridad
Ver SECURITY.md.
Licencia
MIT © 2026 Santino Spingola
Available Tools
19 toolsindec_aggregateAgregar datos (suma, promedio, mín., máx., conteo)ARead-onlyIdempotent
Trae las filas que cumplen el filtro (hasta max_rows, paginando de a 1000) y las agrupa localmente por una o más columnas. Sirve para totales como 'exportaciones por año' o 'población por jurisdicción'. Ojo: sumar índices o tasas no tiene sentido estadístico; usar sobre magnitudes (USD, kg, habitantes). Requiere INDEC_API_TOKEN.
Inputs: dataset (required), agg, filters, group_by, +3 more.
indec_buscar_codigoBuscar códigos de comercio exteriorARead-onlyIdempotent
Busca en el diccionario de comercio exterior (países, rubros, subrubros, usos económicos, grandes categorías económicas) por texto de la descripción (sin distinguir tildes) o por código. Útil para traducir 'Brasil' → código de país, o un código → nombre. Requiere INDEC_API_TOKEN.
Inputs: tipo, limit, texto, codigo.
indec_canastasCanastas básicas (CBA/CBT) y canasta de crianzaARead-onlyIdempotent
Valorización mensual de la Canasta Básica Alimentaria (CBA) y Total (CBT) del GBA, por adulto equivalente y por hogar tipo (desde 2016), con su variación; o la canasta de crianza por tramo de edad (desde 2020). Sin desde/hasta devuelve el último mes. Requiere INDEC_API_TOKEN.
Inputs: tipo, desde, hasta, limit, +5 more.
indec_comercio_exteriorComercio exterior de bienes (exportaciones / importaciones)ARead-onlyIdempotent
Exportaciones (valor FOB; rubros y subrubros) o importaciones (valor CIF; usos económicos y grandes categorías) por país, mensual desde 1986. Valores en USD y peso neto en kg. Filtrá por nombre (se resuelve contra el diccionario). Con agrupar_por devuelve totales sumados con nombres en vez de filas crudas (las filas con dato confidencial 's' no suman y se informan). desde/hasta aceptan AAAA o AAAA-MM; sin ellos se usa el último mes. Requiere INDEC_API_TOKEN.
Inputs: flujo (required), gce, pais, desde, +9 more.
indec_costo_construccionCosto de la construcción (ICC) y redeterminación de obras públicasARead-onlyIdempotent
ICC del GBA (base 1993, desde nov-2015) o las aperturas ICC/IPIB para redeterminación de precios de contratos de obra pública (Decretos 1295/2002 y 634/2003). Sin desde/hasta devuelve el último mes. Requiere INDEC_API_TOKEN.
Inputs: tipo, desde, hasta, limit, +5 more.
indec_count_rowsContar filas de un datasetARead-onlyIdempotent
Devuelve el total exacto de filas de un dataset (opcionalmente filtrado) sin traer datos. Requiere INDEC_API_TOKEN.
Inputs: dataset (required), filters.
indec_describe_datasetDescribir un datasetARead-onlyIdempotent
Devuelve las columnas (nombre exacto, tipo y significado), la clave de orden para paginar y la frecuencia de un dataset. Usalo antes de armar filtros con indec_query_dataset. No requiere token.
Inputs: dataset (required).
indec_distinct_valuesValores distintos de una columnaARead-onlyIdempotent
Lista los valores distintos de una columna (útil para descubrir regiones, rubros, sectores, etc. antes de filtrar). Por defecto mira solo el último período disponible (donde suelen estar todas las categorías); con all_periods=true recorre hasta max_rows filas. Requiere INDEC_API_TOKEN.
Inputs: column (required), dataset (required), filters, max_rows, +1 more.
indec_emaeEMAE — Estimador Mensual de Actividad EconómicaARead-onlyIdempotent
EMAE base 2004=100, desde 2004. nivel='general': serie original, desestacionalizada y tendencia-ciclo (índice y variaciones). nivel='sectores': por sector de actividad (serie original). Sin desde/hasta devuelve el último mes. Requiere INDEC_API_TOKEN.
Inputs: tipo, desde, hasta, limit, +7 more.
indec_ipcIPC — Índice de Precios al ConsumidorARead-onlyIdempotent
Inflación (IPC, base dic-2016=100) con aperturas por región, nivel (Nivel General, División, Grupo, Clase, Categoría, Producto) y categoría, desde dic-2016. Sin desde/hasta devuelve el último mes publicado. Ej.: inflación mensual nacional = region 'Nacional', nivel 'Nivel General', tipo 'mensual'. Requiere INDEC_API_TOKEN.
Inputs: tipo, desde, hasta, limit, +6 more.
indec_ipiIPI — Índice de producción industrial (manufacturero y minero)ARead-onlyIdempotent
IPI manufacturero (base 2004=100, desde 2016) o minero (base 2016=100, desde 2017), con series original, desestacionalizada y tendencia-ciclo. Sin desde/hasta devuelve el último mes. Requiere INDEC_API_TOKEN.
Inputs: rama, tipo, desde, hasta, +6 more.
indec_list_datasetsListar datasets del INDECARead-onlyIdempotent
Lista el catálogo de los datasets de la API del INDEC (id, área, frecuencia y resumen). Empezá por acá para saber qué datos existen. No consulta datos y no requiere token.
Inputs: area.
indec_mercado_trabajoMercado de trabajo (EPH)ARead-onlyIdempotent
Tasas de actividad, empleo, empleo formal/informal, desocupación y subocupación (31 aglomerados), trimestral desde el 2.º trimestre de 2016 (períodos tipo '20262T'). desde/hasta aceptan AAAA o AAAA-N (N = trimestre 1–4). Sin desde/hasta devuelve el último trimestre publicado. Requiere INDEC_API_TOKEN.
Inputs: area, desde, hasta, limit, +3 more.
indec_poblacionPoblación: estimaciones y proyecciones (Censo 2022)ARead-onlyIdempotent
Población al 1.º de julio de cada año. nivel='nacional' (por sexo y edad simple, 2022–2040), 'jurisdiccion' (por sexo y grupo quinquenal de edad, 2022–2040) o 'departamento' (por sexo, 2022–2035). desde/hasta son años. Sin desde/hasta usa el año en curso (acotado al rango del dataset). Requiere INDEC_API_TOKEN.
Inputs: edad, sexo, desde, hasta, +7 more.
indec_pobrezaPobreza e indigencia (EPH)ARead-onlyIdempotent
Incidencia de pobreza e indigencia en hogares y personas, total de 31 aglomerados urbanos, semestral desde el 2.º semestre de 2016 (períodos tipo '20261S'). desde/hasta aceptan AAAA o AAAA-N (N = semestre 1 o 2). Sin desde/hasta devuelve el último semestre publicado. Requiere INDEC_API_TOKEN.
Inputs: area, desde, hasta, limit, +3 more.
indec_precios_mayoristasPrecios mayoristas (SIPM: IPIM, IPIB, IPP)ARead-onlyIdempotent
Sistema de índices de precios mayoristas: IPIM, IPIB e IPP, con índice, variaciones e incidencias (desde dic-2015). Sin desde/hasta devuelve el último mes. Requiere INDEC_API_TOKEN.
Inputs: tipo, desde, hasta, limit, +5 more.
indec_query_datasetConsultar un dataset (genérico)ARead-onlyIdempotent
Consulta cualquier dataset con select, filtros, orden y paginación (máx. 1000 filas por página). Si no indicás order se usa la clave primaria completa para que la paginación sea estable. Con count=true devuelve también el total exacto de filas. Requiere INDEC_API_TOKEN.
Inputs: dataset (required), count, limit, order, +3 more.
indec_salariosÍndice de salariosARead-onlyIdempotent
Índice de salarios (base oct-2016=100) del sector privado registrado, no registrado y público, con variaciones (desde nov-2015). Sin desde/hasta devuelve el último mes. Requiere INDEC_API_TOKEN.
Inputs: tipo, desde, hasta, limit, +4 more.
indec_statusEstado del servidor y de la APIARead-onlyIdempotent
Informa si hay token configurado, la URL base y si el spec público de la API del INDEC cambió respecto del que usa este servidor (la API está en BETA). No requiere token.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 19 tools
The ten indicator tools (ipc, canastas, salarios, emae, etc.) each target a clearly distinct dataset, and the generic tools (list_datasets, describe_dataset, query_dataset) have distinct roles. There is some overlap between count_rows and query_dataset(count=true), and between indec_aggregate and comercio_exterior's agrupar_por parameter, but descriptions clarify which to prefer.
All names share a consistent indec_ snake_case prefix and readable form. The only deviation is that infrastructure tools use verb_noun (query_dataset, count_rows) while indicator tools are noun-only (indec_ipc, indec_pobreza), which is a minor but sensible split for proper dataset names.
19 tools is on the heavier side, but INDEC covers many genuinely distinct statistical domains (prices, wages, poverty, labor, population, trade) each warranting a dedicated tool, plus a compact set of six generic data-access tools. Slightly over but well justified by domain breadth.
Coverage is strong: catalog discovery, schema description, generic query/count/distinct/aggregate, diagnostics, and dedicated tools for the major indicators plus a trade-code lookup. Because indec_query_dataset can reach any dataset, gaps are minor; only a handful of secondary indicator areas and metadata search are not surfaced as first-class tools.
Maintenance
Related MCP Connectors
Argentina's official public data (INDEC, BCRA, 38 portals): search, read tables, cited answers.
Argentina's official statistics (INDEC): inflation, wages, poverty, trade, population. No signup.
Real-time Argentine open data: dollar rates, BCRA, INDEC, AFIP, INFOLEG, SEPA prices. 24+ tools.
Argentina/Brazil data for agents: ARS dollar rates, INDEC CPI, holidays, CUIT/CPF/CNPJ, CEP, PTAX.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI agents to query Uruguay's open government data from multiple sources (national catalog, Central Bank, statistics institute, Montevideo city data and transport, and gub.uy service catalog) through a meta-discovery layer.5MIT
- AlicenseNot gradedqualityCmaintenanceProvides access to Mexico's INEGI (national statistics office) indicators API, enabling AI agents to query statistical data through natural language or direct tool calls.129 npmMIT
- AlicenseAqualityFmaintenanceEnables AI agents to discover, retrieve, compare, and analyze trusted macroeconomic statistics from central banks and international organizations, resolving concepts to official series with provenance and validation.6MIT
- AlicenseNot gradedqualityCmaintenanceArgentina's official public data (INDEC, BCRA, 38 portals) in your AI assistant: search datasets, read tables, get answers with the official source. Free key.MIT