You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Thank you for helping us keep the SDKs and systems they interact with secure.
3
+
Thank you for helping keep the Model Context Protocol and its ecosystem secure.
4
4
5
5
## Reporting Security Issues
6
6
7
-
This SDK is maintained by [Anthropic](https://www.anthropic.com/) as part of the Model Context Protocol project.
7
+
If you discover a security vulnerability in this repository, please report it through
8
+
the [GitHub Security Advisory process](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/privately-reporting-a-security-vulnerability)
9
+
for this repository.
8
10
9
-
The security of our systems and user data is Anthropic’s top priority. We appreciate the work of security researchers acting in good faith in identifying and reporting potential vulnerabilities.
11
+
Please **do not** report security vulnerabilities through public GitHub issues, discussions,
12
+
or pull requests.
10
13
11
-
Our security program is managed on HackerOne and we ask that any validated vulnerability in this functionality be reported through their [submission form](https://hackerone.com/anthropic-vdp/reports/new?type=team&report_type=vulnerability).
14
+
## What to Include
12
15
13
-
## Vulnerability Disclosure Program
16
+
To help us triage and respond quickly, please include:
14
17
15
-
Our Vulnerability Program Guidelines are defined on our [HackerOne program page](https://hackerone.com/anthropic-vdp).
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.
377
377
@@ -380,40 +380,59 @@ The `RequestContext` class has been split to separate shared fields from server-
380
380
- Type parameters reduced from `RequestContext[SessionT, LifespanContextT, RequestT]` to `RequestContext[SessionT]`
381
381
- Server-specific fields (`lifespan_context`, `experimental`, `request`, `close_sse_stream`, `close_standalone_sse_stream`) moved to new `ServerRequestContext` class in `mcp.server.context`
382
382
383
-
**`ProgressContext` changes:**
384
-
385
-
- Type parameters reduced from `ProgressContext[SendRequestT, SendNotificationT, SendResultT, ReceiveRequestT, ReceiveNotificationT]` to `ProgressContext[SessionT]`
386
-
387
383
**Before (v1):**
388
384
389
385
```python
390
386
from mcp.client.session import ClientSession
391
387
from mcp.shared.context import RequestContext, LifespanContextT, RequestT
### `ProgressContext` and `progress()` context manager removed
407
+
408
+
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.
409
+
410
+
**Before:**
411
+
412
+
```python
413
+
from mcp.shared.progress import progress
414
414
415
-
# ProgressContext with 1 type parameter
416
-
progress_ctx: ProgressContext[ClientSession]
415
+
with progress(ctx, total=100) as p:
416
+
await p.progress(25)
417
+
```
418
+
419
+
**After — use `Context.report_progress()` (recommended):**
420
+
421
+
```python
422
+
@server.tool()
423
+
asyncdefmy_tool(x: int, ctx: Context) -> str:
424
+
await ctx.report_progress(25, 100)
425
+
return"done"
426
+
```
427
+
428
+
**After — use `session.send_progress_notification()` (low-level):**
429
+
430
+
```python
431
+
await session.send_progress_notification(
432
+
progress_token=progress_token,
433
+
progress=25,
434
+
total=100,
435
+
)
417
436
```
418
437
419
438
### Resource URI type changed from `AnyUrl` to `str`
0 commit comments