@@ -46,6 +46,7 @@ async def handle_list_prompts(ctx: RequestContext, params) -> ListPromptsResult:
4646from mcp .shared .message import ServerMessageMetadata , SessionMessage
4747from mcp .shared .session import (
4848 BaseSession ,
49+ ProgressFnT ,
4950 RequestResponder ,
5051)
5152from mcp .shared .version import SUPPORTED_PROTOCOL_VERSIONS
@@ -245,6 +246,7 @@ async def create_message(
245246 tools : None = None ,
246247 tool_choice : types .ToolChoice | None = None ,
247248 related_request_id : types .RequestId | None = None ,
249+ progress_callback : ProgressFnT | None = None ,
248250 ) -> types .CreateMessageResult :
249251 """Overload: Without tools, returns single content."""
250252 ...
@@ -264,6 +266,7 @@ async def create_message(
264266 tools : list [types .Tool ],
265267 tool_choice : types .ToolChoice | None = None ,
266268 related_request_id : types .RequestId | None = None ,
269+ progress_callback : ProgressFnT | None = None ,
267270 ) -> types .CreateMessageResultWithTools :
268271 """Overload: With tools, returns array-capable content."""
269272 ...
@@ -282,6 +285,7 @@ async def create_message(
282285 tools : list [types .Tool ] | None = None ,
283286 tool_choice : types .ToolChoice | None = None ,
284287 related_request_id : types .RequestId | None = None ,
288+ progress_callback : ProgressFnT | None = None ,
285289 ) -> types .CreateMessageResult | types .CreateMessageResultWithTools :
286290 """Send a sampling/create_message request.
287291
@@ -338,11 +342,13 @@ async def create_message(
338342 request = request ,
339343 result_type = types .CreateMessageResultWithTools ,
340344 metadata = metadata_obj ,
345+ progress_callback = progress_callback ,
341346 )
342347 return await self .send_request (
343348 request = request ,
344349 result_type = types .CreateMessageResult ,
345350 metadata = metadata_obj ,
351+ progress_callback = progress_callback ,
346352 )
347353
348354 async def list_roots (self ) -> types .ListRootsResult :
@@ -359,6 +365,7 @@ async def elicit(
359365 message : str ,
360366 requested_schema : types .ElicitRequestedSchema ,
361367 related_request_id : types .RequestId | None = None ,
368+ progress_callback : ProgressFnT | None = None ,
362369 ) -> types .ElicitResult :
363370 """Send a form mode elicitation/create request.
364371
@@ -374,13 +381,14 @@ async def elicit(
374381 This method is deprecated in favor of elicit_form(). It remains for
375382 backward compatibility but new code should use elicit_form().
376383 """
377- return await self .elicit_form (message , requested_schema , related_request_id )
384+ return await self .elicit_form (message , requested_schema , related_request_id , progress_callback = progress_callback )
378385
379386 async def elicit_form (
380387 self ,
381388 message : str ,
382389 requested_schema : types .ElicitRequestedSchema ,
383390 related_request_id : types .RequestId | None = None ,
391+ progress_callback : ProgressFnT | None = None ,
384392 ) -> types .ElicitResult :
385393 """Send a form mode elicitation/create request.
386394
@@ -406,6 +414,7 @@ async def elicit_form(
406414 ),
407415 types .ElicitResult ,
408416 metadata = ServerMessageMetadata (related_request_id = related_request_id ),
417+ progress_callback = progress_callback ,
409418 )
410419
411420 async def elicit_url (
@@ -414,6 +423,7 @@ async def elicit_url(
414423 url : str ,
415424 elicitation_id : str ,
416425 related_request_id : types .RequestId | None = None ,
426+ progress_callback : ProgressFnT | None = None ,
417427 ) -> types .ElicitResult :
418428 """Send a URL mode elicitation/create request.
419429
@@ -444,6 +454,7 @@ async def elicit_url(
444454 ),
445455 types .ElicitResult ,
446456 metadata = ServerMessageMetadata (related_request_id = related_request_id ),
457+ progress_callback = progress_callback ,
447458 )
448459
449460 async def send_ping (self ) -> types .EmptyResult : # pragma: no cover
0 commit comments