返回 MCP 目录
public公开dns本地运行

mcp-server-java-sse-http-demo

一个基于Model Context Protocol的天气服务Java实现,包含快速代理客户端,支持本地和远程MCP服务器交互,演示了通过LLM调用工具链完成天气查询任务。

article

README

🚀 天气 Java SSE 传输 MCP 服务

本项目是一个实现 Model Context Protocol (MCP) Java SDK 的工作示例,包含一个快速代理(fast-agent),用于与 Weather mcp-server 进行交互。它能帮助您了解如何构建一个完整的解决方案,利用多个 MCP 服务器(本地 Stdio 传输和远程 HTTP SSE 传输)。

项目亮点

  • 从头到尾展示完整解决方案,利用多种 MCP 服务器。
  • 避免引入过多 Spring 框架,满足不希望使用 Spring 的用户需求。

演示功能

在演示中,代理将完成以下操作:

  1. 全程使用 Claude Sonnet 3.7 处理大语言模型(LLM)部分。
  2. 调用 MCP 服务器上的 "fetch" 网络搜索工具,查找每个输入城市对应的经纬度。
  3. 使用经纬度值调用天气 MCP 服务器工具(本仓库实现),终端窗口上半部分可查看调用详细信息。
  4. 总结各个城市的天气预报,确定明天哪个城市最温暖。

代理会根据用户输入提示的内容上下文,自动决定要调用哪些工具。

图片描述

相关链接

🚀 快速开始

✨ 主要特性

  • 实现 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 密钥,并按照文档中的步骤进行安装和配置。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端