La chuleta MCP 2026-07-28 reúne en tres o cuatro páginas imprimibles lo que consultas a diario cuando construyes un servidor MCP: los campos obligatorios de cada petición, los métodos, los códigos de error, las cabeceras HTTP, MRTR y elicitation, la autorización, lo deprecado y los puntos de entrada de los SDK oficiales. Todo sale de la especificación 2026-07-28 y de los SDK de TypeScript y Python verificados para el curso. Abajo tienes la sección de errores completa como muestra.
Contenido
- Qué cambió en 2026-07-28
- Anatomía de una petición y de un resultado
- Métodos por primitiva
- Errores
- Transportes
- Interacción con el usuario
- Autorización
- Deprecado y su sustituto
- SDK oficiales
4. Errores
| Código | Nombre | Cuándo | HTTP |
|---|---|---|---|
-32700 |
Parse error | JSON ilegible | |
-32600 |
Invalid Request | No es una petición JSON-RPC válida | |
-32601 |
Method not found | Método desconocido o protegido por una capacidad no anunciada | 404 |
-32602 |
Invalid params | Falta un campo de _meta; tool desconocida; recurso inexistente; prompt inválido o sin argumentos obligatorios; cursor inválido |
400 si falta _meta |
-32603 |
Internal error | Fallo interno del servidor | |
-32020 |
HeaderMismatch |
Cabecera HTTP que no coincide con el cuerpo, falta o tiene caracteres inválidos | 400 |
-32021 |
MissingRequiredClientCapability |
La petición necesita una capacidad que el cliente no declaró; data.requiredCapabilities |
400 |
-32022 |
UnsupportedProtocolVersion |
Versión no soportada; data.supported y data.requested obligatorios |
400 |
Rangos:
-32000a-32019: legacy. No asignes códigos nuevos ahí.-32020a-32099: reservado para MCP. No emitas códigos que la spec no defina.- Tus códigos de aplicación: fuera de
-32768a-32000. - Retirados, MUST NOT emitirse:
-32002(recurso no encontrado, hoy-32602; los clientes SHOULD seguir aceptándolo) y-32042(URL elicitation required). - Material basado en la release candidate trae
-32001/-32003/-32004: hoy son-32020/-32021/-32022.
Error de protocolo o isError: true
| Situación | Respuesta | El cliente |
|---|---|---|
| Tool desconocida, petición malformada, fallo del servidor | Error JSON-RPC (error.code) |
MAY pasarlo al modelo |
| Fallo de una API externa, validación de entrada, regla de negocio | result con content explicativo e isError: true |
SHOULD pasarlo al modelo para que se corrija |
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32022,
"message": "Unsupported protocol version",
"data": {
"supported": ["2026-07-28", "2025-11-25"],
"requested": "1900-01-01"
}
}
}
resources/readde un recurso inexistente:-32602, nuncacontentsvacío.- Handle de estado caducado (p. ej. un
*_idemitido por otra tool): error de ejecución claro, conisError: true.