Esquema de la herramienta MCP y contrato de resultados
tools/list devuelve el esquema actual de cada operación. Por ejemplo, el modo nativo describe wp_get_post como:
{
"tools": [
{
"name": "wp_get_post",
"description": "…",
"inputSchema": {
"type": "object",
"properties": {"id": {"type": "integer"}},
"required": ["id"]
}
}
]
}
La lista pública expone el nombre MCP, la descripción y el esquema de entrada. El modo nativo también proporciona indicaciones de solo lectura, destructivo e idempotencia. Son indicaciones descriptivas, nunca concesiones de permisos; el servidor aplica los ámbitos, las capacidades y las restricciones de escritura de forma independiente.
Llama a una herramienta con:
{
"method": "tools/call",
"params": {
"name": "wp_get_post",
"arguments": {
"id": 123
}
}
}
Los campos de entrada obligatorios se validan antes de la devolución de llamada. El transporte estándar normaliza las formas de cadena comunes de dry_run; el modo nativo requiere un booleano JSON.
En caso de éxito, el resultado JSON-RPC contiene content con un elemento de texto JSON y isError: false. El transporte estándar imprime ese JSON con un formato legible. El modo nativo también devuelve structuredContent con los mismos datos específicos de la herramienta; prefiere ese objeto cuando esté presente. No dependas de los espacios en blanco del JSON.
En el modo estándar, los errores de dominio son errores JSON-RPC. Los errores de ejecución de las herramientas nativas utilizan isError: true; los errores de protocolo siguen siendo errores JSON-RPC. No interpretes un mensaje de error como un resultado correcto de la herramienta.
La disponibilidad de las herramientas depende del entorno de ejecución. Utiliza los nombres exactos descubiertos y no des por sentados alias con nombres similares.
Vuelve a descubrir los esquemas de entrada y salida después de reconectarte. Un nombre de herramienta conocido por sí solo no establece compatibilidad con una implementación de conexión diferente. Si una conexión devuelve MCP structuredContent, lee ese objeto directamente; de lo contrario, descodifica el resultado de texto documentado. Comprueba isError antes de tratar cualquiera de las dos representaciones como datos correctos.
Guías relacionadas: contrato de errores, lectura frente a escritura y capítulos de referencia de herramientas.
Identidad del sitio nativo y validación
pom_get_site_context devuelve contract_version: 3, la versión de WordPress y un objeto site que contiene site_id, site_url y blog_id. Las llamadas a herramientas existentes no requieren un identificador nuevo. Aceptan opcionalmente site_id para confirmar que apuntan al sitio descubierto; una discrepancia se rechaza. El identificador no es una credencial, y la ejecución permanece siempre limitada al sitio de la conexión. Sigue el contrato de ejecución en segundo plano para recuperar los resultados de la operación.
El modo nativo valida los tipos de propiedad descritos y los argumentos obligatorios mediante la API de capacidades de WordPress. Los campos adicionales no descritos se siguen aceptando por compatibilidad; las devoluciones de llamada de las operaciones solo utilizan sus campos compatibles. Las herramientas por lotes conservan su validación de dominio y su comportamiento de resultados parciales. Inspecciona tanto los resultados anidados como el isError de nivel superior; un sobre de lote correcto no establece que cada fila se haya completado correctamente.
Los esquemas de salida no se imponen a las cargas útiles heredadas variables. La validación de salida no puede deshacer una mutación ya completada. Tras un tiempo de espera agotado o un resultado ambiguo, lee el destino antes de reintentar una escritura.