返回市场
MCP服务器发送事件

MCP服务器发送事件

作者:sidharthrajaram299 星标更新:2025-03-07

项目介绍

基于SSE的MCP服务器和客户端

smithery徽章

这演示了一种基于SSE的MCP服务器和独立MCP客户端的工作模式,这些客户端使用来自它们的工具。基于原始讨论这里

使用方法

注意:确保在.env文件或环境变量中提供ANTHROPIC_API_KEY

uv run weather.py

uv run client.py http://0.0.0.0:8080/sse
初始化了SSE客户端...
列出工具...

已连接到带有以下工具的服务器:['get_alerts', 'get_forecast']

MCP客户端已启动!
输入您的查询或键入'quit'退出。

查询:斯波坎的天气如何?

我可以帮助您查看斯波坎,华盛顿州的天气预报。我将使用get_forecast函数,但需要使用斯波坎的经纬度坐标。

斯波坎,WA位于大约47.6587° N,117.4260° W。
[调用工具get_forecast,参数{'latitude': 47.6587, 'longitude': -117.426}]
根据斯波坎当前的天气预报:

现在是晴朗且寒冷,气温为37°F,并且...

为什么?

这意味着MCP服务器现在可以是一个运行中的进程,代理(客户端)可以在任何时候、任何地方连接到它、使用它并断开连接。换句话说,基于SSE的服务器和客户端可以是解耦的过程(甚至可能在解耦的节点上)。这与STDIO模式不同,后者客户端本身会作为子进程启动服务器,更适合“云原生”用例。

通过Smithery安装

要通过Smithery自动安装基于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