refactor: remove unused mcp.shared.progress module (#2080)
This commit is contained in:
parent
fc57c2c4c5
commit
e82203bfc4
1 changed files with 32 additions and 171 deletions
|
|
@ -371,7 +371,7 @@ async def handle_call_tool(ctx: ServerRequestContext, params: CallToolRequestPar
|
|||
server = Server("my-server", on_call_tool=handle_call_tool)
|
||||
```
|
||||
|
||||
### `RequestContext` and `ProgressContext` type parameters simplified
|
||||
### `RequestContext` type parameters simplified
|
||||
|
||||
The `RequestContext` class has been split to separate shared fields from server-specific fields. The shared `RequestContext` now only takes 1 type parameter (the session type) instead of 3.
|
||||
|
||||
|
|
@ -380,40 +380,59 @@ The `RequestContext` class has been split to separate shared fields from server-
|
|||
- Type parameters reduced from `RequestContext[SessionT, LifespanContextT, RequestT]` to `RequestContext[SessionT]`
|
||||
- Server-specific fields (`lifespan_context`, `experimental`, `request`, `close_sse_stream`, `close_standalone_sse_stream`) moved to new `ServerRequestContext` class in `mcp.server.context`
|
||||
|
||||
**`ProgressContext` changes:**
|
||||
|
||||
- Type parameters reduced from `ProgressContext[SendRequestT, SendNotificationT, SendResultT, ReceiveRequestT, ReceiveNotificationT]` to `ProgressContext[SessionT]`
|
||||
|
||||
**Before (v1):**
|
||||
|
||||
```python
|
||||
from mcp.client.session import ClientSession
|
||||
from mcp.shared.context import RequestContext, LifespanContextT, RequestT
|
||||
from mcp.shared.progress import ProgressContext
|
||||
|
||||
# RequestContext with 3 type parameters
|
||||
ctx: RequestContext[ClientSession, LifespanContextT, RequestT]
|
||||
|
||||
# ProgressContext with 5 type parameters
|
||||
progress_ctx: ProgressContext[SendRequestT, SendNotificationT, SendResultT, ReceiveRequestT, ReceiveNotificationT]
|
||||
```
|
||||
|
||||
**After (v2):**
|
||||
|
||||
```python
|
||||
from mcp.client.context import ClientRequestContext
|
||||
from mcp.client.session import ClientSession
|
||||
from mcp.server.context import ServerRequestContext, LifespanContextT, RequestT
|
||||
from mcp.shared.progress import ProgressContext
|
||||
|
||||
# For client-side context (sampling, elicitation, list_roots callbacks)
|
||||
ctx: ClientRequestContext
|
||||
|
||||
# For server-specific context with lifespan and request types
|
||||
server_ctx: ServerRequestContext[LifespanContextT, RequestT]
|
||||
```
|
||||
|
||||
# ProgressContext with 1 type parameter
|
||||
progress_ctx: ProgressContext[ClientSession]
|
||||
### `ProgressContext` and `progress()` context manager removed
|
||||
|
||||
The `mcp.shared.progress` module (`ProgressContext`, `Progress`, and the `progress()` context manager) has been removed. This module had no real-world adoption — all users send progress notifications via `Context.report_progress()` or `session.send_progress_notification()` directly.
|
||||
|
||||
**Before:**
|
||||
|
||||
```python
|
||||
from mcp.shared.progress import progress
|
||||
|
||||
with progress(ctx, total=100) as p:
|
||||
await p.progress(25)
|
||||
```
|
||||
|
||||
**After — use `Context.report_progress()` (recommended):**
|
||||
|
||||
```python
|
||||
@server.tool()
|
||||
async def my_tool(x: int, ctx: Context) -> str:
|
||||
await ctx.report_progress(25, 100)
|
||||
return "done"
|
||||
```
|
||||
|
||||
**After — use `session.send_progress_notification()` (low-level):**
|
||||
|
||||
```python
|
||||
await session.send_progress_notification(
|
||||
progress_token=progress_token,
|
||||
progress=25,
|
||||
total=100,
|
||||
)
|
||||
```
|
||||
|
||||
### Resource URI type changed from `AnyUrl` to `str`
|
||||
|
|
|
|||
Loading…
Reference in a new issue