Skip to main content
Glama
codezerowork

mcp-oauth2-token-provider

by codezerowork

mcp-oauth2-token-provider

AI IDE와 원격 MCP 엔드포인트 간의 인증 프록시 역할을 하는 범용 MCP(Model Context Protocol) 서버입니다. 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

예

프록시할 원격 MCP 엔드포인트 URL

OAUTH2_TOKEN_URL

예

OAuth2 토큰 엔드포인트(client_credentials 권한 부여)

OAUTH2_CLIENT_ID

예

OAuth2 클라이언트 ID

OAUTH2_CLIENT_SECRET

예

OAuth2 클라이언트 시크릿

OAUTH2_BASIC_USERNAME

아니요

기본 인증 사용자 이름(이중 자격 증명 SSO용)

OAUTH2_BASIC_PASSWORD

아니요

기본 인증 비밀번호(이중 자격 증명 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에 "Failed" 상태 표시)

  3. 상태가 정상이면 stdio를 통해 IDE에 연결하고 원격에서 도구를 검색합니다

  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