mcp-access-oauth
Сервер MCP (Model Context Protocol) + OAuth через Access
Это сервер Model Context Protocol (MCP), который поддерживает удалённые MCP-подключения со встроенной OAuth-аутентификацией через Access.
Вы можете развернуть его в собственном аккаунте Cloudflare, и после создания собственного OIDC-приложения Access for SaaS у вас будет полнофункциональный удалённый MCP-сервер, на основе которого можно строить свои решения. Пользователи смогут подключаться к вашему MCP-серверу, входя через ваш подключённый Identity Provider в 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, указав полученный KV ID
Разверните и протестируйте
Разверните MCP-сервер, чтобы он стал доступен в вашем домене workers.dev:
wrangler deploy
Протестируйте удалённый сервер с помощью Inspector:
npx @modelcontextprotocol/inspector@latestВведите https://mcp-access-oauth.<ваш-поддомен>.workers.dev/mcp и нажмите Connect. После прохождения процесса аутентификации вы увидите, что инструменты работают:
Теперь у вас развёрнут удалённый 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 использовать их. Например: "Could you use the math tool to add 23 and 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 и нажмите Connect. После прохождения подсказок вы сможете использовать "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-клиент.
Как это работает?
OAuth-провайдер
Библиотека OAuth Provider служит полноценной реализацией сервера OAuth 2.1 для Cloudflare Workers. Она берёт на себя все сложности OAuth-потока, включая выпуск токенов, их проверку и управление. В этом проекте она выполняет двойную роль:
Аутентифицирует MCP-клиентов, подключающихся к вашему серверу
Управляет подключением к OAuth-сервисам Access
Безопасно хранит токены и состояние аутентификации в хранилище KV
Durable MCP
Durable MCP расширяет базовую функциональность MCP с помощью Durable Objects от Cloudflare, предоставляя:
Постоянное управление состоянием для вашего MCP-сервера
Безопасное хранение контекста аутентификации между запросами
Доступ к информации об аутентифицированном пользователе через
this.propsПоддержку условной доступности инструментов в зависимости от identity пользователя
MCP Remote
Библиотека MCP Remote позволяет вашему серверу предоставлять инструменты, которые могут вызывать MCP-клиенты, такие как Inspector. Она:
Определяет протокол взаимодействия между клиентами и вашим сервером
Предоставляет структурированный способ определения инструментов
Обрабатывает сериализацию и десериализацию запросов и ответов
Поддерживает постоянное соединение Server-Sent Events (SSE) между клиентами и сервером
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Hosted remote MCP server for YNAB on Cloudflare Workers with OAuth
Cloudflare Workers MCP server: email-validator
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/vorticmateja/mcp-access-oauth'
If you have feedback or need assistance with the MCP directory API, please join our Discord server