mcp-access-oauth
Сервер Model Context Protocol (MCP) + Access OAuth
Это сервер Model Context Protocol (MCP), поддерживающий удалённые MCP-подключения со встроенной аутентификацией Access OAuth.
Вы можете развернуть его в своей учётной записи Cloudflare, и после создания собственного OIDC-приложения Access for SaaS у вас будет полнофункциональный удалённый MCP-сервер, который можно дорабатывать. Пользователи смогут подключаться к вашему MCP-серверу, входя в систему через подключённого поставщика удостоверений Access.
MCP-сервер (работающий на базе Cloudflare Workers):
Выступает в роли OAuth-сервера для ваших MCP-клиентов
Выступает в роли OAuth-клиента для вашего настоящего OAuth-сервера (в данном случае — Access)
Начало работы
Клонируйте репозиторий и установите зависимости: npm install
Для продакшена
Создайте новое OIDC-приложение Access for SaaS:
В поле URL обратного вызова авторизации укажите
https://mcp-access-oauth.<ваш-поддомен>.workers.dev/callbackиhttp://localhost:8788/callback(если разрабатываете локально).Запомните ваш Client ID и Client secret.
Установите секреты через 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"Обновите файл Wrangler, указав ID KV
Развёртывание и тестирование
Разверните MCP-сервер, чтобы он стал доступен в вашем домене workers.dev:
wrangler deploy
Протестируйте удалённый сервер с помощью Inspector:
npx @modelcontextprotocol/inspector@latestВведите https://mcp-access-oauth.<ваш-поддомен>.workers.dev/mcp и нажмите «Подключиться». После прохождения аутентификации вы увидите работающие инструменты:
Теперь у вас развёрнут удалённый MCP-сервер!
Управление доступом
Этот MCP-сервер использует Access для аутентификации. Все аутентифицированные пользователи Access могут использовать базовые инструменты, например «add».
Инструмент «generateImage» ограничен для определённых пользователей Access, перечисленных в конфигурации ALLOWED_USERNAMES:
// Add user emails for image generation access
const ALLOWED_EMAILS = new Set(["employee1@mycompany.com", "teammate1@mycompany.com"]);Подключение удалённого MCP-сервера к Claude Desktop
Откройте Claude Desktop и перейдите в Settings -> Developer -> Edit Config. Откроется файл конфигурации, управляющий тем, к каким MCP-серверам может обращаться Claude.
Замените содержимое следующей конфигурацией. После перезапуска 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Запомните ваш Client ID и сгенерируйте Client secret.
Создайте файл
.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
Чтобы протестировать локальный сервер, введите http://localhost:8788/mcp в Inspector и нажмите «Подключиться». После выполнения инструкций вы сможете «List Tools».
Использование Claude и других MCP-клиентов
При подключении Claude к вашему удалённому MCP-серверу могут появляться сообщения об ошибках. Это связано с тем, что Claude Desktop пока не поддерживает удалённые MCP-серверы, поэтому иногда он путается. Чтобы проверить, подключён ли MCP-сервер, наведите курсор на значок 🔨 в правом нижнем углу интерфейса Claude. Вы должны увидеть доступные инструменты.
Использование Cursor и других MCP-клиентов
Чтобы подключить Cursor к вашему MCP-серверу, выберите Type: «Command» и в поле Command объедините команду и аргументы в одну строку (например, npx mcp-remote https://<имя-вашего-воркера>.<ваш-поддомен>.workers.dev/mcp).
Обратите внимание: хотя Cursor поддерживает серверы HTTP+SSE, он не поддерживает аутентификацию, поэтому вам всё равно нужно использовать mcp-remote (и использовать STDIO-сервер, а не HTTP).
Вы можете подключить свой MCP-сервер к другим MCP-клиентам, например Windsurf, открыв файл конфигурации клиента, добавив тот же JSON, который использовался для настройки Claude, и перезапустив MCP-клиент.
Related MCP server: cloudflare-mcp-google-auth
Как это работает?
OAuth-провайдер
Библиотека OAuth Provider представляет собой полноценную реализацию сервера OAuth 2.1 для Cloudflare Workers. Она берёт на себя все сложности OAuth-потока, включая выпуск, проверку и управление токенами. В этом проекте она выполняет двойную роль:
Аутентификация MCP-клиентов, подключающихся к вашему серверу
Управление подключением к OAuth-сервисам Access
Безопасное хранение токенов и состояния аутентификации в KV-хранилище
Durable MCP
Durable MCP расширяет базовую функциональность MCP с помощью Durable Objects от Cloudflare, обеспечивая:
Постоянное управление состоянием вашего MCP-сервера
Безопасное хранение контекста аутентификации между запросами
Доступ к информации об аутентифицированном пользователе через
this.propsПоддержку условной доступности инструментов в зависимости от личности пользователя
MCP Remote
Библиотека MCP Remote позволяет вашему серверу предоставлять инструменты, которые могут вызывать MCP-клиенты, такие как Inspector. Она:
Определяет протокол связи между клиентами и вашим сервером
Предоставляет структурированный способ определения инструментов
Обрабатывает сериализацию и десериализацию запросов и ответов
Поддерживает соединение Server-Sent Events (SSE) между клиентами и вашим сервером
This server cannot be deployed
Maintenance
Related MCP Connectors
Cloudflare Workers MCP server: ai-guardrails
Cloudflare Workers MCP server: ai-gateway
Cloudflare Workers MCP server: ai-model-router
Cloudflare Workers MCP server: blog
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceA 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.-
- FlicenseNot gradedqualityDmaintenanceDeployable MCP server with Google OAuth for remote connections, enabling authenticated tool access via Cloudflare Workers.-
- FlicenseNot gradedqualityCmaintenanceRemote MCP server with built-in OAuth authentication via Cloudflare Access, enabling secure tool access and user identity-based restrictions.-
- FlicenseNot gradedqualityCmaintenanceA remote MCP server with built-in OAuth authentication via Cloudflare Access, providing tools like add and generateImage with user-based access control.-