SSE兼容服务器

一个基于FastAPI和官方mcp[server]库构建的SSE兼容服务器,提供ping和time两个演示工具,适用于开发者模式集成和API监控。

  • by NexorAgent
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 NexorAgent/SENTRA-MCP-

使用说明

Sentra-MCP(注:此词可能为特定领域或品牌名称,直接翻译为“森特拉-MCP”或根据上下文可能有更具体的含义)

使用FastAPI和官方库构建的最小MCP服务器 mcp[server]. 它展示了一个兼容ChatGPT开发者模式的SSE(Server-Sent Events)流,并提供了两个演示工具(ping, time)。

特点

  • 服务器 FastMCP (SSE) 在 FastAPI 中实现 (/sse 在同一路径上使用GET + POST JSON-RPC)。
  • 健康检查 REST(接口) GET /health 用于监督。
  • 两个MCP工具:
    • ping → {"message": "pong"}
    • time → {"utc": "<timestamp ISO-8601>"}
  • 通过配置进行 .env (服务名称、指令、SSE路径、端口、日志级别)。
  • 基于的Dockerfile python:3.12-slim 以及使用docker-compose进行编排(端口 8400)。

存款结构

  • mcp/ – 应用程序包(配置 + FastAPI/MCP 应用)。
  • docker/ – 容器化工件(Dockerfile, Caddyfile)。
  • docker-compose.yml – stack API + 可选代理。
  • .env.example – 环境规格。
  • requirements.txt – Python 依赖项。

本地启动

  1. 准备虚拟环境并安装依赖项:
    python -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    
  2. 复制 .env.example 向(某处);朝着(某方向) .env 如有需要,进行调整。
  3. 启动服务器:
    uvicorn mcp.main:app --host 0.0.0.0 --port 8400 --reload
    
  4. 检查健康状况:
    curl -fsSL http://localhost:8400/health
    
  5. 测试MCP SSE流量(手动示例):
    # 1) Ouvrir une connexion SSE et récupérer le point de POST retourné (event "endpoint")
    curl -N http://localhost:8400/sse
    # 2) Dans un autre terminal, envoyer un appel JSON-RPC vers le point retourné
    curl -fsSL -X POST "http://localhost:8400/sse?session_id=<ID>" \
      -H 'Content-Type: application/json' \
      --data '{"jsonrpc":"2.0","id":"1","method":"call_tool","params":{"name":"time","arguments":{}}}'
    

Docker & Compose(注:此处“&”通常表示“和”的意思,但在此上下文中,若作为标题或专有名词,可直接译为“Docker 和 Compose”,无需添加“和”字,因为中文表达中有时会省略连接词以保持简洁)

cp .env.example .env
# Démarrer l’API (et Caddy si besoin d’un reverse proxy HTTPS)
docker compose up --build
  • MCP API 监听在 http://localhost:8400。
  • 激活配置文件 reverse-proxy 如果您希望使用Caddy管理的HTTPS: docker compose --profile reverse-proxy up -d。

监控与重启

Le docker-compose.yml 执行健康检查(/health) 每30秒以及 restart: unless-stopped.

验证(本地或VPS)

  1. docker compose up --build 或者在您的VPS上部署该镜像。
  2. 查看日志: docker compose logs -f api。
  3. 检查:
    curl -fsSL http://<hote>:8400/health
    curl -N http://<hote>:8400/sse      # récupérer l’event endpoint
    curl -fsSL -X POST "http://<hote>:8400/sse?session_id=<ID>" \
      -H 'Content-Type: application/json' \
      --data '{"jsonrpc":"2.0","id":"1","method":"call_tool","params":{"name":"ping","arguments":{}}}'
    
  4. docker ps 以确认仅MCP服务对外暴露。
  5. 监控负载(htop, docker stats)。

集成ChatGPT开发者模式

  1. 发布服务的HTTPS URL(反向代理/Caddy/Cloudflare Tunnel)。
  2. 验证TLS证书。
  3. 在ChatGPT中→ 连接器 → 开发者模式,声明MCP的URL(点 /sse)。
  4. 验证工具 ping 和 time 出现并作出回应。

VPS 准备(提醒)

  • 盘点CPU/内存/硬盘: lscpu, free -h, df -h /。
  • 清理 Dockerdocker container/image/volume/system prune)。
  • 切断冲突服务(sudo ss -tulpn | grep ':8400')。
  • 更新机器(sudo apt update && sudo apt upgrade -y)。
  • 重新检查OVH防火墙+ ufw / nftables 以限制允许的IP地址。

发展轨迹

  • 添加丰富工具(git.commit_push, files.write, n8n.trigger, doc.index, doc.query。..).
  • 本地RAG(嵌入CPU + Chroma/FAISS)。
  • 身份验证(OAuth/Bearer)、基于角色的访问控制(RBAC)、配额、Prometheus指标。
  • 网络加固(速率限制、Web应用防火墙、内部mTLS)。
  • 基础设施供应(Terraform + Ansible)和可观测性。