mcpField
🔐
🔐 SSE MCP Server with JWT Authentication

🔐 SSE MCP Server with JWT Authentication

本地服务
github.com/anisirji开发工具479 周前更新

关于 🔐 SSE MCP Server with JWT Authentication

这是一个基于 Node.js 和 Express 的 MCP 服务,通过 SSE 提供工具,并要求 JWT Bearer 身份验证。适用于需要受认证保护的工具访问场景,支持动态注册、请求生命周期日志和会话处理。

主要功能

  1. 01通过 SSE 和 JWT Bearer 认证
  2. 02动态注册工具
  3. 03使用 Zod 验证输入
  4. 04记录请求生命周期事件
  5. 05管理消息端点会话
  6. 06提供回显、时间和随机数工具

适用场景

  1. 01通过受认证的 SSE 端点提供工具
  2. 02使用 Bearer 令牌连接 MCP 客户端
  3. 03用 MCP Inspector 测试工具

MCP 相关

该服务通过 SSE 向 MCP 客户端提供工具,并使用 JWT Bearer 令牌保护连接和消息端点。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"remote-setup-with-jwt-auth": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/inspector"
]
}
}
}
启动命令npx -y @modelcontextprotocol/inspector

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@modelcontextprotocol/inspector

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MseeP.ai 安全评估徽章

🔐 带 JWT 身份验证的 SSE MCP 服务

这是一个采用基于 JWT 的身份验证的 Model Context Protocol (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 token 建立安全的 SSE 连接
  • ✅ 动态注册工具(echo、时间、随机数等)
  • ✅ 已通过 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 测试服务

步骤 1 — 安装 MCP Inspector

📖 官方文档:MCP Inspector

npx @modelcontextprotocol/inspector
步骤 2 — 生成 token

使用 cURL 获取 JWT token:

curl "http://localhost:3001/auth/token?username=aniket&scope=mcp:access"

✅ 示例响应:

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
步骤 3 — 连接 MCP Inspector
  1. 打开 Inspector UI
  2. 设置传输类型:SSE
  3. URL:
    http://localhost:3001/sse
    
  4. 添加 Authorization Header:
    Authorization: Bearer <your-token>
    
  5. 点击 Connect

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

步骤 4 — 测试工具

前往 Inspector 中的 Tools 标签页,然后点击 List Tools。

你将看到:

  • ✅ test
  • ✅ echo
  • ✅ get-time
  • ✅ random-number

试用这些工具,尽情体验!

📖 API 参考

🔑 生成 Token
GET /auth/token?username=<username>&scope=mcp:access
🔌 SSE 端点(需要 token)
GET /sse
Authorization: Bearer <token>
📩 向活动会话发送消息
POST /message?sessionId=<sessionId>
Authorization: Bearer <token>

🧩 工具参考

工具名称描述
test测试连接(安全检查)
echo回显提供的消息
get-time返回当前服务时间
random-number返回随机数(最小值/最大值)

🗓️ 即将推出的变更

  • Token 撤销列表(黑名单)
  • 基于角色的工具访问控制(范围检查)
  • 会话心跳 / 保持活动
  • 速率限制与日志记录
  • 使用 Docker 部署

📚 有用的资源

👨‍💻 维护者

Aniket

📄 许可证

此项目为开源项目,可免费使用。

🚀 构建。保护。赋能。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。