Modo datos
Tu asistente busca, mira, trae las filas o pide los totales, y razona él. No descuenta preguntas.
buscar_datasetsdescribir_tablaobtener_datosagregar_datoslistar_fuentes
02 / 03 Referencia
El servidor https://mcp.openarg.org/mcp usa el transporte
Streamable HTTP. Todas las herramientas son de solo lectura.
Tu asistente busca, mira, trae las filas o pide los totales, y razona él. No descuenta preguntas.
buscar_datasetsdescribir_tablaobtener_datosagregar_datoslistar_fuentesOpenArg arma la respuesta, cruza tablas y verifica los números.
consultar_datos_publicosbuscar_datasetsBusca en el catálogo (más de 30.000 datasets de portales oficiales), por significado y por palabras.
| Parámetro | Tipo | Descripción |
|---|---|---|
texto | texto | Lo que buscás: "tasas de interés BCRA", "matrícula escolar CABA". |
portal | texto, opcional | Limita a un portal (ver listar_fuentes). |
limite | número, opcional | De 1 a 25. Por defecto 10. |
Devuelve título, portal, descripción, link a la fuente oficial y las tablas consultables de cada dataset, con su cantidad de filas.
describir_tablaTodo lo necesario para pedir bien los datos de una tabla.
| Parámetro | Tipo | Descripción |
|---|---|---|
tabla | texto | El nombre que devolvió buscar_datasets. |
Devuelve las columnas con su tipo, la cantidad de filas, el período cubierto (si tiene fechas), una muestra de 5 filas y la fuente oficial.
Frescura: cuándo leyó OpenArg la tabla de su fuente por última vez, cuál es el último dato de la serie y, si la tabla es una foto del período en curso (el crédito presupuestario del ejercicio actual), su fecha de corte. Si la tabla tiene un solo período y es pasado (un ejercicio 2019), dice de cuándo son los datos; si no tiene columna de fecha, no la presenta como vigente: la fecha de lectura no es la de los datos, que suele decirla el título del dataset. Si el período sale de una muestra (tablas muy grandes), marca el último dato como aproximado; si la tabla tiene fechas pero no se pudo calcular qué período cubre, lo dice en vez de presentarla como vigente. Si hace más de 90 días que no se relee, lo avisa: el portal puede tener datos más nuevos.
obtener_datosTrae filas de una tabla, en CSV. No se escribe SQL: se eligen columnas, período y filtros.
| Parámetro | Tipo | Descripción |
|---|---|---|
tabla | texto | La tabla, como la devuelve buscar_datasets. |
columnas | lista, opcional | Nombres exactos de describir_tabla. Por defecto, todas (hasta 30). |
desde / hasta | texto, opcional | Período: AAAA, AAAA-MM o AAAA-MM-DD. |
filtros | objeto o lista, opcional | Hasta 5. Igualdad: {"provincia": "Córdoba"}. Con operador: [{"columna": "monto", "operador": "mayor_que", "valor": "1000000"}]. Operadores: =, !=, mayor_que, menor_que, >=, <=, contiene y en (con valores). La igualdad no distingue mayúsculas ni acentos. |
orden | texto, opcional | asc (por defecto: primero lo más viejo) o desc (primero lo más reciente), por fecha. |
limite | número, opcional | De 1 a 500 filas. Por defecto 100. |
offset | número, opcional | Filas a saltear, para la página siguiente (hasta 10.000). |
columna_fecha | texto, opcional | Otra columna de fecha para el período y el orden. |
Devuelve las filas en CSV y la fuente oficial con su link. Si hay más filas que las pedidas lo dice y da el offset de la página siguiente. Con columna de fecha, las filas salen en un orden estable: por fecha y, entre filas de la misma fecha, en el orden del archivo. Sin columna de fecha, el orden del archivo se garantiza sólo en tablas de hasta 50.000 filas; en las más grandes (o si no se sabe cuántas filas tienen) las filas salen en el orden en que se leen, que puede cambiar entre pedidos, y la respuesta lo avisa: para recorrerlas acotá con filtros. La paginación llega hasta offset 10.000. Si ninguna fila cumple los filtros, dice qué valores existen.
Para un total, un promedio o un ranking no traigas filas para sumarlas: usá agregar_datos.
agregar_datosCalcula en la base una suma, un promedio, un conteo, un mínimo o un máximo, opcionalmente agrupado: un total, un ranking o una serie, sin traer las filas ni el tope de 500.
| Parámetro | Tipo | Descripción |
|---|---|---|
tabla | texto | La tabla, como la devuelve buscar_datasets. |
operacion | texto | suma, promedio, conteo, minimo o maximo. |
columna | texto, opcional | La columna que se suma, promedia, etc. No va con conteo, que cuenta filas: si viene, el pedido se rechaza con un 400. Las columnas de texto con números se leen según su formato (1.234,5 o 1,234.5); si el formato es ambiguo, no calcula y lo dice. |
agrupar_por | lista, opcional | Hasta 3 columnas: ["jurisdiccion_desc"] da un ranking por jurisdicción. |
filtros, desde, hasta, columna_fecha | opcionales | Como en obtener_datos (hasta 6 filtros). |
ordenar_por | texto, opcional | valor (por defecto) o una columna de agrupar_por, por ejemplo el año para una serie. |
orden | texto, opcional | desc (por defecto: de mayor a menor) o asc. |
limite | número, opcional | Grupos a devolver, de 1 a 200. Por defecto 50. |
ponderar_por | texto, opcional | La columna de ponderación de una encuesta: con conteo da la población estimada, no la cantidad de filas de la muestra. |
Devuelve el resultado en CSV (un valor por grupo, con cuántas filas entraron en cada uno), sobre cuántas filas de la tabla se calculó en total, si hay más grupos que el limite y la fuente oficial. Si ninguna fila cumple los filtros no devuelve un cero: dice qué valores existen.
Cupo: cuenta como un pedido del modo datos, igual que obtener_datos.
consultar_datos_publicosResponde una pregunta sobre datos públicos oficiales de Argentina, con fuentes.
| Parámetro | Tipo | Descripción |
|---|---|---|
pregunta | texto | La pregunta en lenguaje natural, hasta 2.000 caracteres. Mejor en castellano y concreta. |
Devuelve un texto en Markdown con:
Cupo: cada respuesta descuenta 1 de las 10 preguntas del mes, aunque la respuesta sea que no encontró el dato. No descuentan los errores, las consultas que se cortan por tiempo, los saludos ni la misma pregunta repetida dentro de los 5 minutos (en ese caso te devuelve la misma respuesta sin volver a calcularla).
Tarda entre unos segundos y un minuto, según cuántas tablas tenga que cruzar.
listar_fuentesLista los portales de datos abiertos que cubre OpenArg y cuántos datasets tiene indexados cada uno. No lleva parámetros.
Cupo: cuenta como un pedido del modo datos.
Los errores vuelven como error de herramienta (isError: true) con un
mensaje en castellano que el asistente le puede mostrar al usuario.
La tabla está en Empezar.
Si se pasa el límite por minuto, el mensaje dice cuántos segundos faltan
(en la API HTTP, el header Retry-After). En el modo datos, cada
rechazo de una consulta tiene su mensaje: la consulta tardó demasiado, el
validador de seguridad la rechazó, la tabla está oculta por un problema de
calidad o pidió una columna que ya no existe. En la API HTTP el header
X-OpenArg-Error lo dice en una palabra (timeout,
validador, tabla_bloqueada, columna_inexistente,
tabla_inexistente, ejecucion).
La misma clave sirve para la API HTTP, con el mismo cupo:
curl https://api.openarg.org/api/v1/ask \
-H "Authorization: Bearer oarg_sk_TU_CLAVE" \
-H "Content-Type: application/json" \
-d '{"question": "tasa de desempleo del último trimestre"}'
Devuelve JSON con answer, sources, citations,
warnings, chart_data, map_data y usage.
Y el modo datos, en JSON:
curl -G https://api.openarg.org/api/v1/catalogo/buscar \
-H "Authorization: Bearer oarg_sk_TU_CLAVE" --data-urlencode "q=tasas de interés"
curl -G https://api.openarg.org/api/v1/catalogo/tabla \
-H "Authorization: Bearer oarg_sk_TU_CLAVE" --data-urlencode "nombre=TABLA"
curl https://api.openarg.org/api/v1/catalogo/datos \
-H "Authorization: Bearer oarg_sk_TU_CLAVE" -H "Content-Type: application/json" \
-d '{"tabla": "TABLA", "desde": "2026-01", "limite": 100}'
curl https://api.openarg.org/api/v1/catalogo/agregar \
-H "Authorization: Bearer oarg_sk_TU_CLAVE" -H "Content-Type: application/json" \
-d '{"tabla": "TABLA", "operacion": "suma", "columna": "monto", "agrupar_por": ["provincia"]}'
En el JSON, valor y las columnas numéricas son números (no texto), con la
precisión de un número de punto flotante.