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 filesdynamic 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。
- 定期轮换机密。
