本项目是一个实现 Model Context Protocol (MCP) Java SDK 的工作示例,包含一个快速代理(fast-agent),用于与 Weather mcp-server 进行交互。它能帮助您了解如何构建一个完整的解决方案,利用多个 MCP 服务器(本地 Stdio 传输和远程 HTTP SSE 传输)。
在演示中,代理将完成以下操作:
代理会根据用户输入提示的内容上下文,自动决定要调用哪些工具。
mvn clean package
java -jar mcp-server/target/mcp-server-1.0-SNAPSHOT.jar
pip install uv
uv pip install fast-agent-mcp
uv run agent.py
复制模板文件并进行编辑:
cp fastagent.secrets.yaml.TEMPLATE fastagent.secrets.yaml
然后将您的 API 密钥添加到该配置文件中。
在 fastagent.config.yaml
中,我们已经为代理指定了可用的 MCP 服务器。在此示例中,我们的服务器使用 SSE HTTP 传输,这使得能够调用远程 MCP 服务器:
mcp:
servers:
weather:
transport: "sse"
read_timeout_seconds: 10
url: "http://localhost:8080/sse"
curl -v -H "Accept: text/event-stream" "http://localhost:8080/sse"
/mcp/messages
发送消息(注意:包含从 SSE 获取的 sessionId)curl -X POST "http://localhost:8080/mcp/message?sessionId=b64ad193-6bb3-4e2e-b33c-27a23011acb4" -d '{"hi": "mynameis"}' | jq .
本项目主要使用 Java 实现 MCP 服务器,使用 Python 实现 fast-agent。在整个过程中,使用 Claude Sonnet 3.7 处理大语言模型部分,并通过调用 MCP 服务器上的工具完成网络搜索和天气查询等功能。
文档未提及相关内容,故跳过该章节。
⚠️ 重要提示
这并不是生产级别的代码,只是为了展示如何构建从头到尾的完整解决方案,使其能够利用多个 MCP 服务器(本地 Stdio 传输和远程 HTTP SSE 传输)。此外,还避免引入过多的 Spring 框架,以满足那些不希望使用 Spring 的用户的需求。
💡 使用建议
在使用前,请确保已经正确配置 Claude 和 OpenAI API 密钥,并按照文档中的步骤进行安装和配置。