rohitg00/ai-engineering-from-scratch · error · McpError
-32022
-32022
Error message
unsupported protocol version
What it means
Error "unsupported protocol version" thrown in rohitg00/ai-engineering-from-scratch.
Source
Thrown at phases/13-tools-and-protocols/11-mcp-sampling/code/main.py:86
def _server_meta() -> dict[str, Any]:
return {SERVER_INFO_META: {"name": "mrtr-demo", "version": "1.0.0"}}
def complete(**fields: Any) -> dict[str, Any]:
return {"resultType": "complete", **fields, "_meta": _server_meta()}
def validate_request_meta(params: dict[str, Any]) -> dict[str, Any]:
meta = params.get("_meta")
if not isinstance(meta, dict):
raise McpError(-32602, "missing request _meta")
requested_version = meta.get(PROTOCOL_META)
if not isinstance(requested_version, str):
raise McpError(-32602, "missing protocol version")
if requested_version != PROTOCOL_VERSION:
raise McpError(
-32022,
"unsupported protocol version",
{"supported": [PROTOCOL_VERSION], "requested": requested_version},
)
capabilities = meta.get(CAPABILITIES_META)
if not isinstance(capabilities, dict):
raise McpError(-32602, "missing client capabilities")
return meta
def server_discover(params: dict[str, Any]) -> dict[str, Any]:
validate_request_meta(params)
return complete(
supportedVersions=[PROTOCOL_VERSION],
capabilities={"tools": {}},
ttlMs=300_000,
cacheScope="public",
)View on GitHub (pinned to 39ea8a1c6d)
When it happens
Trigger: Thrown at phases/13-tools-and-protocols/11-mcp-sampling/code/main.py:86 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of rohitg00/ai-engineering-from-scratch@39ea8a1c6d (2026-08-26).
Data as JSON: /api/errors/f9152deebf0673d8.
Report an issue: GitHub.