轻量级MCP服务器模块

一个带有JWT保护的轻量级MCP服务器模块,设计用于安全地处理长寿命的SSE连接。

  • by ChiefGuapo
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ChiefGuapo/easy-secure-mcp

使用说明

mcpserver

一个具有JWT保护的轻量级MCP服务器模块,旨在与长期SSE(服务器发送事件)连接安全工作。

此模块公开:

  • 健康终点
  • 令牌铸造端点(API密钥→ JWT)
  • MCP SSE端点(受JWT保护)

它还包括一个CLI测试工具,用于验证连接、令牌发放、工具列表(通过FastMCP客户端包装器)和负面身份验证行为。


这里有什么

主服务器

  • server.py

责任:

  • 创建并运行FastAPI应用程序
  • 添加 JWTAuthASGIMiddleware 在不中断SSE的情况下保护MCP SSE流量
  • 显示路线:
    • GET /health
    • POST /auth/token
    • /sse (MCP传输)

测试线束

  • test_mcp.py

责任:

  • 测试服务器是否可访问
  • 通过以下方式制作JWT /auth/token
  • 运行否定身份验证测试(应正常失败)
  • 列出使用异步MCP客户端包装器的MCP工具:

工具和实用程序

  • included some example tool files
  • dynamic tool loader in utils/tool_loader.py

需求

  • Python 3.10+推荐
  • 此模块使用的依赖关系通常包括:
    • fastapi
    • uvicorn
    • pyyaml
    • requests
    • JWT图书馆(通常 python-jose 或 pyjwt,具体取决于您的实施方式)

使用项目的现有方法(pip/poetry/uv)安装依赖项。


运行服务器

python server.py

运行测试脚本

python test_mcp.py --host 192.168.1.159 --api-key "CHANGE_ME_TOKEN_API_KEY"  --all

端点摘要

  • GET/健康→ 服务健康
  • POST/auth/令牌→ 使用API密钥铸造JWT
  • /sse → MCP SSE传输(需要JWT)

安全说明

  • 将TOKEN_API_KEY和JWT机密视为敏感机密。
  • 不要在生产中记录原始JWT。
  • 定期轮换机密。