Skip to content

Commit c3b9a0b

Browse files
committed
fix: add ReceiveResultT into Base Session
1 parent 861d5e7 commit c3b9a0b

File tree

3 files changed

+7
-6
lines changed

3 files changed

+7
-6
lines changed

src/mcp/shared/context.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from mcp.shared.session import BaseSession
77
from mcp.types import RequestId, RequestParams
88

9-
SessionT = TypeVar("SessionT", bound=BaseSession[Any, Any, Any, Any, Any])
9+
SessionT = TypeVar("SessionT", bound=BaseSession[Any, Any, Any, Any, Any, Any])
1010
LifespanContextT = TypeVar("LifespanContextT")
1111
RequestT = TypeVar("RequestT", default=Any)
1212

src/mcp/shared/progress.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
SendNotificationT,
1414
SendRequestT,
1515
SendResultT,
16+
ReceiveResultT,
1617
)
1718
from mcp.types import ProgressToken
1819

@@ -23,8 +24,8 @@ class Progress(BaseModel):
2324

2425

2526
@dataclass
26-
class ProgressContext(Generic[SendRequestT, SendNotificationT, SendResultT, ReceiveRequestT, ReceiveNotificationT]):
27-
session: BaseSession[SendRequestT, SendNotificationT, SendResultT, ReceiveRequestT, ReceiveNotificationT]
27+
class ProgressContext(Generic[SendRequestT, SendNotificationT, SendResultT, ReceiveRequestT, ReceiveNotificationT, ReceiveResultT]):
28+
session: BaseSession[SendRequestT, SendNotificationT, SendResultT, ReceiveRequestT, ReceiveResultT, ReceiveNotificationT]
2829
progress_token: ProgressToken
2930
total: float | None
3031
current: float = field(default=0.0, init=False)
@@ -40,12 +41,12 @@ async def progress(self, amount: float, message: str | None = None) -> None:
4041
@contextmanager
4142
def progress(
4243
ctx: RequestContext[
43-
BaseSession[SendRequestT, SendNotificationT, SendResultT, ReceiveRequestT, ReceiveNotificationT],
44+
BaseSession[SendRequestT, SendNotificationT, SendResultT, ReceiveRequestT, ReceiveResultT, ReceiveNotificationT],
4445
LifespanContextT,
4546
],
4647
total: float | None = None,
4748
) -> Generator[
48-
ProgressContext[SendRequestT, SendNotificationT, SendResultT, ReceiveRequestT, ReceiveNotificationT],
49+
ProgressContext[SendRequestT, SendNotificationT, SendResultT, ReceiveRequestT, ReceiveNotificationT, ReceiveResultT],
4950
None,
5051
]:
5152
if ctx.meta is None or ctx.meta.progressToken is None:

tests/shared/test_progress_notifications.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ async def handle_client_message(
290290
# cast for type checker
291291
typed_context = cast(
292292
RequestContext[
293-
BaseSession[Any, Any, Any, Any, Any],
293+
BaseSession[Any, Any, Any, Any, Any, Any],
294294
Any,
295295
],
296296
request_context,

0 commit comments

Comments
 (0)