Weather Java SSE Transport MCP Service

Weather Java SSE Transport MCP Service

site icon
2025.04.01 2
Java天气查询MCP 协议演示位置服务开发效率
Weather Java SSE Transport MCP Service 是一个基于 Model Context Protocol (MCP) 的 Java 实现示例,展示了如何构建一个端到端的 MCP 服务,支持本地(Stdio Transport)和远程(HTTP SSE Transport)的 MCP 服务器交互。该服务主要用于天气查询,通过调用外部工具获取城市的经纬度信息,并进一步查询天气数据。
View on GitHub

Overview

基本能力

产品定位

Weather Java SSE Transport MCP Service 是一个演示性质的 MCP 服务,主要用于展示如何通过 MCP 协议实现天气查询功能。

核心功能

  1. 天气查询:通过调用外部工具获取城市的经纬度信息,并查询天气数据。
  2. 多服务器交互:支持本地(Stdio Transport)和远程(HTTP SSE Transport)的 MCP 服务器交互。
  3. 智能代理:代理能够根据用户输入的提示自动决定调用哪些工具。

适用场景

  1. 天气查询服务:用于查询多个城市的天气数据并进行比较。
  2. MCP 协议演示:展示如何构建和使用 MCP 服务。
  3. 开发学习:适合开发者学习 MCP 协议及其实现。

工具列表

  1. fetch 工具:用于查找城市的经纬度信息。
  2. weather 工具:用于查询天气数据。

常见问题解答

  1. 如何配置 API 密钥:复制 fastagent.secrets.yaml.TEMPLATEfastagent.secrets.yaml 并添加 API 密钥。
  2. 如何测试 SSE 流:使用 curl 命令连接到 SSE 流。
  3. 如何发送消息:使用 curl 命令发送消息到 /mcp/messages 端点。

使用教程

使用依赖

  1. Java 环境:确保已安装 Java 和 Maven。
  2. Python 环境:确保已安装 Python 和 uv 工具。

安装教程

  1. 构建和启动 Weather MCP Server bash mvn clean package java -jar mcp-server/target/mcp-server-1.0-SNAPSHOT.jar
  2. 安装和配置 fast-agent bash pip install uv uv pip install fast-agent-mcp uv run agent.py
  3. 配置 API 密钥 bash cp fastagent.secrets.yaml.TEMPLATE fastagent.secrets.yaml 然后编辑 fastagent.secrets.yaml 文件添加 API 密钥。

调试方式

  1. 连接 SSE 流 bash curl -v -H "Accept: text/event-stream" "http://localhost:8080/sse"
  2. 发送消息 bash curl -X POST "http://localhost:8080/mcp/message?sessionId=b64ad193-6bb3-4e2e-b33c-27a23011acb4" -d '{"hi": "mynameis"}' | jq .

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。