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

InterfazPropósito
/api/index.jsonInstantánea completa del registro
/api/searchBúsqueda clasificada de productos
/askConsultas en lenguaje natural compatibles con NLWeb
/mcpModel Context Protocol sobre HTTP
/api/scorePuntuación gratuita de legibilidad para agentes de una URL pública
POST /api/auditAuditoría completa opcional con correcciones clasificadas; $0.05 USDC vía x402
/api/mcp/searchBuscar en el catálogo de servidores MCP
/api/x402/searchBuscar en el catálogo de endpoints x402
/badge.svgInsignia de nivel de listado o calificación de legibilidad
/llms.txtGuía concisa legible por máquina del proyecto y registro
/openapi.yamlDescripció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:

  1. listings/*.json, templates/ y site.config.json son la fuente de verdad.
  2. scripts/build.mjs valida las entradas y genera el HTML, JSON, manifiestos, fuentes y sitemap confirmados en el repositorio.
  3. worker/ sirve búsqueda dinámica, NLWeb, MCP, puntuación, enrutamiento, negociación de respuestas y estadísticas agregadas de solicitudes.
  4. GitHub Actions validan los issues de registro y actualización, reconstruyen el registro y despliegan los cambios aceptados.
  5. 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

RutaContenido
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.