원격 서버 게시

원격 서버 게시 (Publishing Remote Servers)

출처: MCP 공식 문서 — Publishing Remote Servers

MCP 레지스트리는 현재 프리뷰예요. 일반 공급 전에 파괴적 변경이나 데이터 초기화가 있을 수 있어요. 문제가 있으면 GitHub에 보고해 주세요.

MCP 레지스트리는 server.jsonremotes 속성을 통해 원격 MCP 서버를 지원해요.

{
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "name": "com.example/acme-analytics",
  "title": "ACME Analytics",
  "description": "Real-time business intelligence and reporting platform",
  "version": "2.0.0",
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://analytics.example.com/mcp"
    }
  ]
}

원격 서버는 지정된 URL에서 공개적으로 접근 가능해야 해요(MUST).

전송 방식

원격 서버는 Streamable HTTP 전송을 사용해야 해요. SSE 전송은 더 이상 사용되지 않으므로, "sse" 리모트는 기존 클라이언트를 지원할 때만 게시하세요. 원격 서버는 서로 다른 URL에서 두 전송을 동시에 지원할 수도 있어요.

remotes 항목의 type 속성을 "streamable-http" 또는 "sse"로 설정해 전송을 지정해요.

{
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "name": "com.example/acme-analytics",
  "title": "ACME Analytics",
  "description": "Real-time business intelligence and reporting platform",
  "version": "2.0.0",
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://analytics.example.com/mcp"
    },
    {
      "type": "sse",
      "url": "https://analytics.example.com/sse"
    }
  ]
}

URL 템플릿 변수

원격 서버는 {curly_braces} 표기법으로 URL 템플릿 변수를 정의할 수 있어요. 이로써 단일 서버 정의가 구성 가능한 값으로 여러 엔드포인트를 지원하는 멀티테넌트 배포가 가능해요.

{
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "name": "com.example/acme-analytics",
  "title": "ACME Analytics",
  "description": "Real-time business intelligence and reporting platform",
  "version": "2.0.0",
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://{tenant_id}.analytics.example.com/mcp",
      "variables": {
        "tenant_id": {
          "description": "Your tenant identifier (e.g., 'us-cell1', 'emea-cell1')",
          "isRequired": true
        }
      }
    }
  ]
}

이 서버를 구성할 때 사용자는 자신의 tenant_id 값을 제공하고, URL 템플릿이 적절한 엔드포인트(예: https://us-cell1.analytics.example.com/mcp)로 해석돼요.

변수는 default, choices, isSecret 같은 추가 속성을 지원해요.

{
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "name": "com.example/multi-region-mcp",
  "title": "Multi-Region MCP",
  "description": "MCP server with regional endpoints",
  "version": "1.0.0",
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://api.example.com/{region}/mcp",
      "variables": {
        "region": {
          "description": "Deployment region",
          "isRequired": true,
          "choices": [
            "us-east-1",
            "eu-west-1",
            "ap-southeast-1"
          ],
          "default": "us-east-1"
        }
      }
    }
  ]
}

HTTP 헤더

remotes 항목에 headers 속성을 추가하면 MCP 클라이언트가 특정 HTTP 헤더를 보내도록 지시할 수 있어요.

{
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "name": "com.example/acme-analytics",
  "title": "ACME Analytics",
  "description": "Real-time business intelligence and reporting platform",
  "version": "2.0.0",
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://analytics.example.com/mcp",
      "headers": [
        {
          "name": "X-API-Key",
          "description": "API key for authentication",
          "isRequired": true,
          "isSecret": true
        }
      ]
    }
  ]
}

원격 및 비원격 설치 모두 지원

remotes 속성은 server.jsonpackages 속성과 공존할 수 있어, MCP 호스트 애플리케이션이 선호하는 설치 방법을 고르게 해줘요.

{
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "name": "io.github.username/email-integration-mcp",
  "title": "Email Integration",
  "description": "Send emails and manage email accounts",
  "version": "1.0.0",
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://email.example.com/mcp"
    }
  ],
  "packages": [
    {
      "registryType": "npm",
      "identifier": "@example/email-integration-mcp",
      "version": "1.0.0",
      "transport": {
        "type": "stdio"
      }
    }
  ]
}

더 알아보기 (Learn more)