使用说明
MCP认证网关
OAuth为Cloudflare Workers保护MCP网关。使用Cloudflare Access为本地未经身份验证的MCP服务器提供身份验证和授权。
概述
此Worker充当支持OAuth的网关,它:
- 通过Cloudflare Access(OIDC)对用户进行身份验证
- 代理通过Cloudflare隧道向后端服务器发送经过身份验证的MCP请求
- 防止使用Service Auth令牌直接访问源端点
设置
先决条件
- 启用Workers的Cloudflare帐户
- Cloudflare Tunnel已配置并路由到您的LAN MCP服务器
- Node.js 18+和npm
安装
npm install
配置
-
更新wrangler.toml 对于您的部署:
- 集
name到paperless-mcp-gateway或things-mcp-gateway - 配置
routes对于您的自定义域 - 集
ORIGIN_MCP_URL到您的后端源URL
- 集
-
设置所需的机密 通过Wrangler CLI:
# OAuth configuration from Cloudflare Access SaaS app
wrangler secret put ACCESS_CLIENT_ID
wrangler secret put ACCESS_CLIENT_SECRET
wrangler secret put ACCESS_AUTHORIZATION_URL
wrangler secret put ACCESS_TOKEN_URL
wrangler secret put ACCESS_JWKS_URL
# Session encryption
wrangler secret put COOKIE_ENCRYPTION_KEY # 32+ random characters
# Origin service token from Cloudflare Access self-hosted app
wrangler secret put CF_ACCESS_CLIENT_ID
wrangler secret put CF_ACCESS_CLIENT_SECRET
发展
# Run locally
npm run dev
# Type check
npx tsc --noEmit
# View logs
npm run tail
部署
# Deploy to Cloudflare
npm run deploy
# Deploy specific backend
npm run deploy:paperless
npm run deploy:things
建筑
看 规格.md 了解完整的架构文档和实现细节。
路线
/mcp-MCP端点(在OAuth之后代理到后端)/authorize-OAuth授权/callback-OAuth回调/token-OAuth令牌交换/register-OAuth动态客户端注册/.well-known/oauth-authorization-server-OAuth发现
安全
- 所有机密均通过Wrangler CLI管理(从不在源代码管理中)
- 服务身份验证令牌阻止直接访问源端点
- 所有MCP访问都需要OAuth
- 会话使用HttpOnly、安全、SameSite Cookie
故障排除
请参阅中的故障排除指南部分 规格.md 常见问题和解决方案。
