Skip to content

Commit 2220ed6

Browse files
authored
Bugfix: Register MCP Tools Like MCP Resources (ag2ai#1950)
* test successful tool registration * unconditionally register for llm
1 parent ce1df75 commit 2220ed6

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

autogen/tools/tool.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,7 @@ def register_for_llm(self, agent: "ConversableAgent") -> None:
9696
"""
9797
if self._func_schema:
9898
agent.update_tool_signature(self._func_schema, is_remove=False)
99-
else:
100-
agent.register_for_llm()(self)
99+
agent.register_for_llm()(self)
101100

102101
def register_for_execution(self, agent: "ConversableAgent") -> None:
103102
"""Registers the tool for direct execution by a ConversableAgent.

test/mcp/test_mcp.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,24 @@ async def test_convert_resource(self, server_params: "StdioServerParameters") ->
136136
]
137137
assert result.contents == expected_result
138138

139+
@pytest.mark.asyncio
140+
async def test_register_for_llm_tool(
141+
self, server_params: "StdioServerParameters", credentials_gpt_4o_mini: Credentials
142+
) -> None: # type: ignore[no-any-unimported]
143+
async with (
144+
stdio_client(server_params) as (read, write),
145+
ClientSession(read, write, read_timeout_seconds=timedelta(seconds=30)) as session,
146+
):
147+
# Initialize the connection
148+
await session.initialize()
149+
toolkit = await create_toolkit(session=session)
150+
agent = AssistantAgent(
151+
name="agent",
152+
llm_config=credentials_gpt_4o_mini.llm_config,
153+
)
154+
toolkit.register_for_llm(agent)
155+
assert len(agent.tools) == len(toolkit.tools)
156+
139157
@pytest.mark.asyncio
140158
async def test_convert_resource_with_download_folder(self, server_params: "StdioServerParameters") -> None: # type: ignore[no-any-unimported]
141159
async with (

0 commit comments

Comments
 (0)