Skip to main content
Glama

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@indec

Despué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á con indec_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-mcp

En 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-mcp

Opció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

INDEC_API_TOKEN

—

JWT del portal (obligatorio para consultar datos)

INDEC_API_BASE_URL

https://api.indec.gob.ar/v1/

Base de la API. Solo se acepta HTTPS (o localhost), porque el token viaja en cada consulta

INDEC_CACHE_TTL_SECONDS

3600

TTL de la caché en memoria (0 = sin caché)

INDEC_REQUEST_TIMEOUT_MS

30000

Timeout por request

Herramientas (19)

Tool

Para qué

indec_list_datasets · indec_describe_dataset

Descubrir datasets, columnas y claves (no usan token)

indec_query_dataset

Consulta genérica: select, filtros, orden, paginación, conteo

indec_count_rows · indec_distinct_values

Contar filas / descubrir valores de una columna

indec_aggregate

Sumar, promediar o contar agrupando (recorre hasta N filas)

indec_status

Token configurado y detección de cambios en el spec de la API

indec_ipc · indec_canastas · indec_salarios · indec_precios_mayoristas · indec_costo_construccion

Precios y costos

indec_emae · indec_ipi

Actividad económica e industria

indec_pobreza · indec_mercado_trabajo · indec_poblacion

Condiciones de vida y población

indec_comercio_exterior · indec_buscar_codigo

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.json es el spec oficial (público en GET /v1/). npm run gen genera de él src/datasets/registry.generated.ts (columnas, tipos, claves de orden y frecuencia). npm run gen -- --fetch actualiza el snapshot desde el INDEC; indec_status avisa si el spec remoto cambió.

  • Los filtros se validan contra el registry; se manda siempre la clave primaria completa en order para que la paginación sea estable; los valores se codifican con URLSearchParams.

  • Reintentos con backoff ante 429/502/503/504, caché con TTL y deduplicación de requests concurrentes. Se identifica con un User-Agent propio.

  • 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 en select y filtros. Este servidor las limpia de la salida y las resume en razon_nulo / signos_convencionales.

  • Períodos de la EPH: 20261S (semestre) y 20262T (trimestre), no AAAAN. Los mensuales son AAAAMM.

  • 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ámetro tipo amigable 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 como filas_sin_valor.

  • Provisorios: el texto de observaciones (ej. «Dato provisorio») se devuelve en notas.

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_status ayudan a detectarlo.

  • Los totales calculados por indec_aggregate y indec_comercio_exterior son 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_aggregate hasta 50.000 por consulta (max_rows) y indec_comercio_exterior hasta 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 API

Los 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 tools
indec_aggregateAgregar datos (suma, promedio, mín., máx., conteo)A
Read-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 exteriorA
Read-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 crianzaA
Read-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)A
Read-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úblicasA
Read-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 datasetA
Read-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 datasetA
Read-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 columnaA
Read-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ómicaA
Read-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 ConsumidorA
Read-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)A
Read-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 INDECA
Read-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)A
Read-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)A
Read-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)A
Read-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)A
Read-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)A
Read-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 salariosA
Read-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 APIA
Read-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

    A3.8/5.0

    Scored across 19 tools

    Disambiguation4/5

    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.

    Naming Consistency4/5

    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.

    Tool Count4/5

    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.

    Completeness4/5

    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

    ActivityMaintained
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      C
      maintenance
      Enables 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.
      5
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Provides 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 npm
      MIT
    • A
      license
      A
      quality
      F
      maintenance
      Enables 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.
      6
      MIT