Merge branch 'feat/agent-multiple-mcp-execution' into 95fmkb-pavan/add-support-for-multiple-mcp-tool-execution-and-direct-model

pull/891/head
Pavan Kumar 1 month ago committed by GitHub
commit abb4d96eed
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -30,4 +30,5 @@ response = json.dumps([
]) ])
agent.handle_multiple_mcp_tools(agent.mcp_urls, response) agent.handle_multiple_mcp_tools(agent.mcp_urls, response)
``` ```

@ -506,6 +506,7 @@ agent = Agent(
# Example MCP payloads returned by your model # Example MCP payloads returned by your model
mcp_response = json.dumps([ mcp_response = json.dumps([
{ {
"function_name": "get_price", "function_name": "get_price",
"server_url": "http://localhost:8000/sse", "server_url": "http://localhost:8000/sse",
@ -519,6 +520,7 @@ mcp_response = json.dumps([
]) ])
agent.handle_multiple_mcp_tools(agent.mcp_urls, mcp_response) agent.handle_multiple_mcp_tools(agent.mcp_urls, mcp_response)
``` ```
## Auto Generate Prompt + CPU Execution ## Auto Generate Prompt + CPU Execution

@ -152,6 +152,7 @@ python examples/tools/mcp_examples/servers/weather_server.py
python examples/tools/mcp_examples/servers/news_server.py python examples/tools/mcp_examples/servers/news_server.py
``` ```
--- ---
## Integration Flow ## Integration Flow

@ -1126,6 +1126,7 @@ class Agent:
response, response,
current_loop=loop_count, current_loop=loop_count,
) )
except Exception as e: except Exception as e:
logger.error( logger.error(
f"Error handling multiple MCP tools: {e}" f"Error handling multiple MCP tools: {e}"
@ -2843,6 +2844,7 @@ class Agent:
payloads = extract_json_from_response(response) payloads = extract_json_from_response(response)
for payload in payloads: for payload in payloads:
function_name = payload.get("function_name") function_name = payload.get("function_name")
server_url = payload.get("server_url") server_url = payload.get("server_url")
arguments = payload.get("payload", {}) arguments = payload.get("payload", {})

@ -1,6 +1,7 @@
import asyncio import asyncio
import json import json
from swarms.structs.agent import Agent, extract_json_from_response from swarms.structs.agent import Agent, extract_json_from_response
from swarms.structs.agent import execute_mcp_call from swarms.structs.agent import execute_mcp_call
from unittest.mock import patch from unittest.mock import patch
@ -46,3 +47,4 @@ def test_extract_json_from_response():
text = "Random text" + json.dumps(payloads) + " end" text = "Random text" + json.dumps(payloads) + " end"
result = extract_json_from_response(text) result = extract_json_from_response(text)
assert result == payloads assert result == payloads

Loading…
Cancel
Save