Skip to main content
Glama
vorticmateja

mcp-access-oauth

by vorticmateja

Сервер 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) между клиентами и сервером

-
license - not tested
-
quality - not tested
C
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 Connectors

View all MCP Connectors

Latest Blog Posts

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