天气数据MCP服务

一个基于Model Context Protocol的Java SDK实现,用于通过MCP客户端与天气MCP服务器交互,支持本地和远程服务器通信,适用于天气数据查询和处理的场景。

  • by stantonk
  • Java
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 stantonk/mcp-server-java-sse-http-demo

使用说明

天气Java SSE传输MCP服务

一个工作实现模型上下文协议javasdk。包含 MCP客户端与Weather MCP服务器交互的快速代理。

⚠️这不是远程生产级,只是演示如何构建 端到端工作的东西,可以利用多个MCP服务器 本地(标准传输)和远程(HTTP SSE传输)。也避免 尽可能多地为那些不想要春天的人带来春天。

在演示中,您将看到代理:

  1. 代理始终使用Claude Sonnet 3.7作为LLM位
  2. 代理调用“fetch”websearch MCP Server工具,为我要求的每个城市查找lat/log。
  3. 然后,代理使用这些纬度/经度值来调用天气MCP服务器工具(在此存储库中实现)。 您可以在终端拆分窗口的上半部分看到正在进行的呼叫。
  4. 该代理总结了预测结果,并确定了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