mcp-access-oauth
模型上下文协议 (MCP) 服务器 + Access OAuth
这是一个模型上下文协议 (MCP) 服务器,支持远程 MCP 连接,并内置了 Access OAuth。
你可以将其部署到自己的 Cloudflare 账户中,创建自己的 Access for SaaS OIDC 应用后,就能获得一个功能完整的远程 MCP 服务器,并在此基础上进行开发。用户可以通过你连接的 Access 身份提供商登录,从而连接到你的 MCP 服务器。
该 MCP 服务器(由 Cloudflare Workers 提供支持):
作为 OAuth 服务器 服务于你的 MCP 客户端
作为 OAuth 客户端 服务于你的真实 OAuth 服务器(此处为 Access)
快速开始
克隆仓库并安装依赖:npm install
生产环境
创建一个新的 Access for SaaS OIDC 应用:
在授权回调 URL 中,指定
https://mcp-access-oauth.<your-subdomain>.workers.dev/callback以及本地开发时的http://localhost:8788/callback。记下你的客户端 ID 和客户端密钥。
通过 Wrangler 设置密钥。
wrangler secret put ACCESS_CLIENT_ID
wrangler secret put ACCESS_CLIENT_SECRET
wrangler secret put ACCESS_TOKEN_URL
wrangler secret put ACCESS_AUTHORIZATION_URL
wrangler secret put ACCESS_JWKS_URL
wrangler secret put COOKIE_ENCRYPTION_KEY # add any random string here e.g. openssl rand -hex 32设置 KV 命名空间
创建 KV 命名空间:
wrangler kv:namespace create "OAUTH_KV"使用 KV ID 更新 Wrangler 文件。
部署与测试
部署 MCP 服务器,使其在你的 workers.dev 域名下可用:
wrangler deploy
使用 Inspector 测试远程服务器:
npx @modelcontextprotocol/inspector@latest输入 https://mcp-access-oauth.<your-subdomain>.workers.dev/mcp 并点击连接。完成身份验证流程后,你将看到工具正常工作:
现在,你已经成功部署了一个远程 MCP 服务器!
访问控制
此 MCP 服务器使用 Access 进行身份验证。所有通过身份验证的 Access 用户都可以访问基本工具,例如 "add"。
"generateImage" 工具仅限于 ALLOWED_USERNAMES 配置中列出的特定 Access 用户使用:
// Add user emails for image generation access
const ALLOWED_EMAILS = new Set(["employee1@mycompany.com", "teammate1@mycompany.com"]);从 Claude Desktop 访问远程 MCP 服务器
打开 Claude Desktop,导航至 设置 -> 开发者 -> 编辑配置。这将打开控制 Claude 可以访问哪些 MCP 服务器的配置文件。
将内容替换为以下配置。重启 Claude Desktop 后,浏览器窗口将打开,显示你的 OAuth 登录页面。完成身份验证流程,授予 Claude 访问你的 MCP 服务器的权限。授权后,工具即可供你使用。
{
"mcpServers": {
"math": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp-access-oauth.<your-subdomain>.workers.dev/mcp"
]
}
}
}当工具(位于 🔨 下)出现在界面中后,你可以要求 Claude 使用它们。例如:"你能用数学工具计算 23 加 19 吗?"。Claude 应调用该工具并显示 MCP 服务器生成的结果。
本地开发
如果你想迭代并测试 MCP 服务器,可以在本地开发环境中进行。
在主页 URL 中,指定
http://localhost:8788在授权回调 URL 中,指定
http://localhost:8788/callback记下你的客户端 ID 并生成一个客户端密钥。
在项目根目录创建一个
.dev.vars文件,内容如下:
ACCESS_CLIENT_ID=<your client id>
ACCESS_CLIENT_SECRET=<your client secret>
ACCESS_TOKEN_URL=<your Access for SaaS token url>
ACCESS_AUTHORIZATION_URL=<your Access for SaaS authorization url>
ACCESS_JWKS_URL=<your Access for SaaS JWKS url>
COOKIE_ENCRYPTION_KEY=COOKIE_ENCRYPTION_KEY开发与测试
在本地运行服务器,使其在 http://localhost:8788 可用:
wrangler dev
要测试本地服务器,在 Inspector 中输入 http://localhost:8788/mcp 并点击连接。按照提示操作后,你将能够"列出工具"。
使用 Claude 及其他 MCP 客户端
当使用 Claude 连接远程 MCP 服务器时,你可能会看到一些错误信息。这是因为 Claude Desktop 尚不支持远程 MCP 服务器,有时会感到困惑。要验证 MCP 服务器是否已连接,请将鼠标悬停在 Claude 界面右下角的 🔨 图标上。你应该能看到你的工具可用。
使用 Cursor 及其他 MCP 客户端
要将 Cursor 连接到你的 MCP 服务器,请选择 类型:"命令",并在 命令 字段中将命令和参数合并为一个(例如 npx mcp-remote https://<your-worker-name>.<your-subdomain>.workers.dev/mcp)。
请注意,虽然 Cursor 支持 HTTP+SSE 服务器,但不支持身份验证,因此你仍需使用 mcp-remote(并且使用 STDIO 服务器,而非 HTTP 服务器)。
你可以将 MCP 服务器连接到其他 MCP 客户端(如 Windsurf),方法是打开客户端的配置文件,添加与 Claude 设置相同的 JSON,然后重启 MCP 客户端。
Related MCP server: MCP Access OAuth Server
工作原理
OAuth 提供者
OAuth 提供者库为 Cloudflare Workers 提供了完整的 OAuth 2.1 服务器实现。它处理 OAuth 流程的复杂性,包括令牌的颁发、验证和管理。在本项目中,它扮演双重角色:
对连接到服务器的 MCP 客户端进行身份验证
管理与 Access 的 OAuth 服务的连接
在 KV 存储中安全地存储令牌和身份验证状态
Durable MCP
Durable MCP 通过 Cloudflare 的 Durable Objects 扩展了基础 MCP 功能,提供:
MCP 服务器的持久状态管理
请求之间身份验证上下文的安全存储
通过
this.props访问已认证用户信息支持基于用户身份的条件工具可用性
MCP Remote
MCP Remote 库使你的服务器能够暴露工具,供 Inspector 等 MCP 客户端调用。它:
定义客户端与服务器之间的通信协议
提供定义工具的结构化方式
处理请求和响应的序列化与反序列化
维护客户端与服务器之间的服务器发送事件 (SSE) 连接
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceA reference MCP server for Cloudflare Workers that provides remote connection support with integrated GitHub OAuth authentication. It enables developers to build and deploy authenticated remote tools with user-specific access controls and persistent state management.
- Flicense-qualityCmaintenanceA Cloudflare Workers-based MCP server that enables secure remote connections using built-in OAuth authentication via Cloudflare Access. It provides identity-based access control for MCP tools and supports persistent state management through Durable Objects and SSE.
- Flicense-qualityDmaintenanceDeployable MCP server with Google OAuth for remote connections, enabling authenticated tool access via Cloudflare Workers.
- Flicense-qualityCmaintenanceRemote MCP server with built-in OAuth authentication via Cloudflare Access, enabling secure tool access and user identity-based restrictions.
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Cloudflare Workers MCP server: email-validator
Cloud-hosted MCP server for durable AI memory
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rodolfostoicus/mcp-access-oauth'
If you have feedback or need assistance with the MCP directory API, please join our Discord server