Skip to content

Commit fc20e26

Browse files
committed
Reapply " update call_tool method to replace args with arguments parameter"
This reverts commit 4b9546d.
1 parent dd8410f commit fc20e26

File tree

2 files changed

+28
-4
lines changed

2 files changed

+28
-4
lines changed

src/mcp/client/session_group.py

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@
1414
from dataclasses import dataclass
1515
from datetime import timedelta
1616
from types import TracebackType
17-
from typing import Any, TypeAlias
17+
from typing import Any, TypeAlias, overload
1818

1919
import anyio
2020
from pydantic import BaseModel
21-
from typing_extensions import Self
21+
from typing_extensions import Self, deprecated
2222

2323
import mcp
2424
from mcp import types
@@ -190,21 +190,45 @@ def tools(self) -> dict[str, types.Tool]:
190190
"""Returns the tools as a dictionary of names to tools."""
191191
return self._tools
192192

193+
@overload
193194
async def call_tool(
194195
self,
195196
name: str,
197+
arguments: dict[str, Any],
198+
read_timeout_seconds: timedelta | None = None,
199+
progress_callback: ProgressFnT | None = None,
200+
*,
201+
meta: dict[str, Any] | None = None,
202+
) -> types.CallToolResult: ...
203+
204+
@overload
205+
@deprecated("The 'args' parameter is deprecated. Use 'arguments' instead.")
206+
async def call_tool(
207+
self,
208+
name: str,
209+
*,
196210
args: dict[str, Any],
197211
read_timeout_seconds: timedelta | None = None,
198212
progress_callback: ProgressFnT | None = None,
213+
meta: dict[str, Any] | None = None,
214+
) -> types.CallToolResult: ...
215+
216+
async def call_tool(
217+
self,
218+
name: str,
219+
arguments: dict[str, Any] | None = None,
220+
read_timeout_seconds: timedelta | None = None,
221+
progress_callback: ProgressFnT | None = None,
199222
*,
200223
meta: dict[str, Any] | None = None,
224+
args: dict[str, Any] | None = None,
201225
) -> types.CallToolResult:
202226
"""Executes a tool given its name and arguments."""
203227
session = self._tool_to_session[name]
204228
session_tool_name = self.tools[name].name
205229
return await session.call_tool(
206230
session_tool_name,
207-
args,
231+
arguments if args is None else args,
208232
read_timeout_seconds=read_timeout_seconds,
209233
progress_callback=progress_callback,
210234
meta=meta,

tests/client/test_session_group.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def hook(name: str, server_info: types.Implementation) -> str: # pragma: no cov
6767
# --- Test Execution ---
6868
result = await mcp_session_group.call_tool(
6969
name="server1-my_tool",
70-
args={
70+
arguments={
7171
"name": "value1",
7272
"args": {},
7373
},

0 commit comments

Comments
 (0)