MCP服务器JWT认证版
一个模型上下文协议服务器,通过SSE传输暴露多个AI工具,并采用基于JWT的安全认证,允许动态工具注册和会话管理。
服务介绍
🔐 基于 JWT 认证的 SSE MCP 服务器
这是一个使用基于 JWT 认证的 模型上下文协议 (MCP) SSE 服务器。
它允许您通过 SSE 传输方式暴露多个 AI 工具,并通过安全的 Bearer Token 流进行保护。
构建工具:
- 🚀 Node.js + Express
- 🧩 @modelcontextprotocol/sdk
- 🔒 JSON Web Tokens (JWT) 用于认证
- ⚙️ Zod 用于输入验证
✅ 完全测试通过
@modelcontextprotocol/inspector
📂 项目结构
server/
├── index.ts # Main Express + MCP server
├── .env # Environment variables
├── package.json # Project metadata & scripts
├── tsconfig.json # TypeScript config
└── README.md # You are here!
✨ 功能
- ✅ 使用 Bearer JWT 令牌的安全 SSE 连接
- ✅ 动态工具注册(回声、时间、随机数等)
- ✅ 经过 MCP Inspector 测试
- ✅ 记录所有请求生命周期事件
- ✅ /message 端点的会话管理
- 🚀 准备好扩展到生产环境
⚙️ 设置
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
🧪 使用 MCP Inspector 测试服务器
第一步 — 安装 MCP Inspector
📖 官方文档: MCP Inspector
npx @modelcontextprotocol/inspector
第二步 — 生成令牌
使用 cURL 获取您的 JWT 令牌:
curl "http://localhost:3001/auth/token?username=aniket&scope=mcp:access"
✅ 示例响应:
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
第三步 — 连接 MCP Inspector
- 打开 Inspector UI
- 设置传输类型:SSE
- URL:
http://localhost:3001/sse - 添加授权头:
Authorization: Bearer <your-token> - 点击 连接
🎉 成功!您的服务器现已连接。
第四步 — 测试工具
转到 Inspector 中的 工具 标签页并点击 列出工具。
您将看到:
- ✅
test - ✅
echo - ✅
get-time - ✅
random-number
测试它们并享受!
📖 API 参考
🔑 生成令牌
GET /auth/token?username=<username>&scope=mcp:access
🔌 SSE 端点(需要令牌)
GET /sse
Authorization: Bearer <token>
📩 向活动会话发送消息
POST /message?sessionId=<sessionId>
Authorization: Bearer <token>
🧩 工具参考
| 工具名称 | 描述 |
|---|---|
test |
测试连接(安全性检查) |
echo |
回显提供的消息 |
get-time |
返回当前服务器时间 |
random-number |
返回随机数(最小值/最大值) |
🗓️ 即将到来的变更
- 令牌撤销列表(黑名单)
- 基于角色的工具访问(范围检查)
- 会话心跳/保持活动
- 速率限制与日志记录
- 部署的 Docker 化
📚 有用的资源
👨💻 维护者
Aniket
📄 许可证
该项目是开源且免费使用的。