google / google/adk-python-community

ADK with MCPToolSet not working connecting to local MCPServer

未关闭
#33 3 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Python
星标
182
派生
75
PR 合并指标
30 天内没有已合并 PR

描述

1. I have created venv for adk project
2. In the same env I am running FastMCP MCP server http://localhost:8000
3. Instead of using MCP client - i wanted to use ADK as a client and calling tool from MCP server
4. My ADK API server is running like
adk api_server --host localhost --port 8000
5. When I am make a call to this server which in turn goes to MCP and call the tool its not working. I am getting error
Fail to load 'adk-google-models' module. 'module' object is not callable

Flow

Running venv where MCP server is running and ADK is running. ADK is the client calling tool defined in MCP server.

Code
root_agent = LlmAgent(
# Use the latest stable Flash model identifier
model="gemini-2.5-flash",
name="gemini_flash_agent",
description=("Agent to answer questions about weather in a city."),
instruction="Use the data from a URL provided by the user",
generate_content_config=generate_content_config,
tools= [McpToolset (
connection_params=StreamableHttpConnectionParams(
url="http://localhost:9000/mcp",
timeout=10,
),
tool_filter['get_weather']. // Weather tool running on MCP server
#sub_agents=[],
# ... other agent parameters
),
],
)

MCP code:

import io

from fastmcp import FastMCP
from fastmcp.utilities.types import Image

# Create server - dependencies are now in fastmcp.json
mcp = FastMCP("Screenshot Demo")

@mcp.tool
def get_weather(city: str) -> dict:
"""Gets the current weather for a specific city."""
# In a real app, this would call a weather API
return {"city": city, "temperature": "72F", "forecast": "Sunny"}

if __name__ == "__main__":
import asyncio

asyncio.run(mcp.run_async())

testing calling MCP:

curl -X POST http://localhost:8000/run \
-H "Content-Type: application/json" \
-d '{
"app_name": "adk-google-models",
"user_id": "test1",
"session_id": "test1session",
"new_message": {
"role": "user",
"parts": [
{"text": "What is the weather in cityxxx"}
]
}
}'

anyone have idea what is missing?

贡献指南

打开贡献指南

调研方向

首先复现发送到 ADK api_server 的 POST 请求,并检查 app_name 模块是如何加载的,然后检查 McpToolset 和 FastMCP 服务器使用的 MCP 连接 URL 和端口。将报告的 module-not-callable 错误与所示的 agent 设置进行比较。当请求到达 get_weather 并返回预期的天气响应时,即表示完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
python
领域
api, backend
Issue 类型
缺陷
难度
3/5
预计耗时
1-2 天
活跃度
活跃
描述清晰度
基本清楚
新手友好度
48/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。