Skip to content

Commit 71a9418

Browse files
committed
add message type
1 parent 321498a commit 71a9418

File tree

5 files changed

+25
-5
lines changed

5 files changed

+25
-5
lines changed

src/mcp/client/session.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,11 @@ async def send_ping(self) -> types.EmptyResult:
163163
)
164164

165165
async def send_progress_notification(
166-
self, progress_token: str | int, progress: float, total: float | None = None
166+
self,
167+
progress_token: str | int,
168+
progress: float,
169+
total: float | None = None,
170+
message: str | None = None,
167171
) -> None:
168172
"""Send a progress notification."""
169173
await self.send_notification(
@@ -174,6 +178,7 @@ async def send_progress_notification(
174178
progressToken=progress_token,
175179
progress=progress,
176180
total=total,
181+
message=message,
177182
),
178183
),
179184
)

src/mcp/server/session.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,11 @@ async def send_ping(self) -> types.EmptyResult:
261261
)
262262

263263
async def send_progress_notification(
264-
self, progress_token: str | int, progress: float, total: float | None = None
264+
self,
265+
progress_token: str | int,
266+
progress: float,
267+
total: float | None = None,
268+
message: str | None = None,
265269
) -> None:
266270
"""Send a progress notification."""
267271
await self.send_notification(
@@ -272,6 +276,7 @@ async def send_progress_notification(
272276
progressToken=progress_token,
273277
progress=progress,
274278
total=total,
279+
message=message,
275280
),
276281
)
277282
)

src/mcp/shared/progress.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,13 @@ class ProgressContext(
4242
progress_token: ProgressToken
4343
total: float | None
4444
current: float = field(default=0.0, init=False)
45+
message: str | None
4546

4647
async def progress(self, amount: float) -> None:
4748
self.current += amount
4849

4950
await self.session.send_progress_notification(
50-
self.progress_token, self.current, total=self.total
51+
self.progress_token, self.current, total=self.total, message=self.message
5152
)
5253

5354

@@ -77,7 +78,7 @@ def progress(
7778
if ctx.meta is None or ctx.meta.progressToken is None:
7879
raise ValueError("No progress token provided")
7980

80-
progress_ctx = ProgressContext(ctx.session, ctx.meta.progressToken, total)
81+
progress_ctx = ProgressContext(ctx.session, ctx.meta.progressToken, total, None)
8182
try:
8283
yield progress_ctx
8384
finally:

src/mcp/shared/session.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,11 @@ async def _received_notification(self, notification: ReceiveNotificationT) -> No
377377
"""
378378

379379
async def send_progress_notification(
380-
self, progress_token: str | int, progress: float, total: float | None = None
380+
self,
381+
progress_token: str | int,
382+
progress: float,
383+
total: float | None = None,
384+
message: str | None = None,
381385
) -> None:
382386
"""
383387
Sends a progress notification for a request that is currently being

src/mcp/types.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,11 @@ class ProgressNotificationParams(NotificationParams):
337337
total is unknown.
338338
"""
339339
total: float | None = None
340+
"""
341+
Message related to progress. This should provide relevant human readble
342+
progress information.
343+
"""
344+
message: str | None = None
340345
"""Total number of items to process (or total progress required), if known."""
341346
model_config = ConfigDict(extra="allow")
342347

0 commit comments

Comments
 (0)