| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
The 2026-07-28 spec deprecates Logging and Roots (SEP-2577) and the client-to-server progress notification. Their lowlevel `Server.__init__` handler parameters - `on_set_logging_level`, `on_roots_list_changed`, and `on_progress` - are now split into a `typing_extensions.deprecated` overload, so type checkers and IDEs flag them, and the real constructor emits `MCPDeprecationWarning` at runtime when one is passed. The non-deprecated overload omits these parameters, keeping the common case warning-free.
There was a problem hiding this comment.
LGTM — mechanical deprecation following the established SEP-2577 pattern; no behavior change beyond the new warnings.
Extended reasoning...The PR deprecates three lowlevel Server.__init__ handler parameters (on_set_logging_level, on_roots_list_changed, on_progress) by splitting the constructor into a clean overload and a typing_extensions.deprecated overload, plus emitting MCPDeprecationWarning at runtime when any of the three is passed. The remaining files are documentation (docs/migration.md) and test/example call sites annotated with # pyright: ignore[reportDeprecated], with the stdio subprocess helper additionally guarding construction with warnings.catch_warnings().
None. The change adds overloads and warning emission only; no auth, crypto, transport, or input-handling logic is touched, and no runtime behavior changes for existing handlers — they are still registered exactly as before.
The diff is large in line count, but almost entirely duplicated constructor signatures required by the overload pattern. The substantive change is three warnings.warn calls. The runtime warning messages match the repository's existing filterwarnings ignores in pyproject.toml (.*is deprecated as of 2026-07-28 \(SEP-2577\). and Client-to-server progress is deprecated as of 2026-07-28.*), so the test suite's strict warning configuration is not tripped. No internal SDK code constructs Server with the deprecated parameters, so library consumers using MCPServer are unaffected.
This mirrors the deprecation approach already used throughout the SDK for SEP-2577 (same wording, same MCPDeprecationWarning category), the bug-hunting pass found no issues, and the author reports pyright/ruff/full-suite/coverage all passing. The risk profile is low enough that human review adds little here.
Sorry, something went wrong.
…26-07-28 line The 15-commit branch rebased onto latest main with four textual conflicts (extension.py + mcpserver/server.py, the everything-server, client/__init__.py, whats-new.md), all resolved to main's structure plus the branch's additions. This commit carries the semantic adaptations that the merge could not surface: - Gate task augmentation on the declared-capabilities fact, not clientInfo. Main made clientInfo optional on the 2026-07-28 wire (spec #3002) and split `session.client_capabilities` from `session.client_params`, so a conformant client can declare the extension while `client_params` is None. The interceptor's `_client_declared_tasks` now reads `client_capabilities`, matching main's rewritten `require_client_extension` (whose main body the relocated function carries). A pair-only declaring envelope is augmented. - Interceptors now run at the handler layer (`compose_tool_call_handler`), so `call_next` returns the wrapped handler's domain result rather than a serialized dict, and every modern-era result envelope carries the `serverInfo` `_meta` identity stamp. The stored/inlined tool result stays the un-enveloped payload. Reword `_wire_payload` and the error-fold comment accordingly, and have the tests assert-and-strip the envelope stamp through strict helpers mirroring tests/_stamp.py instead of hard-coding it into every snapshot. A short-circuited `input_required` interim is now sieved to the core shape like any handler result, so its fixture is core-shaped. - Declare `name_param = "taskId"` on GetTaskRequest/CancelTaskRequest/ UpdateTaskRequest: main added `Request.name_param` as the per-request key a client mirrors into the `Mcp-Name` header, built expressly for the tasks verbs (its placeholder test models `tasks/get`). The server-side NAME_BEARING_METHODS rows remain the source of the spec-mandated validation. - Follow main's spelling and toolchain moves: httpx -> httpx2 in the tasks server tests, `mcp.types` (not `mcp_types`) in docs/example imports with the matching `hl_lines` shift, and the GitHub form for SEP-2663 links. - Refresh prose that the merge left stale: the migration guide's "Detached work" note now points at the extension for the fetch-later half, and the tasks story's docstring states the fixed-contract invariant rather than claiming identity with a task-less server's stamped result.
| Back | FazBrowse Home | New Git URL |
The 2026-07-28 spec deprecates Logging and Roots (SEP-2577) and the client-to-server progress notification. This deprecates the corresponding lowlevel Server.__init__ handler parameters: on_set_logging_level (Logging), on_roots_list_changed (Roots), and on_progress (client-to-server progress).
What changed
100% coverage on the touched module; pyright, ruff, strict-no-cover, and the full suite pass.
AI Disclaimer
This PR was developed with the assistance of either Claude or Codex. I've reviewed and verified the changes.