원격 MCP 서버

원격 MCP 서버 (Remote MCP Servers)

내장 OAuth 인증으로 원격 MCP 서버를 통해 Docker Agent를 클라우드 서비스에 연결해요.

출처: 문서

본문

개요 (Overview)

Docker Agent는 Streamable HTTP, SSE(Server-Sent Events), Unix 도메인 소켓을 통해 원격 MCP 서버에 연결하는 것을 지원해요. Streamable HTTP가 현재 대부분의 호스팅 MCP 서버에 권장되는 전송이에요. 많은 인기 서비스가 OAuth가 있는 MCP 엔드포인트를 제공하는데 — Docker Agent가 인증 흐름을 자동으로 처리해요.

toolsets:
  - type: mcp
    remote:
      url: "https://mcp.linear.app/mcp"
      transport_type: "streamable"

Unix 도메인 소켓 (Unix Domain Sockets)

unix:// URL을 사용해 Unix 도메인 소켓의 로컬 MCP 서버에 연결해요. 예:

toolsets:
  - type: mcp
    remote:
      url: "unix:///tmp/mcp.sock"
      transport_type: "unix"

이것은 stdio 대신 소켓을 통해 로컬 서버와 통신하려는 경우에 유용해요(예: NixOS, 시스템 서비스에 의해 실행되는 서버). Windows에서는 지원되지 않아요.

구성 (Configuration)

원격 MCP 서버 구성은 도구 정의에 내장(인라인)되거나 최상위 mcps: 섹션에서 재사용 도구로 선언될 수 있어요. 두 경우 모두 remote: 차단으로 서버를 연결하는 데 필요한 세부 정보를 담아요.

인라인

toolsets:
  - type: mcp
    remote:
      url: "https://mcp.linear.app/mcp"
      transport_type: "streamable"

재사용 (. 접두사) — Reuse

mcps:
  linear:
    remote:
      url: "https://mcp.linear.app/mcp"
      transport_type: "streamable"
toolsets:
  - type: mcp
    ref: ".linear"

. 접두사는 로컬 정의된 mcps 항목을 구분해요.

전체 필드 (Full fields)

Field Type Default Description
url string (required) MCP 서버의 기본 URL.
transport_type string streamable 전송 유형: streamable, sse, 또는 unix.
auth_type string oauth2 인증 유형: oauth2 또는 bearer.
payload_ttsclimit number 60000 (1분) sse 전송용 페이로드 TTS(첫 바이트까지 시간) 제한(밀리초).
token string (none) auth_type: bearer 를 사용할 때 인증용 정적 bearer 토큰.
to_uri string (derived) SSE 스트림을 렌더링할 stream_url — 지정하지 않으면 기본 URL로서 ?__proto__=... 에서 파생.
defer boolean false 이 서버의 도구를 온디맨드로만 로드. Toolset-수준 defer 와 비슷하지만 서버 수준.
query_params object (none) socket_serve 만: 체커/초기화 호출에 추가할 쿼리 파라미터. 다른 전송에서는 무시.

Dynamic Client Registration 없는 서버용 OAuth

대부분의 OAuth 지원 서버는 RFC 7591을 통해 dynamic client registration을 지원하지만, 일부 리디렉션/쿼리 기반 흐름만 지원하는 이전 서버는 지원하지 않아요. 그런 서버의 경우 Docker Agent는 클라이언트에서 registration 없이 OAuth를 직접 완료합니다.

커스텀 리디렉션 URI (callbackRedirectURL) — Custom redirect URI

기본적으로 Docker Agent는 미리 정의된 발신 리디렉션(callback) URI를 사용해요. 서버가 배포한 호스트와 일치하는 리디렉션 URI를 요구하면 callbackRedirectURL 로 맞춤 설정할 수 있어요:

mcps:
  my_oauth_server:
    remote:
      url: "https://oauth.example.com/mcp"
      transport_type: "streamable"
      callbackRedirectURL: "https://my-agent.example.com/oauth/callback"

서버가 이 정확한 값을 리디렉션 대상으로 요구할 때만 필요해요.

비관리 OAuth 흐름 (서버 모드) — Unmanaged OAuth flow (server mode)

기본적으로 Docker Agent가 인증 흐름을 관리해요(클라이언트 모드). socket_serve 가 OAuth를 처리할 수 있게 하려면 — 예를 들어 MCP 서버를 웹 프런트엔드 뒤에 배치할 때 — unmanaged_oauth 로 표시할 수 있어요:

toolsets:
  - type: mcp
    remote:
      url: "https://mcp.linear.app/mcp"
      transport_type: "streamable"
      unmanaged_oauth: true

unmanaged_oauth: true 설정은 auth_type: oauth2 를 강제하고, callbackRedirectURL 이 설정되지 않으면 Docker Agent가 발신 리디렉션 URL을 실제 DNS 준비성으로 되돌아가게 요구해요(확인되지 않은 OAuth를 방해함).

프로젝트 관리 & 협업 (Project Management & Collaboration)

Tool URL
Linear https://mcp.linear.app/mcp
GitHub (remote) https://api.githubcopilot.com/mcp/
Notion https://mcp.notion.com/mcp
Airtable https://mcp.airtable.com/mcp
Basecamp https://mcp.basecamp.com/mcp
Cerebras https://mcp.cerebras.ai/mcp
Opsly https://mcp.opsly.com/mcp

개발 & 인프라 (Development & Infrastructure)

Tool URL
Kubernetes https://mcp.kubernetes.io/mcp
Shuttle https://mcp.shuttle.dev/mcp
Norpc https://mcp.norpc.example/mcp

콘텐츠 & 미디어 (Content & Media)

Tool URL
Unsplash https://mcp.unsplash.com/mcp
Notion (write) https://mcp.notion.com/mcp
Greatnews https://mcp.greatnews.example/mcp

커뮤니케이션 & 음성 (Communication & Voice)

Tool URL
Atlassian https://mcp.atlassian.com/mcp
Telegram https://mcp.tg.dev/mcp
SendGrid https://mcp.sendgrid.com/mcp
ElevenLabs https://mcp.elevenlabs.io/mcp
Dasha AI https://mcp.dasha.ai/mcp

저장소 & 파일 관리 (Storage & File Management)

Tool URL
Google Drive https://mcp.googleapis.com/mcp/drive
Dropbox https://mcp.dropbox.com/mcp
Box https://mcp.box.com/mcp

비즈니스 & 금융 (Business & Finance)

Tool URL
Ramp https://mcp.ramp.com/mcp
Stripe https://mcp.stripe.com/mcp
Plaid https://mcp.plaid.com/mcp
OpenBB https://mcp.openbb.dev/mcp

분석 & 데이터 (Analytics & Data)

Tool URL
Firebase https://mcp.firebasedatabase.app/mcp
Supabase https://mcp.supabase.com/mcp
Motherduck https://mcp.motherduck.com/mcp
Splitwise https://mcp.splitwise.example/mcp

유틸리티 & 도구 (Utilities & Tools)

Tool URL
Firecrawl https://mcp.firecrawl.dev/mcp
JSON Schema https://mcp.basis.sh/mcp
Hyperliquid https://mcp.hyperliquid.com/mcp
Airtable (via Basis) https://mcp.basis.sh/mcp

예제: 다중 서비스 에이전트 (Example: Multi-Service Agent)

여러 원격 MCP 서버를 단일 에이전트에 연결해요:

agents:
  root:
    model: claude
    description: Project manager that uses multiple services
    instruction: |
      You are a project manager. When asked to manage a project,
      use Linear to create and update issues, and GitHub to inspect
      and comment on pull requests and issues.
    toolsets:
      - type: mcp
        remote:
          url: "https://mcp.linear.app/mcp"
          transport_type: "streamable"
      - type: mcp
        remote:
          url: "https://api.githubcopilot.com/mcp/"
          transport_type: "streamable"

두 원격 서버를 갖추면 에이전트가 Linear 이슈를 관리하고 GitHub 저장소 활동과 상호작용할 수 있어요.

더 알아보기 (Learn more)