mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-27 09:33:55 +08:00
update:替换描述里涉及到的原始方法名称
This commit is contained in:
@@ -136,9 +136,6 @@ async def handle_mcp_message(conn, mcp_client: MCPClient, payload: dict):
|
|||||||
conn.logger.bind(tag=TAG).info(
|
conn.logger.bind(tag=TAG).info(
|
||||||
f"客户端MCP服务器信息: name={name}, version={version}"
|
f"客户端MCP服务器信息: name={name}, version={version}"
|
||||||
)
|
)
|
||||||
await send_mcp_tools_list_request(
|
|
||||||
conn
|
|
||||||
) # After initialization, request tool list
|
|
||||||
return
|
return
|
||||||
|
|
||||||
elif msg_id == 2: # mcpToolsListID
|
elif msg_id == 2: # mcpToolsListID
|
||||||
@@ -177,6 +174,20 @@ async def handle_mcp_message(conn, mcp_client: MCPClient, payload: dict):
|
|||||||
await mcp_client.add_tool(new_tool)
|
await mcp_client.add_tool(new_tool)
|
||||||
conn.logger.bind(tag=TAG).debug(f"客户端工具 #{i+1}: {name}")
|
conn.logger.bind(tag=TAG).debug(f"客户端工具 #{i+1}: {name}")
|
||||||
|
|
||||||
|
# 替换所有工具描述中的工具名称
|
||||||
|
for tool_data in mcp_client.tools.values():
|
||||||
|
if "description" in tool_data:
|
||||||
|
description = tool_data["description"]
|
||||||
|
# 遍历所有工具名称进行替换
|
||||||
|
for (
|
||||||
|
sanitized_name,
|
||||||
|
original_name,
|
||||||
|
) in mcp_client.name_mapping.items():
|
||||||
|
description = description.replace(
|
||||||
|
original_name, sanitized_name
|
||||||
|
)
|
||||||
|
tool_data["description"] = description
|
||||||
|
|
||||||
next_cursor = result.get("nextCursor", "")
|
next_cursor = result.get("nextCursor", "")
|
||||||
if next_cursor:
|
if next_cursor:
|
||||||
conn.logger.bind(tag=TAG).info(
|
conn.logger.bind(tag=TAG).info(
|
||||||
@@ -222,8 +233,6 @@ async def send_mcp_initialize_message(conn):
|
|||||||
"token": token,
|
"token": token,
|
||||||
}
|
}
|
||||||
|
|
||||||
conn.logger.bind(tag=TAG).info(f"视觉服务信息: {vision}")
|
|
||||||
|
|
||||||
payload = {
|
payload = {
|
||||||
"jsonrpc": "2.0",
|
"jsonrpc": "2.0",
|
||||||
"id": 1, # mcpInitializeID
|
"id": 1, # mcpInitializeID
|
||||||
@@ -345,7 +354,7 @@ async def call_mcp_tool(
|
|||||||
}
|
}
|
||||||
|
|
||||||
conn.logger.bind(tag=TAG).info(
|
conn.logger.bind(tag=TAG).info(
|
||||||
f"发送客户端mcp工具调用请求: {tool_name},参数: {args}"
|
f"发送客户端mcp工具调用请求: {actual_name},参数: {args}"
|
||||||
)
|
)
|
||||||
await send_mcp_message(conn, payload)
|
await send_mcp_message(conn, payload)
|
||||||
|
|
||||||
@@ -353,7 +362,7 @@ async def call_mcp_tool(
|
|||||||
# Wait for response or timeout
|
# Wait for response or timeout
|
||||||
raw_result = await asyncio.wait_for(result_future, timeout=timeout)
|
raw_result = await asyncio.wait_for(result_future, timeout=timeout)
|
||||||
conn.logger.bind(tag=TAG).info(
|
conn.logger.bind(tag=TAG).info(
|
||||||
f"客户端mcp工具调用 {tool_name} 成功,原始结果: {raw_result}"
|
f"客户端mcp工具调用 {actual_name} 成功,原始结果: {raw_result}"
|
||||||
)
|
)
|
||||||
|
|
||||||
if isinstance(raw_result, dict):
|
if isinstance(raw_result, dict):
|
||||||
|
|||||||
Reference in New Issue
Block a user