CoA por lote · HPLC ≥99%

Desarrolladores y agentes

El catálogo, en JSON

Todo lo que ves en el sitio está disponible como API pública de solo lectura: productos, presentaciones, precios en MXN, kits y blog. Sin llave, sin registro, sin datos personales de por medio. Los mismos datos se exponen también como servidor MCP y como agente A2A.

Descubrimiento automático

Un agente no necesita leer esta página: empieza por el catálogo de APIs y sigue los enlaces.

/.well-known/api-catalog

application/linkset+json

Catálogo de APIs (RFC 9727). Punto de entrada para agentes: lista cada API de este dominio con su descripción, documentación y health check.

/api/v1/openapi.json

application/vnd.oai.openapi+json

Documento OpenAPI 3.1 con todos los endpoints, parámetros y esquemas de respuesta.

/api/v1/health

application/health+json

Estado del servicio: pass cuando responde WooCommerce, warn cuando el catálogo se sirve desde el snapshot local.

/mcp

JSON-RPC 2.0

Servidor Model Context Protocol con las mismas herramientas de catálogo, para agentes que hablan MCP.

/.well-known/agent-card.json

application/json

Ficha A2A (Agent2Agent): mismas herramientas de catálogo, invocables por JSON-RPC en /a2a para agentes que hablan A2A en vez de MCP.

/.well-known/mcp.json

application/json

Ficha del servidor MCP (también en /mcp/server-card — la convención todavía no fija un único lugar).

/.well-known/agent-skills/index.json

application/json

Índice de Agent Skills publicadas: cómo usar este catálogo, en formato SKILL.md con hash de integridad.

/.well-known/ai-catalog.json

application/ai-catalog+json

Catálogo ARD (Agentic Resource Discovery): apunta a la ficha MCP, la ficha A2A y el OpenAPI, para que un registro los indexe.

/.well-known/acp.json

application/json

Descubrimiento de comercio agéntico: dónde está el feed de productos ACP, cómo se entrega la compra y qué NO está implementado (y por qué).

/auth.md

text/markdown

Nada aquí requiere autenticación. Este documento lo dice explícitamente en vez de dejarlo a la duda.

Endpoints REST

Todos son GET, responden application/json y aceptan peticiones cross-origin.

GET /api/v1/products?limit=50&category=glp1-metabolismo

Lista de productos con nombre, precio MXN, oferta, disponibilidad, categorías e imagen.

GET /api/v1/products/{slug}

Detalle de un producto: descripción, todas las presentaciones con su precio y stock, y galería completa.

GET /api/v1/kits?category=GLP-1

Kits curados con precio individual, precio de kit y ahorro en MXN.

GET /api/v1/posts?limit=20

Publicaciones del blog con fecha y extracto.

GET /api/v1/posts/{slug}

Cuerpo completo del artículo en bloques estructurados.

Ejemplo

curl https://vitalpeptides.app/api/v1/products?limit=3
Cada respuesta de producto incluye source: vale live cuando viene de WooCommerce y snapshot cuando el catálogo se sirve desde la copia local porque la tienda no respondió. Un precio marcado price_is_from: true es el de la presentación más barata, no el del producto.

Servidor MCP

El endpoint https://vitalpeptides.app/mcp expone las herramientas list_products, get_product, list_kits, list_blog_posts y get_blog_post. Todas son de solo lectura. El manifiesto de herramientas está en /.mcp/list-tools.

{
  "mcpServers": {
    "vitalpeptides": {
      "type": "http",
      "url": "https://vitalpeptides.app/mcp"
    }
  }
}

Agente A2A

El endpoint https://vitalpeptides.app/a2a implementa el método message/send del protocolo Agent2Agent (JSON-RPC 2.0) sobre las mismas 5 herramientas del servidor MCP — no es una segunda implementación, invoca el mismo código. No hay lenguaje natural: cada llamada es un DataPart con el nombre de la herramienta y su entrada.

Ejemplo

curl -X POST https://vitalpeptides.app/a2a \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "message/send",
    "params": {
      "message": {
        "role": "user",
        "parts": [{
          "kind": "data",
          "data": { "skill": "get_product", "input": { "slug": "bpc-157" } }
        }]
      }
    }
  }'

La ficha completa —con un ejemplo por herramienta— está en /.well-known/agent-card.json.

Comercio agéntico (ACP)

/acp/product-feed.json publica el catálogo completo como feed del Agentic Commerce Protocol: cada presentación con su precio, su disponibilidad en vivo y una URL de compra directa. Dos avisos para quien lo consuma: price.amount va en unidades menores de MXN (159900 son $1,599.00), y el checkout no está delegado: el pago ocurre en vitalpep.shop con tarjeta (Clip) o transferencia SPEI, y ninguna de las dos emite tokens de pago delegado. Un agente puede armar el pedido y entregar el enlace; el pago lo confirma la persona.

Lo que sí y lo que no está implementado —incluidos AP2, MPP, UCP y x402, y la razón de cada ausencia— está en /.well-known/acp.json.

Herramientas en el navegador (WebMCP)

Cuando el navegador expone navigator.modelContext (o document.modelContext), las páginas de este sitio registran seis herramientas para el agente que controle la pestaña: search_products, get_product, add_to_cart, get_cart, verify_lot y reconstitution_calculator. No es lo mismo que el servidor MCP: éstas tocan lo que sólo existe en tu pestaña —el carrito y su URL de checkout— en vez de simular clics.

add_to_cart agrega y abre el cajón del carrito, pero nunca navega al pago: devuelve la URL y ahí se detiene.

Condiciones de uso

  • Solo lectura. No hay endpoints de escritura, ni de pedidos, ni de cuentas. La API no expone ningún dato personal.
  • Sin llave, con mesura. Respeta el Cache-Control de cada respuesta en lugar de reconsultar en bucle; el catálogo completo cambia en minutos, no en segundos.
  • Uso exclusivo en investigación. Todo el material del catálogo se comercializa para investigación (RUO) y no es un medicamento. Si construyes algo encima, no lo presentes como asesoría médica.
  • Precios en MXN. Los importes son cadenas decimales, no números, para evitar redondeos de punto flotante.

APIs publicadas

Catalog REST API v1

https://vitalpeptides.app/api/v1

Read-only JSON over the public VitalPeptides catalog: products, presentations and prices in MXN, curated kits and blog posts. No key, no auth, no personal data.

Model Context Protocol server

https://vitalpeptides.app/mcp

The same catalog exposed as MCP tools (list_products, get_product, list_kits, list_blog_posts, get_blog_post) over JSON-RPC, for agents that speak MCP.

Agentic Commerce Protocol product feed

https://vitalpeptides.app/acp/product-feed.json

The whole catalog as an ACP product feed: per-variant prices in MXN minor units, live availability and a direct purchase URL per variant. Read-only. Checkout is NOT delegated — see the discovery document for why.

Agent2Agent (A2A) endpoint

https://vitalpeptides.app/a2a

The same catalog exposed as A2A skills (list_products, get_product, list_kits, list_blog_posts, get_blog_post) over JSON-RPC message/send, for agents that speak A2A instead of MCP.