/wp-json/pom-ai-mcp/v1/mcp: Extremo de transporte MCP

El único extremo con el que habla cada cliente MCP. Transporta los mensajes JSON-RPC que conforman una sesión MCP.

https://example.com/wp-json/pom-ai-mcp/v1/mcp

Métodos

Método Propósito
POST Transporta mensajes JSON-RPC: la vía normal
GET Una sonda de disponibilidad que devuelve la versión del protocolo y el nombre del servidor
DELETE Finaliza una sesión
OPTIONS Comprobación previa de CORS, respondida con 204

Autenticación

Obligatoria en todos los métodos excepto OPTIONS. Envía o bien un token Bearer de OAuth o bien la cabecera de clave API, nunca ambos, ya que se rechaza por ambiguo.

Una solicitud sin autenticar devuelve 401. Cuando OAuth está activado, esa respuesta incluye una cabecera WWW-Authenticate que indica la URL de metadatos del recurso protegido, que es como un cliente inicia el descubrimiento. Consulta Cómo funciona el descubrimiento.

Versión del protocolo

El servidor admite 2025-06-18 y 2025-03-26, con la primera como valor predeterminado.

Un cliente indica su versión en la cabecera MCP-Protocol-Version. Omitirla acepta la versión predeterminada; enviar un valor no admitido se rechaza con un error JSON-RPC en lugar de rebajarlo silenciosamente.

Métodos JSON-RPC

El cuerpo de POST es un mensaje JSON-RPC 2.0, o una matriz de ellos para un lote. Métodos admitidos:

Método Hace
initialize Devuelve la versión del protocolo, el nombre del servidor y las capacidades
tools/list Enumera las herramientas con nombre, descripción y esquema de entrada
tools/call Ejecuta una herramienta
resources/list Enumera los recursos legibles
resources/read Lee un recurso por URI
prompts/list Enumera los avisos publicados
prompts/get Devuelve un aviso, con los argumentos aplicados

Cualquier otra cosa devuelve el error JSON-RPC -32601. Un cuerpo mal formado devuelve -32700, y un mensaje que no sea JSON-RPC 2.0 válido devuelve -32600.

Las notificaciones —mensajes cuyo método empieza por notifications/ y que no llevan ID— se aceptan y no producen respuesta, tal como exige el protocolo.

Procesamiento por lotes

Una matriz de mensajes se procesa en orden y las respuestas se devuelven como una matriz. Las notificaciones dentro de un lote no contribuyen con ninguna respuesta, de modo que un lote de cinco mensajes que incluya dos notificaciones devuelve tres resultados.

Resultados de las herramientas

Un tools/call correcto devuelve una matriz de contenido con un único elemento de texto cuyo texto es el resultado de la herramienta en JSON con formato legible. Un asistente que informe de un bloque de JSON se comporta con normalidad.

Los errores llegan como error JSON-RPC -32000 con el mensaje y un code que indica el fallo concreto: pom_ai_mcp_scope_denied, pom_ai_mcp_forbidden, pom_ai_mcp_write_gate_closed, etc. Esos códigos son los que hay que citar al diagnosticar.

Limitación de frecuencia

Se comprueba por mensaje. Las lecturas usan el límite por minuto configurado; tools/call en una herramienta de escritura usa el tope de escritura, más bajo. Superarlo devuelve el error JSON-RPC -32029. Consulta Límites de frecuencia.

Caché y CORS

Toda respuesta incluye Cache-Control: no-store y Pragma: no-cache. Si una CDN o un proxy almacena en caché esta ruta, las sesiones se rompen de formas confusas: exclúyela.

Las solicitudes entre orígenes solo se responden cuando el Origin está en tu lista de permitidos, que está vacía de forma predeterminada. Las solicitudes sin cabecera Origin, algo normal en un cliente del lado del servidor, no se ven afectadas. Consulta Solicitudes entre orígenes.

Qué no hace

  • Sin transmisión en tiempo real ni eventos enviados por el servidor; cada solicitud devuelve una respuesta completa.
  • Sin trabajos en segundo plano ni informes de progreso.
  • Sin estado de sesión más allá de lo que exige el protocolo: DELETE simplemente confirma.

Comprobarlo a mano

Un GET con credenciales válidas devuelve una pequeña carga de disponibilidad. Eso confirma la autenticación y la negociación del protocolo sin invocar ninguna herramienta, lo que lo convierte en la primera comprobación más limpia cuando un cliente no se conecta.

Si devuelve HTML, algo más arriba está interceptando la ruta. Si devuelve 401 con credenciales adjuntas, probablemente se está eliminando la cabecera Authorization; el panel de ajustes de MCP lo informa explícitamente en sus diagnósticos.