Skip to main content
Glama
codezerowork

mcp-oauth2-token-provider

by codezerowork

mcp-oauth2-token-provider

Универсальный MCP-сервер (Model Context Protocol), который выступает в роли аутентифицированного прокси между AI IDE и удалёнными MCP-эндпоинтами. Обрабатывает генерацию токенов OAuth2 client_credentials внутри себя и прозрачно внедряет bearer-токены во все проксируемые запросы.

Возможности

  • Прозрачный OAuth2-прокси — получает, кэширует и автоматически обновляет токены

  • Динамическое обнаружение инструментов — без жёстко заданных схем инструментов; обнаруживает инструменты с удалённого MCP-эндпоинта

  • Автоповтор при 401 — если токен истёк в середине сессии, обновляет его и повторяет запрос один раз

  • Проверка работоспособности при запуске — проверяет доступность удалённого MCP до подключения; при сбое быстро завершает работу с понятным сообщением об ошибке

  • Персистентность токенов — сохраняет токены на диск в ~/.oauth2-token-provider/token.json, чтобы переживать перезапуски процесса

  • Ноль конфигурации в коде — все настройки через переменные окружения

  • Поддержка SSE и JSON-ответов — обрабатывает как Streamable HTTP, так и обычный JSON-RPC от удалённого сервера

Related MCP server: MCP OAuth Proxy

Установка

npx mcp-oauth2-token-provider

Или установите глобально:

npm install -g mcp-oauth2-token-provider

Использование с Kiro / VS Code MCP

Добавьте в .kiro/settings/mcp.json (или аналогичный файл):

{
  "mcpServers": {
    "my-remote-server": {
      "command": "npx",
      "args": ["mcp-oauth2-token-provider"],
      "env": {
        "REMOTE_MCP_URL": "https://your-server.com/mcp",
        "OAUTH2_TOKEN_URL": "https://your-sso.com/token.oauth2",
        "OAUTH2_CLIENT_ID": "your-client-id",
        "OAUTH2_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

Переменные окружения

Переменная

Обязательно

Описание

REMOTE_MCP_URL

Да

URL удалённого MCP-эндпоинта для проксирования

OAUTH2_TOKEN_URL

Да

Эндпоинт токена OAuth2 (грант client_credentials)

OAUTH2_CLIENT_ID

Да

Идентификатор клиента OAuth2

OAUTH2_CLIENT_SECRET

Да

Секрет клиента OAuth2

OAUTH2_BASIC_USERNAME

Нет

Имя пользователя для Basic-аутентификации (для SSO с двойными учётными данными)

OAUTH2_BASIC_PASSWORD

Нет

Пароль для Basic-аутентификации (для SSO с двойными учётными данными)

Как это работает

AI IDE ←stdio→ [mcp-oauth2-token-provider] ←HTTP+Bearer→ [Remote MCP Server]
                         │
                         ├─ Acquires OAuth2 token (client_credentials)
                         ├─ Caches in memory + ~/.oauth2-token-provider/token.json
                         ├─ Injects Bearer header on every request
                         ├─ Auto-refreshes on expiry (60s safety margin)
                         └─ Retries once on 401 with fresh token
  1. При запуске проверяет доступность удалённого MCP-эндпоинта (отправляет MCP initialize)

  2. Если удалённый сервер недоступен, завершает работу с ошибкой (IDE показывает статус «Сбой»)

  3. Если всё в порядке, подключается к IDE через stdio и обнаруживает инструменты с удалённого сервера

  4. Все вызовы инструментов прозрачно проксируются с bearer-токеном

Кэширование токенов

Токены кэшируются на двух уровнях:

  • В памяти — самый быстрый, теряется при перезапуске процесса

  • На диске — ~/.oauth2-token-provider/token.json, переживает перезапуски

Токен обновляется, когда:

  • До его истечения осталось менее 60 секунд

  • Получен ответ 401 от удалённого сервера

SSO с двойными учётными данными (необязательно)

Некоторые SSO-провайдеры требуют оба варианта:

  • client_id + client_secret в теле запроса

  • Заголовок Basic Auth с учётными данными сервисного аккаунта

Установите OAUTH2_BASIC_USERNAME и OAUTH2_BASIC_PASSWORD, чтобы включить этот режим.

Лицензия

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Proxies MCP requests from Cursor IDE to a custom HTTP server, enabling custom tool integrations.
    8 npm
    1
    ISC
  • A
    license
    Not graded
    quality
    D
    maintenance
    Acts as a secure OAuth 2.0/2.1 proxy gateway for MCP servers, enabling integration with Claude and ChatGPT platforms.
    20 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides a Streamable HTTP MCP proxy for VS Code Copilot and Claude Code, using JWT client assertion to securely access NetSuite APIs.
    MIT