AI Product Index
Un directorio legible por máquinas ("SEO para IAs") donde los productos de IA se registran para que los agentes de IA puedan descubrirlos.
Documentación
Índice de Productos de IA
Un registro abierto y una API de descubrimiento para productos de IA, herramientas de agentes y servicios MCP.
Índice en vivo · Registro JSON · Documento OpenAPI · Tarjeta de servidor MCP
AI Product Index publica cada listado aceptado como HTML estructurado y JSON, y luego pone el registro a disposición a través de búsqueda, NLWeb, MCP, fuentes, sitemaps y llms.txt. Los productos pueden registrarse mediante un flujo validado de issues de GitHub; los cambios aceptados se reconstruyen, se confirman y se despliegan automáticamente.
Interpretación del descubrimiento y las puntuaciones
El navegador MCP expone filtros de autenticación y transporte; el navegador x402 filtra los precios publicados equivalentes en USD. Las tarjetas de resultados muestran sondeos fallidos con fecha, estado de salud desconocido y orientación sobre conexión. Que no haya credenciales no significa que sea gratuito, y una respuesta HTTP no demuestra autenticación exitosa ni ejecución de herramientas.
La puntuación mide la cobertura de la lista de verificación técnica, no la visibilidad en IA ni las referencias. Los resultados separan la información del sitio de las interfaces de servicio opcionales y enlazan a los remedios gratuitos. Las puntuaciones numéricas, los pesos de las verificaciones y los umbrales A–F no cambian; solo han cambiado las descripciones de cobertura y la orientación sobre aplicabilidad.
Qué ofrece
- Un registro público y legible por máquina con una página canónica y un documento JSON por producto.
- Búsqueda clasificada por nombres, descripciones, etiquetas, categorías y modelos de precios.
- Consultas en lenguaje natural a través de un endpoint compatible con NLWeb.
- Un servidor MCP remoto para descubrimiento de productos, puntuación de URL, búsqueda en el catálogo y orientación de registro.
- Una puntuación gratuita de legibilidad para agentes que cubre
llms.txt, datos estructurados, política de rastreadores, manifiestos de descubrimiento, negociación de contenido, URL canónicas y HTTPS. - Instantáneas del catálogo de servidores MCP y endpoints x402 con datos de disponibilidad muestreados.
- Compilaciones estáticas deterministas, validación automatizada y verificaciones semanales de salud de los listados.
Pruébalo
Lee el registro:
curl https://index.percall.dev/api/index.json
Busca un producto:
curl 'https://index.percall.dev/api/search?q=document+automation&limit=5'
Haz una pregunta en lenguaje natural:
curl https://index.percall.dev/ask \
-H 'content-type: application/json' \
-d '{"query":{"text":"Which products provide an MCP server?"}}'
Califica una URL pública por legibilidad para agentes:
curl 'https://index.percall.dev/api/score?url=https%3A%2F%2Fexample.com'
Lista las herramientas MCP:
curl https://index.percall.dev/mcp \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Cualquier cliente MCP que admita Streamable HTTP puede conectarse directamente a:
https://index.percall.dev/mcp
Registrar un producto
El registro utiliza issues de GitHub y no requiere una cuenta en el índice. Abre un issue de registro que contenga JSON conforme al esquema publicado:
{
"slug": "example-product",
"name": "Example Product",
"url": "https://example.com",
"description": "A concise description of what the product does.",
"category": "api",
"pricing": "free",
"tags": ["automation", "documents"]
}
El flujo de trabajo valida el esquema, verifica que no haya slugs ni URL duplicados, confirma que la URL del producto responde y publica el listado. El remitente original puede usar posteriormente el flujo de actualización para reemplazarlo.
Un listado aceptado recibe:
- una página HTML rastreable con schema.org JSON-LD;
- un documento JSON individual y su inclusión en el registro completo;
- inclusión en
llms.txt,llms-full.txt, fuentes y el sitemap; - un endpoint de insignia estable para READMEs y documentación.
El protocolo completo de registro orientado a máquinas está disponible en llms.txt.
Interfaces públicas
| Interfaz | Propósito |
|---|---|
/api/index.json | Instantánea completa del registro |
/api/search | Búsqueda clasificada de productos |
/ask | Consultas en lenguaje natural compatibles con NLWeb |
/mcp | Model Context Protocol sobre HTTP |
/api/score | Puntuación gratuita de legibilidad para agentes de una URL pública |
POST /api/audit | Auditoría completa opcional con correcciones clasificadas; $0.05 USDC vía x402 |
/api/mcp/search | Buscar en el catálogo de servidores MCP |
/api/x402/search | Buscar en el catálogo de endpoints x402 |
/badge.svg | Insignia de nivel de listado o calificación de legibilidad |
/llms.txt | Guía concisa legible por máquina del proyecto y registro |
/openapi.yaml | Descripción completa de la API HTTP |
Consulta el documento OpenAPI para los esquemas de solicitud y respuesta. Los detalles de implementación y protocolo están en ARCHITECTURE.md.
Desde el 2026-09-05, la auditoría es el único endpoint de API HTTP de pago.
/api/check, /api/liveness, /api/route y /api/watch devuelven
410 endpoint_retired sin aceptar pagos. Los nuevos seguimientos y recargas
están cerrados; los barridos semanales prepagados existentes continúan hasta que se agoten los créditos.
El registro gratuito, la puntuación, la búsqueda y los catálogos siguen disponibles.
Cómo funciona
El proyecto combina una compilación estática determinista con un pequeño Cloudflare Worker:
listings/*.json,templates/ysite.config.jsonson la fuente de verdad.scripts/build.mjsvalida las entradas y genera el HTML, JSON, manifiestos, fuentes y sitemap confirmados en el repositorio.worker/sirve búsqueda dinámica, NLWeb, MCP, puntuación, enrutamiento, negociación de respuestas y estadísticas agregadas de solicitudes.- GitHub Actions validan los issues de registro y actualización, reconstruyen el registro y despliegan los cambios aceptados.
- Un flujo de trabajo semanal verifica la salud de los listados, actualiza las puntuaciones de legibilidad y muestrea los catálogos externos.
El runtime no tiene dependencias de paquetes. Los módulos del Worker están escritos para que la mayoría del comportamiento pueda probarse con Node estándar.
Estructura del repositorio
| Ruta | Contenido |
|---|---|
listings/ | Un archivo JSON fuente por producto registrado |
templates/ | Plantillas para páginas generadas y documentos legibles por máquina |
worker/ | Rutas del Cloudflare Worker y manejadores de protocolo |
scripts/ | Scripts de compilación, validación, salud, catálogo y administración |
mcp/ | Adaptador MCP stdio local opcional |
api/ | Artefactos generados del registro y catálogo |
.well-known/ | Manifiestos de agente, MCP, seguridad y descubrimiento |
Desarrollo local
Se recomienda Node.js 22 o superior.
node --test scripts/*.test.mjs
node scripts/build.mjs
npx wrangler dev
Usa scripts/*.test.mjs, no node --test scripts/; Node trata un argumento de directorio simple como una ruta de módulo.
Para simular el registro sin abrir un issue de GitHub:
ISSUE_BODY='{"slug":"example-product","name":"Example Product","url":"https://example.com","description":"What it does.","category":"api","pricing":"free"}' \
ISSUE_USER=you SKIP_LIVENESS=1 node scripts/process-issue.mjs
Los activos generados son deterministas y se confirman. Después de cambiar listados, plantillas o lógica de compilación, ejecuta la compilación dos veces y confirma que la segunda ejecución no produzca diferencias.
Despliegue
Los envíos a main ejecutan la suite de pruebas, verifican que los archivos generados estén actualizados y despliegan el Worker a través de GitHub Actions. Consulta DEPLOY.md para la configuración del entorno, enlaces de Cloudflare, credenciales, verificaciones operativas y procedimientos de recuperación.
Documentación
- ARCHITECTURE.md — componentes, flujo de datos, límites de seguridad y diseño de protocolo.
- DEPLOY.md — manual de despliegue y operaciones.
- NEXT.md — cola actual del proyecto.
- TODO.md — trabajo completado e historial de decisiones.