|
5 | 5 | import anyio.lowlevel |
6 | 6 | from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream |
7 | 7 | from pydantic import AnyUrl, TypeAdapter |
8 | | -from typing_extensions import deprecated |
9 | 8 |
|
10 | 9 | import mcp.types as types |
11 | 10 | from mcp.client.experimental import ExperimentalClientFeatures |
@@ -279,112 +278,48 @@ async def set_logging_level(self, level: types.LoggingLevel) -> types.EmptyResul |
279 | 278 | types.EmptyResult, |
280 | 279 | ) |
281 | 280 |
|
282 | | - @overload |
283 | | - @deprecated("Use list_resources(params=PaginatedRequestParams(...)) instead") |
284 | | - async def list_resources(self, cursor: str | None) -> types.ListResourcesResult: ... |
285 | | - |
286 | | - @overload |
287 | | - async def list_resources(self, *, params: types.PaginatedRequestParams | None) -> types.ListResourcesResult: ... |
288 | | - |
289 | | - @overload |
290 | | - async def list_resources(self) -> types.ListResourcesResult: ... |
291 | | - |
292 | | - async def list_resources( |
293 | | - self, |
294 | | - cursor: str | None = None, |
295 | | - *, |
296 | | - params: types.PaginatedRequestParams | None = None, |
297 | | - ) -> types.ListResourcesResult: |
| 281 | + async def list_resources(self, *, params: types.PaginatedRequestParams | None = None) -> types.ListResourcesResult: |
298 | 282 | """Send a resources/list request. |
299 | 283 |
|
300 | 284 | Args: |
301 | | - cursor: Simple cursor string for pagination (deprecated, use params instead) |
302 | 285 | params: Full pagination parameters including cursor and any future fields |
303 | 286 | """ |
304 | | - if params is not None and cursor is not None: |
305 | | - raise ValueError("Cannot specify both cursor and params") |
306 | | - |
307 | | - if params is not None: |
308 | | - request_params = params |
309 | | - elif cursor is not None: |
310 | | - request_params = types.PaginatedRequestParams(cursor=cursor) |
311 | | - else: |
312 | | - request_params = None |
313 | | - |
314 | 287 | return await self.send_request( |
315 | | - types.ClientRequest(types.ListResourcesRequest(params=request_params)), |
| 288 | + types.ClientRequest(types.ListResourcesRequest(params=params)), |
316 | 289 | types.ListResourcesResult, |
317 | 290 | ) |
318 | 291 |
|
319 | | - @overload |
320 | | - @deprecated("Use list_resource_templates(params=PaginatedRequestParams(...)) instead") |
321 | | - async def list_resource_templates(self, cursor: str | None) -> types.ListResourceTemplatesResult: ... |
322 | | - |
323 | | - @overload |
324 | 292 | async def list_resource_templates( |
325 | | - self, *, params: types.PaginatedRequestParams | None |
326 | | - ) -> types.ListResourceTemplatesResult: ... |
327 | | - |
328 | | - @overload |
329 | | - async def list_resource_templates(self) -> types.ListResourceTemplatesResult: ... |
330 | | - |
331 | | - async def list_resource_templates( |
332 | | - self, |
333 | | - cursor: str | None = None, |
334 | | - *, |
335 | | - params: types.PaginatedRequestParams | None = None, |
| 293 | + self, *, params: types.PaginatedRequestParams | None = None |
336 | 294 | ) -> types.ListResourceTemplatesResult: |
337 | 295 | """Send a resources/templates/list request. |
338 | 296 |
|
339 | 297 | Args: |
340 | | - cursor: Simple cursor string for pagination (deprecated, use params instead) |
341 | 298 | params: Full pagination parameters including cursor and any future fields |
342 | 299 | """ |
343 | | - if params is not None and cursor is not None: |
344 | | - raise ValueError("Cannot specify both cursor and params") |
345 | | - |
346 | | - if params is not None: |
347 | | - request_params = params |
348 | | - elif cursor is not None: |
349 | | - request_params = types.PaginatedRequestParams(cursor=cursor) |
350 | | - else: |
351 | | - request_params = None |
352 | | - |
353 | 300 | return await self.send_request( |
354 | | - types.ClientRequest(types.ListResourceTemplatesRequest(params=request_params)), |
| 301 | + types.ClientRequest(types.ListResourceTemplatesRequest(params=params)), |
355 | 302 | types.ListResourceTemplatesResult, |
356 | 303 | ) |
357 | 304 |
|
358 | 305 | async def read_resource(self, uri: AnyUrl) -> types.ReadResourceResult: |
359 | 306 | """Send a resources/read request.""" |
360 | 307 | return await self.send_request( |
361 | | - types.ClientRequest( |
362 | | - types.ReadResourceRequest( |
363 | | - params=types.ReadResourceRequestParams(uri=uri), |
364 | | - ) |
365 | | - ), |
| 308 | + types.ClientRequest(types.ReadResourceRequest(params=types.ReadResourceRequestParams(uri=uri))), |
366 | 309 | types.ReadResourceResult, |
367 | 310 | ) |
368 | 311 |
|
369 | 312 | async def subscribe_resource(self, uri: AnyUrl) -> types.EmptyResult: |
370 | 313 | """Send a resources/subscribe request.""" |
371 | 314 | return await self.send_request( # pragma: no cover |
372 | | - types.ClientRequest( |
373 | | - types.SubscribeRequest( |
374 | | - params=types.SubscribeRequestParams(uri=uri), |
375 | | - ) |
376 | | - ), |
| 315 | + types.ClientRequest(types.SubscribeRequest(params=types.SubscribeRequestParams(uri=uri))), |
377 | 316 | types.EmptyResult, |
378 | 317 | ) |
379 | 318 |
|
380 | 319 | async def unsubscribe_resource(self, uri: AnyUrl) -> types.EmptyResult: |
381 | 320 | """Send a resources/unsubscribe request.""" |
382 | 321 | return await self.send_request( # pragma: no cover |
383 | | - types.ClientRequest( |
384 | | - types.UnsubscribeRequest( |
385 | | - params=types.UnsubscribeRequestParams(uri=uri), |
386 | | - ) |
387 | | - ), |
| 322 | + types.ClientRequest(types.UnsubscribeRequest(params=types.UnsubscribeRequestParams(uri=uri))), |
388 | 323 | types.EmptyResult, |
389 | 324 | ) |
390 | 325 |
|
@@ -445,40 +380,14 @@ async def _validate_tool_result(self, name: str, result: types.CallToolResult) - |
445 | 380 | except SchemaError as e: # pragma: no cover |
446 | 381 | raise RuntimeError(f"Invalid schema for tool {name}: {e}") # pragma: no cover |
447 | 382 |
|
448 | | - @overload |
449 | | - @deprecated("Use list_prompts(params=PaginatedRequestParams(...)) instead") |
450 | | - async def list_prompts(self, cursor: str | None) -> types.ListPromptsResult: ... |
451 | | - |
452 | | - @overload |
453 | | - async def list_prompts(self, *, params: types.PaginatedRequestParams | None) -> types.ListPromptsResult: ... |
454 | | - |
455 | | - @overload |
456 | | - async def list_prompts(self) -> types.ListPromptsResult: ... |
457 | | - |
458 | | - async def list_prompts( |
459 | | - self, |
460 | | - cursor: str | None = None, |
461 | | - *, |
462 | | - params: types.PaginatedRequestParams | None = None, |
463 | | - ) -> types.ListPromptsResult: |
| 383 | + async def list_prompts(self, *, params: types.PaginatedRequestParams | None = None) -> types.ListPromptsResult: |
464 | 384 | """Send a prompts/list request. |
465 | 385 |
|
466 | 386 | Args: |
467 | | - cursor: Simple cursor string for pagination (deprecated, use params instead) |
468 | 387 | params: Full pagination parameters including cursor and any future fields |
469 | 388 | """ |
470 | | - if params is not None and cursor is not None: |
471 | | - raise ValueError("Cannot specify both cursor and params") |
472 | | - |
473 | | - if params is not None: |
474 | | - request_params = params |
475 | | - elif cursor is not None: |
476 | | - request_params = types.PaginatedRequestParams(cursor=cursor) |
477 | | - else: |
478 | | - request_params = None |
479 | | - |
480 | 389 | return await self.send_request( |
481 | | - types.ClientRequest(types.ListPromptsRequest(params=request_params)), |
| 390 | + types.ClientRequest(types.ListPromptsRequest(params=params)), |
482 | 391 | types.ListPromptsResult, |
483 | 392 | ) |
484 | 393 |
|
@@ -517,40 +426,15 @@ async def complete( |
517 | 426 | types.CompleteResult, |
518 | 427 | ) |
519 | 428 |
|
520 | | - @overload |
521 | | - @deprecated("Use list_tools(params=PaginatedRequestParams(...)) instead") |
522 | | - async def list_tools(self, cursor: str | None) -> types.ListToolsResult: ... |
523 | | - |
524 | | - @overload |
525 | | - async def list_tools(self, *, params: types.PaginatedRequestParams | None) -> types.ListToolsResult: ... |
526 | | - |
527 | | - @overload |
528 | | - async def list_tools(self) -> types.ListToolsResult: ... |
529 | | - |
530 | | - async def list_tools( |
531 | | - self, |
532 | | - cursor: str | None = None, |
533 | | - *, |
534 | | - params: types.PaginatedRequestParams | None = None, |
535 | | - ) -> types.ListToolsResult: |
| 429 | + async def list_tools(self, *, params: types.PaginatedRequestParams | None = None) -> types.ListToolsResult: |
536 | 430 | """Send a tools/list request. |
537 | 431 |
|
538 | 432 | Args: |
539 | 433 | cursor: Simple cursor string for pagination (deprecated, use params instead) |
540 | 434 | params: Full pagination parameters including cursor and any future fields |
541 | 435 | """ |
542 | | - if params is not None and cursor is not None: |
543 | | - raise ValueError("Cannot specify both cursor and params") |
544 | | - |
545 | | - if params is not None: |
546 | | - request_params = params |
547 | | - elif cursor is not None: |
548 | | - request_params = types.PaginatedRequestParams(cursor=cursor) |
549 | | - else: |
550 | | - request_params = None |
551 | | - |
552 | 436 | result = await self.send_request( |
553 | | - types.ClientRequest(types.ListToolsRequest(params=request_params)), |
| 437 | + types.ClientRequest(types.ListToolsRequest(params=params)), |
554 | 438 | types.ListToolsResult, |
555 | 439 | ) |
556 | 440 |
|
|
0 commit comments