SSE协议笔记服务器

一个基于HTTP和服务器发送事件(SSE)的模型上下文协议(MCP)服务器,适用于托管在VS Code服务器或任何云环境中的多客户端实时协作场景。

  • by agentversity
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 agentversity/MCP-server-demo

使用说明

MCP Notes服务器-托管SSE版本

一种使用服务器发送事件(SSE)在HTTP上运行的模型上下文协议(MCP)服务器,适用于在托管的VS代码服务器或任何云环境中部署。

🎯 目的

这是一个 托管版本 MCP Notes服务器:

  • 作为可通过网络访问的HTTP服务器运行
  • 使用SSE(服务器发送事件)进行MCP通信
  • 可以部署在VS Code服务器、云平台或任何服务器上
  • 允许多个客户端同时连接

🚀 快速开始

1.安装依赖项

pip install -r requirements.txt

2.运行服务器

python server.py

服务器将于启动 http://0.0.0.0:8000/sse

3.与客户进行测试

在另一个终端中:

python client_sse.py

📁 文件

  • server.py -基于SSE的MCP服务器
  • client_sse.py -通过SSE连接的示例客户端
  • requirements.txt -Python依赖关系

🌐 部署

托管VS代码服务器

  1. 上传文件 到您的VS代码服务器
  2. 安装依赖项: pip install -r requirements.txt
  3. 运行服务器: python server.py
  4. 从任何地方访问: http://your-server-ip:8000/sse

端口转发(如果需要)

如果在带有端口转发的VS代码服务器上运行:

# The server will be accessible at the forwarded URL
# Example: https://your-vscode-server.com/proxy/8000/sse

环境变量

创建一个 .env 配置文件:

HOST=0.0.0.0
PORT=8000

🔧 可用MCP功能

工具

  • add_note(title, content) -添加新注释
  • list_notes() -获取所有笔记
  • delete_note(title) -按标题删除注释

资源

  • note://internal/all -阅读所有笔记

提示

  • summarize_notes -生成摘要提示

🔌 连接客户

Python客户端

from mcp.client.sse import sse_client

async with sse_client("http://your-server:8000/sse") as (read, write):
    async with ClientSession(read, write) as session:
        await session.initialize()
        # Use the session...

克劳德桌面(SSE)

增添 claude_desktop_config.json:

{
  "mcpServers": {
    "notes": {
      "url": "http://your-server:8000/sse"
    }
  }
}

网页浏览器

SSE端点可以从JavaScript访问:

const eventSource = new EventSource('http://your-server:8000/sse');

🏥 健康检查

检查服务器是否正在运行:

curl http://localhost:8000/health

🔒 安全说明

对于生产部署:

  • 添加身份验证(API密钥、OAuth)
  • 使用HTTPS(TLS/SSL)
  • 如果需要,配置CORS
  • 添加速率限制
  • 对敏感配置使用环境变量

📊 建筑

[Client 1] ──┐
[Client 2] ──┼──> [SSE Server :8000] ──> [MCP Handler] ──> [Notes Storage]
[Client 3] ──┘

多个客户端可以同时连接到同一服务器实例。

🐛 故障排除

服务器无法启动

  • 检查端口8000是否可用: lsof -i :8000
  • 尝试其他端口:修改 server.py 带有 uvicorn.run(..., port=8001)

客户端无法连接

  • 验证服务器是否正在运行: curl http://localhost:8000/health
  • 检查防火墙设置
  • 确保客户端中的URL正确

注释不持久

  • 此版本使用内存存储
  • 服务器重新启动时笔记丢失
  • 为了持久性,添加数据库集成

🎓 为您的活动

此设置非常适合以下演示:

  • 多个与会者连接到一台服务器
  • 服务器在中央实验室机器上运行
  • 与会者可以从自己的设备访问
  • 您想显示实时协作