Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 5 additions & 6 deletions mcpgateway/services/tool_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -1533,10 +1533,9 @@ async def create_tool_from_a2a_agent(
input_schema={
"type": "object",
"properties": {
"parameters": {"type": "object", "description": "Parameters to pass to the A2A agent"},
"interaction_type": {"type": "string", "description": "Type of interaction", "default": "query"},
"query": {"type": "string", "description": "User query", "default": "Hello from MCP Gateway Admin UI test!"},
},
"required": ["parameters"],
"required": ["query"],
},
allow_auto=True,
annotations={
Expand Down Expand Up @@ -1626,11 +1625,11 @@ async def _call_a2a_agent(self, agent: DbA2AAgent, parameters: Dict[str, Any]):
# Patch: Build correct JSON-RPC params structure from flat UI input
params = None
# If UI sends flat fields, convert to nested message structure
if isinstance(parameters, dict) and "parameters" in parameters and "interaction_type" in parameters and isinstance(parameters["interaction_type"], str):
if isinstance(parameters, dict) and "query" in parameters and isinstance(parameters["query"], str):
# Build the nested message object
message_id = f"admin-test-{int(time.time())}"
params = {"message": {"messageId": message_id, "role": "user", "parts": [{"type": "text", "text": parameters["interaction_type"]}]}}
method = parameters.get("parameters", "message/send")
params = {"message": {"messageId": message_id, "role": "user", "parts": [{"type": "text", "text": parameters["query"]}]}}
method = parameters.get("method", "message/send")
else:
# Already in correct format or unknown, pass through
params = parameters.get("params", parameters)
Expand Down
Loading