{"record":{"id":"e0300b33a59ae481","repo":"microsoft/autogen","slug":"unsupported-server-params-type-type-server-param","errorCode":null,"errorMessage":"Unsupported server params type: {type(server_params)}","messagePattern":"Unsupported server params type: (.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/packages/autogen-ext/src/autogen_ext/tools/mcp/_factory.py","lineNumber":214,"sourceCode":"    \"\"\"\n    if session is None:\n        async with create_mcp_server_session(server_params) as temp_session:\n            await temp_session.initialize()\n\n            tools = await temp_session.list_tools()\n    else:\n        tools = await session.list_tools()\n\n    if isinstance(server_params, StdioServerParams):\n        return [StdioMcpToolAdapter(server_params=server_params, tool=tool, session=session) for tool in tools.tools]\n    elif isinstance(server_params, SseServerParams):\n        return [SseMcpToolAdapter(server_params=server_params, tool=tool, session=session) for tool in tools.tools]\n    elif isinstance(server_params, StreamableHttpServerParams):\n        return [\n            StreamableHttpMcpToolAdapter(server_params=server_params, tool=tool, session=session)\n            for tool in tools.tools\n        ]\n    raise ValueError(f\"Unsupported server params type: {type(server_params)}\")\n","sourceCodeStart":196,"sourceCodeEnd":215,"githubUrl":"https://github.com/microsoft/autogen/blob/027ecf0a379bcc1d09956d46d12d44a3ad9cee14/python/packages/autogen-ext/src/autogen_ext/tools/mcp/_factory.py#L196-L215","documentation":"The MCP tool factory builds adapters by isinstance-dispatch on the server params: StdioServerParams, SseServerParams, or StreamableHttpServerParams. Any other type — including duck-typed lookalikes, protocol re-exports from different package versions, or None — falls through to ValueError(f'Unsupported server params type: {type(server_params)}').","triggerScenarios":"Passing an object that is not one of the three supported param classes: a mcp-types class imported from a different (incompatible) mcp package version so isinstance fails; a custom dataclass mimicking the shape; forgetting to construct params and passing the class itself or None.","commonSituations":"Two copies of the mcp package installed (plugin vs app) so the class identities differ; upgrading mcp to a version whose StdioServerParams moved modules while autogen-ext pins the old one; passing SseParams from a vendored SDK.","solutions":["Construct params using the classes autogen-ext itself re-exports (e.g. from autogen_ext.tools.mcp import StdioServerParams).","Print type(server_params) and its module path; if it is not from the expected mcp package, fix the import to use the same distribution autogen-ext depends on.","Resolve dependency conflicts: pip check / uv pip list, ensure a single mcp version, reinstall autogen-ext[mcp].","Do not pass None or raw dicts — build one of the three supported param objects."],"exampleFix":"# before\nfrom some_old_sdk import StdioServerParams  # different class identity\n\nparams = StdioServerParams(command=\"npx\", args=[\"-y\", \"server\"])\ntools = await make_tools(params)  # ValueError: Unsupported server params type\n\n# after\nfrom autogen_ext.tools.mcp import StdioServerParams\n\nparams = StdioServerParams(command=\"npx\", args=[\"-y\", \"@modelcontextprotocol/server\"])\ntools = await make_tools(params)","handlingStrategy":"type-guard","validationCode":"from autogen_ext.tools.mcp import StdioServerParams, SseServerParams, StreamableHttpServerParams\n\nif not isinstance(server_params, (StdioServerParams, SseServerParams, StreamableHttpServerParams)):\n    raise TypeError(f\"unsupported params {type(server_params)!r}; use autogen_ext.tools.mcp param classes\")","typeGuard":"from autogen_ext.tools.mcp import StdioServerParams, SseServerParams, StreamableHttpServerParams\nfrom typing import Any, TypeGuard, Union\n\nSupportedParams = Union[StdioServerParams, SseServerParams, StreamableHttpServerParams]\n\ndef is_supported_server_params(p: Any) -> TypeGuard[SupportedParams]:\n    return isinstance(p, (StdioServerParams, SseServerParams, StreamableHttpServerParams))","tryCatchPattern":"try:\n    tools = await make_tools(server_params)\nexcept ValueError as e:\n    if \"Unsupported server params type\" in str(e):\n        raise TypeError(\"Import param classes from autogen_ext.tools.mcp\") from e\n    raise","preventionTips":["Import server param classes only from autogen_ext.tools.mcp, never from a secondary mcp install.","Run `pip check` / dedupe the mcp distribution in CI to prevent class-identity splits.","Pin autogen-ext and mcp versions together in the lockfile."],"tags":["mcp","type-dispatch","dependency-conflict","version-skew"],"backgroundTag":null,"analyzedSha":"027ecf0a379bcc1d09956d46d12d44a3ad9cee14","analyzedAt":"2026-08-15T03:38:00.719Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}