返回市场
MCP服务器Java SSE HTTP示例

MCP服务器Java SSE HTTP示例

作者:stantonk3 星标更新:2025-04-01

项目介绍

Weather Java SSE Transport MCP 服务

这是一个工作的实现模型上下文协议 java-sdk。包括 一个快速代理,用于MCP客户端与Weather mcp-server进行交互。

⚠️这不是远程生产级别的服务,只是演示如何构建一个从头到尾都能工作的系统,可以利用多个MCP服务器,无论是本地(Stdio传输)还是远程(HTTP SSE传输)。同时尽量避免引入Spring框架,以满足那些不想使用Spring的人的需求。

在演示中,你会看到代理:

  1. 代理在整个过程中使用Claude Sonnet 3.7作为LLM部分。
  2. 代理调用“fetch”网络搜索MCP服务器工具来查找我请求的每个城市的经纬度。
  3. 然后,代理使用这些经纬度值调用天气MCP服务器工具(在此仓库中实现)。你可以在终端分割窗口的上半部分看到调用过程。
  4. 代理总结预报并确定四个城市中哪个城市的明天最暖和。

代理根据用户输入提示的上下文决定调用哪些工具。

图像描述

构建并启动Weather 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密钥添加到该配置文件中。

注意: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 .

值得关注的内容: