{"record":{"id":"f9152deebf0673d8","repo":"rohitg00/ai-engineering-from-scratch","slug":"32022-f9152d","errorCode":"-32022","errorMessage":"unsupported protocol version","messagePattern":"unsupported protocol version","errorType":"exception","errorClass":"McpError","httpStatus":null,"severity":"error","filePath":"phases/13-tools-and-protocols/11-mcp-sampling/code/main.py","lineNumber":86,"sourceCode":"\n\ndef _server_meta() -> dict[str, Any]:\n    return {SERVER_INFO_META: {\"name\": \"mrtr-demo\", \"version\": \"1.0.0\"}}\n\n\ndef complete(**fields: Any) -> dict[str, Any]:\n    return {\"resultType\": \"complete\", **fields, \"_meta\": _server_meta()}\n\n\ndef validate_request_meta(params: dict[str, Any]) -> dict[str, Any]:\n    meta = params.get(\"_meta\")\n    if not isinstance(meta, dict):\n        raise McpError(-32602, \"missing request _meta\")\n    requested_version = meta.get(PROTOCOL_META)\n    if not isinstance(requested_version, str):\n        raise McpError(-32602, \"missing protocol version\")\n    if requested_version != PROTOCOL_VERSION:\n        raise McpError(\n            -32022,\n            \"unsupported protocol version\",\n            {\"supported\": [PROTOCOL_VERSION], \"requested\": requested_version},\n        )\n    capabilities = meta.get(CAPABILITIES_META)\n    if not isinstance(capabilities, dict):\n        raise McpError(-32602, \"missing client capabilities\")\n    return meta\n\n\ndef server_discover(params: dict[str, Any]) -> dict[str, Any]:\n    validate_request_meta(params)\n    return complete(\n        supportedVersions=[PROTOCOL_VERSION],\n        capabilities={\"tools\": {}},\n        ttlMs=300_000,\n        cacheScope=\"public\",\n    )","sourceCodeStart":68,"sourceCodeEnd":104,"githubUrl":"https://github.com/rohitg00/ai-engineering-from-scratch/blob/39ea8a1c6d0b61f071226eff7ede4d4105fed820/phases/13-tools-and-protocols/11-mcp-sampling/code/main.py#L68-L104","documentation":"Error \"unsupported protocol version\" thrown in rohitg00/ai-engineering-from-scratch.","triggerScenarios":"Thrown at phases/13-tools-and-protocols/11-mcp-sampling/code/main.py:86 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"39ea8a1c6d0b61f071226eff7ede4d4105fed820","analyzedAt":"2026-08-26T03:13:46.626Z","schemaVersion":2},"datasetVersion":"2026-08-26T07:17:17.940Z"}