Skip to content

feat: 支持 Bearer Token 认证配置#94

Merged
cso1z merged 1 commit into
cso1z:mainfrom
chung1912:feature/bearer-auth
May 11, 2026
Merged

feat: 支持 Bearer Token 认证配置#94
cso1z merged 1 commit into
cso1z:mainfrom
chung1912:feature/bearer-auth

Conversation

@chung1912

Copy link
Copy Markdown
Contributor

feat: 支持 Bearer Token 认证配置

功能概述

新增 MCP_BEARER_TOKEN 环境变量,支持对 HTTP/SSE/StreamableHTTP 端点配置 Bearer Token 认证,适用于公网部署场景防止未授权访问。

变更详情

  • 环境变量:新增 MCP_BEARER_TOKEN,未设置时不启用认证(向后兼容)
  • 命令行参数:新增 --bearer-token
  • 认证请求头Authorization: Bearer <token>(RFC 6750,前缀大小写不敏感)
  • 覆盖端点/mcp/sse/messages
  • 配置读取:trim 去除空白字符,stripQuotes 去除 Docker 环境变量中可能的引号包裹
  • 认证失败响应:缺少头 → 401,格式错误 → 401,token 不匹配 → 403

修改文件

  • .env.example — 新增 MCP_BEARER_TOKEN 说明
  • src/utils/config.ts — ServerConfig 新增 bearerToken 字段、stripQuotes 方法
  • src/server.ts — 新增 bearerAuthMiddleware 中间件
  • README.md — 环境变量表格和 Bearer 认证配置示例
  • docker-compose.yaml — 新增 MCP_BEARER_TOKEN 环境变量传递

- 新增 MCP_BEARER_TOKEN 环境变量,支持对 HTTP/SSE/StreamableHTTP 端点配置 Bearer Token 认证
- 认证请求头格式: Authorization: Bearer <token>(RFC 6750,前缀大小写不敏感)
- 在 ServerConfig 中添加 bearerToken 字段,支持环境变量和命令行参数 --bearer-token
- 配置读取时 trim 去除空白字符,stripQuotes 去除 Docker 环境变量中可能的引号包裹
- 在 server.ts 中添加 bearerAuthMiddleware 中间件,覆盖 /mcp、/sse、/messages 端点
- 更新 .env.example、README.md、docker-compose.yaml 文档
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants