M

MCP服务器JWT认证版

@anisirji/mcp-server-remote-setup-with-jwt-auth
0 Stars 22 次浏览 anisirji 更新于 2026-08-23

一个模型上下文协议服务器,通过SSE传输暴露多个AI工具,并采用基于JWT的安全认证,允许动态工具注册和会话管理。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

🔐 基于 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

  1. 打开 Inspector UI
  2. 设置传输类型:SSE
  3. URL:
    http://localhost:3001/sse
    
  4. 添加授权头:
    Authorization: Bearer <your-token>
    
  5. 点击 连接

🎉 成功!您的服务器现已连接。

第四步 — 测试工具

转到 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

📄 许可证

该项目是开源且免费使用的。

🚀 构建。安全。赋能。