diff --git a/packages/sdk-python/src/qwen_code_sdk/query.py b/packages/sdk-python/src/qwen_code_sdk/query.py index 9bef8578145..5faf8234640 100644 --- a/packages/sdk-python/src/qwen_code_sdk/query.py +++ b/packages/sdk-python/src/qwen_code_sdk/query.py @@ -110,6 +110,8 @@ async def _ensure_started(self) -> None: async def _initialize(self) -> None: try: payload: dict[str, Any] = {"hooks": None} + if self._options.mcp_servers: + payload["mcpServers"] = self._options.mcp_servers await self._send_control_request("initialize", payload) except Exception as exc: await self._finish_with_error(exc) diff --git a/packages/sdk-python/src/qwen_code_sdk/validation.py b/packages/sdk-python/src/qwen_code_sdk/validation.py index f19fe4cfba6..6094ddf02fc 100644 --- a/packages/sdk-python/src/qwen_code_sdk/validation.py +++ b/packages/sdk-python/src/qwen_code_sdk/validation.py @@ -64,12 +64,6 @@ def validate_query_options(options: QueryOptions) -> None: ): raise ValidationError("path_to_qwen_executable cannot be empty") - if options.mcp_servers: - raise ValidationError( - "mcp_servers is not supported in Python SDK v1. " - "Remove the mcp_servers option or use the TypeScript SDK." - ) - def _validate_optional_callable( value: object, diff --git a/packages/sdk-python/tests/unit/test_validation.py b/packages/sdk-python/tests/unit/test_validation.py index dd85ef2e9b0..43ce86c1883 100644 --- a/packages/sdk-python/tests/unit/test_validation.py +++ b/packages/sdk-python/tests/unit/test_validation.py @@ -167,8 +167,7 @@ def test_timeout_rejects_boolean_value() -> None: TimeoutOptions.from_mapping({"stream_close": True}) -def test_rejects_mcp_servers() -> None: - with pytest.raises(ValidationError, match="mcp_servers is not supported"): - validate_query_options( - QueryOptions(mcp_servers={"my-server": {"command": "node", "args": []}}) - ) +def test_accepts_mcp_servers() -> None: + validate_query_options( + QueryOptions(mcp_servers={"my-server": {"command": "node", "args": []}}) + )