使用说明
使用OAuth 2.0的MCP服务器
具有Microsoft Azure OAuth身份验证的安全模型上下文协议(MCP)服务器,具有模块化架构和全面的日志匿名化。
特性
- OAuth 2.0身份验证 -Microsoft Azure/MS365与PKCE支持的集成
- MCP协议支持 -与Claude Desktop和其他MCP客户端兼容
- 模块化架构 -可维护性关注点的清晰分离
- 安全日志记录 -敏感数据(令牌、秘密、租户ID)的自动匿名化
- 可选Redis存储 -自动回退到内存中进行开发
- 生产就绪 -环境验证、优雅关机、安全标头
快速开始
先决条件
- Node.js 18+
- Microsoft Azure应用程序注册
安装
git clone <repository-url>
cd mcp-server
npm install
环境变量
创建一个 .env 文件:
# Required
MS_CLIENT_ID=your-azure-client-id
MS_CLIENT_SECRET=your-azure-client-secret
MS_TENANT=your-azure-tenant-id
SESSION_SECRET=your-random-session-secret
REDIRECT_URI=http://localhost:3131/auth/callback
# Optional
REDIS_URL=redis://localhost:6379
PORT=3131
NODE_ENV=development
发展
npm run dev # Start with hot reload
npm run build # Build TypeScript
npm start # Production mode
用法
浏览器访问
- 引导到
http://localhost:3131 - 点击“使用MS365登录”
- 完成Microsoft身份验证
- 访问受保护的端点
MCP客户端集成
{
"mcpServers": {
"secure-mcp": {
"command": "node",
"args": ["/path/to/mcp-server/dist/server.js"],
"env": {
"MS_CLIENT_ID": "your-client-id",
"MS_CLIENT_SECRET": "your-client-secret",
"SESSION_SECRET": "your-session-secret",
"REDIRECT_URI": "http://localhost:3131/auth/callback"
}
}
}
}
API终点
GET /-具有身份验证状态的登录页面GET /health-健康检查(公众)GET /login-启动OAuth流GET /logout-销毁会话GET /status-用户状态(受保护)POST /v1/mcp-MCP协议端点(受保护)GET /v1/mcp-MCP SSE端点(受保护)
OAuth 2.0授权服务器
用于MCP客户端身份验证的内置OAuth服务器:
GET /authorize-授权端点POST /token-令牌交换端点GET /.well-known/oauth-authorization-server-发现元数据
建筑
src/
├── server.ts # Main Express application
├── auth/
│ ├── oauth.ts # OAuth 2.0 authorization server
│ └── middleware.ts # Authentication middleware
├── mcp/
│ └── server.ts # MCP server factory and management
├── storage/
│ └── tokens.ts # Token storage (Redis optional)
├── utils/
│ └── logger.ts # Secure logging with anonymization
└── views/
└── index.html # HTML template
安全功能
- 关键匿名 -日志中的所有敏感数据都会自动屏蔽
- 环境验证 -缺少所需配置时快速失败
- 安全会话 -具有CSRF保护的仅限HTTP的Cookie
- PKCE支持 -用于增强安全性的代码交换证明密钥
- 安全标头 -Helmet.js用于全面的安全标头
生产部署
- 集
NODE_ENV=production - 配置
REDIS_URL用于令牌存储 - 使用HTTPS
REDIRECT_URI - 设置安全会话配置
- 监控安全事件日志
贡献
看 建筑.md 获取详细的技术文档。
许可证
国际协调委员会
