README
🚀 天气 Java SSE 传输 MCP 服务
本项目是一个实现 Model Context Protocol (MCP) Java SDK 的工作示例,包含一个快速代理(fast-agent),用于与 Weather mcp-server 进行交互。它能帮助您了解如何构建一个完整的解决方案,利用多个 MCP 服务器(本地 Stdio 传输和远程 HTTP SSE 传输)。
项目亮点
- 从头到尾展示完整解决方案,利用多种 MCP 服务器。
- 避免引入过多 Spring 框架,满足不希望使用 Spring 的用户需求。
演示功能
在演示中,代理将完成以下操作:
- 全程使用 Claude Sonnet 3.7 处理大语言模型(LLM)部分。
- 调用 MCP 服务器上的 "fetch" 网络搜索工具,查找每个输入城市对应的经纬度。
- 使用经纬度值调用天气 MCP 服务器工具(本仓库实现),终端窗口上半部分可查看调用详细信息。
- 总结各个城市的天气预报,确定明天哪个城市最温暖。
代理会根据用户输入提示的内容上下文,自动决定要调用哪些工具。

相关链接
🚀 快速开始
✨ 主要特性
- 实现 MCP Java SDK 的工作示例,可与 Weather mcp-server 交互。
- 支持本地 Stdio 传输和远程 HTTP SSE 传输。
- 自动根据用户输入上下文调用工具。
📦 安装指南
构建和启动 Weather MCP 服务器
mvn clean package
java -jar mcp-server/target/mcp-server-1.0-SNAPSHOT.jar
安装、配置并启动 fast-agent
安装
pip install uv
uv pip install fast-agent-mcp
uv run agent.py
配置 Claude 和 OpenAI API 密钥
复制模板文件并进行编辑:
cp fastagent.secrets.yaml.TEMPLATE fastagent.secrets.yaml
然后将您的 API 密钥添加到该配置文件中。
注意:Weather MCP 服务器配置
在 fastagent.config.yaml 中,我们已经为代理指定了可用的 MCP 服务器。在此示例中,我们的服务器使用 SSE HTTP 传输,这使得能够调用远程 MCP 服务器:
mcp:
servers:
weather:
transport: "sse"
read_timeout_seconds: 10
url: "http://localhost:8080/sse"
💻 使用示例
低级别测试
连接到 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 密钥,并按照文档中的步骤进行安装和配置。
微信扫一扫