Use when
- Client and server MCP capabilities must be compared before connection.
- A missing required capability or protocol-date mismatch needs explanation.
Compares bounded client and server initialize capabilities, protocol versions, and caller-required features. It performs a local negotiation diff and does not connect to either peer.
{
"input": {
"client": {
"protocol_version": "2025-11-25",
"capabilities": [
"tools",
"elicitation.form"
]
},
"server": {
"protocol_version": "2025-11-25",
"capabilities": [
"tools",
"tasks"
]
},
"required_capabilities": [
"tools"
]
},
"output": {
"compatible": true,
"protocol_version_match": true,
"effective_capabilities": [
"tools"
],
"client_only_capabilities": [
"elicitation.form"
],
"server_only_capabilities": [
"tasks"
],
"missing_required_on_client": [],
"missing_required_on_server": []
},
"negative": [
{
"scenario": "The peers must actually be connected or their initialize exchange captured.",
"expected_error": "INVALID_INPUT",
"charged": false
}
]
}| Code | Retry | Charged | Recovery |
|---|---|---|---|
| INVALID_INPUT | false | false | Correct the request to match input_schema. |
| TOOL_PAUSED | true | false | Wait for the operator to resume the tool. |
| RATE_LIMITED | true | false | Retry after the response Retry-After interval. |
| DEPENDENCY_UNAVAILABLE | true | false | Retry with the same idempotency identity. |
The HTTP, OpenAPI, MCP, llms.txt, and ARD descriptions are generated from this same registry record.