Skip to content

Commit 47bc4ca

Browse files
committed
update call_tool method to replace args with arguments parameter
1 parent e76a774 commit 47bc4ca

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
@@ -13,11 +13,11 @@
1313
from collections.abc import Callable
1414
from datetime import timedelta
1515
from types import TracebackType
16-
from typing import Any, TypeAlias
16+
from typing import Any, TypeAlias, overload
1717

1818
import anyio
1919
from pydantic import BaseModel
20-
from typing_extensions import Self
20+
from typing_extensions import Self, deprecated
2121

2222
import mcp
2323
from mcp import types
@@ -173,21 +173,45 @@ def tools(self) -> dict[str, types.Tool]:
173173
"""Returns the tools as a dictionary of names to tools."""
174174
return self._tools
175175

176+
@overload
176177
async def call_tool(
177178
self,
178179
name: str,
180+
arguments: dict[str, Any],
181+
read_timeout_seconds: timedelta | None = None,
182+
progress_callback: ProgressFnT | None = None,
183+
*,
184+
meta: dict[str, Any] | None = None,
185+
) -> types.CallToolResult: ...
186+
187+
@overload
188+
@deprecated("The 'args' parameter is deprecated. Use 'arguments' instead.")
189+
async def call_tool(
190+
self,
191+
name: str,
192+
*,
179193
args: dict[str, Any],
180194
read_timeout_seconds: timedelta | None = None,
181195
progress_callback: ProgressFnT | None = None,
196+
meta: dict[str, Any] | None = None,
197+
) -> types.CallToolResult: ...
198+
199+
async def call_tool(
200+
self,
201+
name: str,
202+
arguments: dict[str, Any] | None = None,
203+
read_timeout_seconds: timedelta | None = None,
204+
progress_callback: ProgressFnT | None = None,
182205
*,
183206
meta: dict[str, Any] | None = None,
207+
args: dict[str, Any] | None = None,
184208
) -> types.CallToolResult:
185209
"""Executes a tool given its name and arguments."""
186210
session = self._tool_to_session[name]
187211
session_tool_name = self.tools[name].name
188212
return await session.call_tool(
189213
session_tool_name,
190-
args,
214+
arguments if args is None else args,
191215
read_timeout_seconds=read_timeout_seconds,
192216
progress_callback=progress_callback,
193217
meta=meta,

tests/client/test_session_group.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def hook(name: str, server_info: types.Implementation) -> str:
6262
# --- Test Execution ---
6363
result = await mcp_session_group.call_tool(
6464
name="server1-my_tool",
65-
args={
65+
arguments={
6666
"name": "value1",
6767
"args": {},
6868
},

0 commit comments

Comments
 (0)