天气Java SSE传输MCP服务
一个工作实现模型上下文协议javasdk。包含 MCP客户端与Weather MCP服务器交互的快速代理。
⚠️这不是远程生产级,只是演示如何构建 端到端工作的东西,可以利用多个MCP服务器 本地(标准传输)和远程(HTTP SSE传输)。也避免 尽可能多地为那些不想要春天的人带来春天。
在演示中,您将看到代理:
- 代理始终使用Claude Sonnet 3.7作为LLM位
- 代理调用“fetch”websearch MCP Server工具,为我要求的每个城市查找lat/log。
- 然后,代理使用这些纬度/经度值来调用天气MCP服务器工具(在此存储库中实现)。
您可以在终端拆分窗口的上半部分看到正在进行的呼叫。
- 该代理总结了预测结果,并确定了4个城市中哪一个明天最温暖。
代理正在根据用户输入的提示上下文确定要调用哪些工具。
构建并启动天气MCP服务器
mvn clean package
java -jar java -jar mcp-server/target/mcp-server-1.0-SNAPSHOT.jar安装、配置和启动快速代理
安装
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密钥添加到该配置文件中。
注意:天气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 .要查看的内容:
- https://github.com/youngsu5582/mcp-server-mysql
