mcpField
S
SSE-based Server and Client for

SSE-based Server and Client for

github.com/sidharthrajaram框架与 SDK30186 周前更新

关于 SSE-based Server and Client for

这是一个 SSE 协议的 MCP 服务和客户端实现示例。演示了如何使用服务器发送事件(SSE)构建 MCP 客户端和服务,支持分离的进程架构,更适合云原生场景。

主要功能

  1. 01SSE 协议的 MCP 服务实现
  2. 02独立的 MCP 客户端进程
  3. 03天气预报工具集成
  4. 04解耦的客户端-服务器架构

适用场景

  1. 01构建云原生 MCP 服务
  2. 02实现客户端和服务器的动态连接
  3. 03Agent 动态使用远程 MCP 工具
  4. 04跨进程的 Agent 协调

MCP 相关

该项目提供了 SSE 协议的 MCP 服务和客户端实现,服务可作为独立进程运行,客户端通过 SSE 端点连接使用工具。

详细介绍

基于 SSE 的 MCP 服务和客户端

smithery badge

本项目演示了基于 SSE 的 MCP 服务和使用其工具的独立 MCP 客户端的工作模式。基于原始讨论 这里。

使用方法

注意:请确保在 .env 中或作为环境变量供应 ANTHROPIC_API_KEY。

uv run weather.py

uv run client.py http://0.0.0.0:8080/sse
Initialized SSE client...
Listing tools...

Connected to server with tools: ['get_alerts', 'get_forecast']

MCP Client Started!
Type your queries or 'quit' to exit.

Query: whats the weather like in Spokane?

I can help you check the weather forecast for Spokane, Washington. I'll use the get_forecast function, but I'll need to use Spokane's latitude and longitude coordinates.

Spokane, WA is located at approximately 47.6587° N, 117.4260° W.
[Calling tool get_forecast with args {'latitude': 47.6587, 'longitude': -117.426}]
Based on the current forecast for Spokane:

Right now it's sunny and cold with a temperature of 37°F and ...

为什么?

这意味着 MCP 服务可以是一个运行中的进程,Agent(客户端)可以随时随地连接到它、使用它,然后断开连接。换句话说,基于 SSE 的服务和客户端可以是解耦的进程(甚至可能在不同的节点上)。这与基于 STDIO 的模式不同,也更适合"云原生"用例,因为在基于 STDIO 的模式中,客户端本身需要生成服务作为子进程。

通过 Smithery 安装

要通过 Smithery 自动为 Claude Desktop 安装基于 SSE 的服务和客户端:

npx -y @smithery/cli install @sidharthrajaram/mcp-sse --client claude
服务

weather.py 是一个基于 SSE 的 MCP 服务,提供了一些基于美国国家气象服务 API 的工具。改编自 MCP 文档的 示例 STDIO 服务实现。

默认情况下,服务运行在 0.0.0.0:8080,但可以通过命令行参数配置,例如:

uv run weather.py --host <your host> --port <your port>
客户端

client.py 是一个 MCP 客户端,连接到基于 SSE 的 MCP 服务并使用其工具。改编自 MCP 文档的 示例 STDIO 客户端实现。

默认情况下,客户端连接到通过命令行参数提供的 SSE 端点,例如:

uv run client.py http://0.0.0.0:8080/sse

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。