article
README
🚀 🔐 SSE MCP 服务器带 JWT 认证
这是一个基于 JWT 认证的模型上下文协议(MCP)SSE 服务器。它允许您通过安全的 Bearer 令牌流,在 SSE 传输上暴露多个 AI 工具,为您的应用提供安全、高效的服务。
🚀 快速开始
本服务器使用 Node.js 和 Express 构建,结合了 JWT 认证和 Zod 输入验证,为您提供安全可靠的服务。以下是启动服务器的详细步骤:
1. 克隆仓库
git clone https://github.com/anisirji/mcp-server-remote-setup-with-jwt-auth.git
cd mcp-server-remote-setup-with-jwt-auth
2. 安装依赖项
npm install
3. 创建.env文件
echo "JWT_SECRET=your-secret-key" > .env
4. 启动服务器
npm run dev
✅ 服务器将在以下地址运行:
http://localhost:3001/sse
✨ 主要特性
- ✅ 使用 Bearer JWT 令牌的安全 SSE 连接,保障数据传输安全。
- ✅ 动态工具注册(回声、时间、随机数等),满足多样化需求。
- ✅ 已通过 MCP Inspector 测试,确保服务稳定性。
- ✅ 记录所有请求生命周期事件,便于问题排查。
- ✅ /message 端点的会话管理,优化用户体验。
- 🚀 准备用于生产环境扩展,具备高可扩展性。
📦 安装指南
克隆仓库
git clone https://github.com/anisirji/mcp-server-remote-setup-with-jwt-auth.git
cd mcp-server-remote-setup-with-jwt-auth
安装依赖
npm install
配置环境变量
echo "JWT_SECRET=your-secret-key" > .env
启动服务器
npm run dev
💻 使用示例
使用 MCP Inspector 测试服务器
步骤 1 — 安装 MCP Inspector
📖 官方文档:MCP Inspector
npx @modelcontextprotocol/inspector
步骤 2 — 生成令牌
使用 cURL 获取您的 JWT 令牌:
curl "http://localhost:3001/auth/token?username=aniket&scope=mcp:access"
✅ 示例响应:
{
"token": "your-jwt-token-here",
"expiresIn": 3600
}
步骤 3 — 使用 MCP Inspector 连接
打开 MCP Inspector,输入以下地址并点击“Connect”:
ws://localhost:3001/ws
📚 详细文档
API 参考
接口列表
-
获取令牌
- URL:
http://localhost:3001/auth/token - 参数:
username(必填): 用户名scope(可选,默认为mcp:access): 权限范围
- 返回:
token: JWT 令牌expiresIn: 令牌过期时间(秒)
- URL:
-
SSE 接收消息
- URL:
http://localhost:3001/sse - 头部:
Authorization:Bearer <JWT_TOKEN>
- 支持事件类型:
message,notification
- URL:
工具参考
| 工具名称 | 描述 |
|----------|------|
| mcp-server | MCP 服务器核心模块,处理 SSE 连接和工具注册。 |
| auth-service | 负责 JWT 令牌的生成与验证服务。 |
🔧 技术细节
项目结构
server/
├── index.ts # 主 Express 和 MCP 服务器
├── .env # 环境变量文件
├── package.json # 项目元数据及脚本
├── tsconfig.json # TypeScript 配置
└── README.md # 您在此处!
使用技术栈
- 🚀 Node.js + Express
- 🧩 @modelcontextprotocol/sdk
- 🔒 JSON 网络令牌 (JWT) 进行认证
- ⚙️ Zod 用于输入验证
🚀 未来计划
- 完善文档:添加更多 API 接口文档和使用说明,方便开发者使用。
- 增加日志:记录关键操作的日志以便调试和监控,提升系统可维护性。
- 优化性能:通过负载均衡和集群提升服务器性能,确保高并发场景下的稳定运行。
- 扩展功能:支持更多 MCP 协议的特性,如事件订阅和取消,满足更多业务需求。
📄 资源
🤝 维护者
- 维护者姓名
电子邮箱:your.email@example.com
📄 许可证
本项目是开源的,您可以自由使用。
微信扫一扫