MCP Protocol Validator Skill
Descripción
Valida que endpoints MCP cumplan con especificación 2024-11-05 y JSON-RPC 2.0.
Cuándo Usar
- •Implementar nuevo endpoint MCP
- •Modificar handler existente
- •Depurar problemas de compatibilidad
- •Antes de release
Checklist de Validación
Request Validation
- •
jsonrpces "2.0" - •
methodestá presente - •
idestá presente (puede ser null) - •
paramscumple con schema del tool
Response Validation
- •
jsonrpces "2.0" - •
idcoincide con request - • Tiene
resultXORerror - • Error tiene
codeymessage
Tools Validation
- •
namees único - •
descriptiones clara - •
inputSchemaes JSON Schema válido - •
requiredfields están enproperties
Test Request Template
json
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "analyze",
"arguments": {
"path": "./src",
"pattern": "**/*.rs"
}
}
}
Test con curl
bash
curl -X POST http://localhost:4040/mcp \ -H "Content-Type: application/json" \ -d @test_request.json | jq
Errores Comunes
1. ID Mismatch
rust
// ❌ MAL: id diferente en response
JsonRpcResponse {
id: json!(999), // Debe ser el mismo del request
// ...
}
2. Result y Error Simultáneos
rust
// ❌ MAL: ambos presentes
JsonRpcResponse {
result: Some(json!({"ok": true})),
error: Some(json!({"code": -32603})), // Solo uno debe estar
// ...
}
3. Schema Inválido
json
// ❌ MAL: required no está en properties
{
"inputSchema": {
"properties": {
"path": {"type": "string"}
},
"required": ["path", "format"]
}
}
Comandos de Validación
bash
# Verificar que servidor responde curl -I http://localhost:4040/ # Test initialize ./scripts/test_mcp_initialize.sh # Test tools/list ./scripts/test_mcp_tools_list.sh # Test tools/call ./scripts/test_mcp_tools_call.sh
📚 Ver También
- •SKILLS.md - Documentación completa de Skills
- •AGENTS.md - Guía de Agents
- •Agent memory-p-mcp-expert - Implementación MCP
- •Documentación MCP - Referencia de herramientas
- •MCP Specification - Especificación oficial
Última actualización: Enero 2026 (Post-merge PR #4)
Compatibilidad: GitHub Copilot, Cursor, Windsurf, Claude Desktop