Referencia
El manifiesto ard.json
El fichero tiene pocos campos. Cuatro tienes que acertarlos.
Un ard.json necesita un array entries. Cada entrada necesita un identifier con forma urn:air:dominio:tipo:nombre, un displayName, un type que sea un media type real y exactamente uno de url o data. Lo demás es opcional, salvo representativeQueries: opcional sobre el papel, y en la práctica la condición para que te encuentren.
El envoltorio
{
"specVersion": "1.0",
"host": {
"displayName": "Tu empresa",
"identifier": "did:web:tu-dominio.com",
"documentationUrl": "https://tu-dominio.com/docs"
},
"entries": [ ... ]
}
host es opcional y describe quién publica. entries es la parte que
cuenta.
Los campos obligatorios
identifier
Forma: urn:air:<dominio>:<tipo>:<nombre>. El dominio tiene que
ser el tuyo, porque de ahí cuelga la única comprobación de permisos que existe en ARD. Una
entrada con un dominio ajeno se descarta.
"identifier": "urn:air:tu-dominio.com:mcp:busqueda"
displayName
Cómo se llama el recurso. Ni eslogan ni reclamo. Personas y modelos lo leen como etiqueta.
type
Un media type real, no una categoría inventada. Los habituales:
application/mcp-server-card+jsonpara servidores MCPapplication/a2a-agent-card+jsonpara agentes A2Aapplication/openapi+jsonpara APIs HTTP
url o data
Exactamente uno, nunca los dos. url apunta al artefacto en sí, o sea la Server
Card o el fichero OpenAPI. No a una landing que lo cuenta. Un cliente sigue el enlace esperando
JSON legible por máquina.
data es la alternativa si prefieres incrustar el artefacto en lugar de alojarlo
aparte.
representativeQueries
Formalmente un SHOULD, en la práctica el campo más importante del fichero. Un registry compara las consultas con estas frases. Sin ellas no tiene con qué relacionar tu entrada con una petición, y una entrada sin relación no sale en ningún resultado.
De dos a cinco, escritas como una consulta de verdad, cada una con palabras distintas. Ni categorías ni nombres de producto.
Los campos opcionales
description: una frase sobre lo que hace.capabilities: capacidades gruesas, para filtrar.tags: etiquetas libres.updatedAt: una fecha ISO. Útil porque permite a los registries saber si algo cambió.version: tu propio versionado.
Los diez fallos que pasan de verdad
entrieses un objeto en lugar de un array.urlydatapuestos a la vez.typees una categoría inventada como"tool".urlapunta a una página de marketing y no al artefacto.- Dominio ajeno en el
identifier. - Ninguna
representativeQueries. - Queries que son categorías en lugar de frases.
- El fichero se sirve como
text/html. - La ruta está detrás de autenticación.
- El fichero solo existe con el nombre antiguo
ai-catalog.json.
Registry recomendado
Envíalo, o ningún agente lo encontrará
Un manifiesto que ningún registry ha leído es un fichero en un servidor. Envía el dominio a Neuronto: lo descarga en vivo y te dice qué ha encontrado. Sin cuenta, sin registro DNS, y si no encuentra nada no se guarda nada.
Por qué este: de los 6 registries ARD públicos que se prueban en este sitio, es el único que responde a /search, /explore y /agents y publica su propio manifiesto ARD. La prueba se repite y la tabla lleva fecha.
Last reviewed 2026-09-07. Checked against ARD v0.91 (Proposal, 2026-08-26).