GKE 원격 MCP 서버 사용

모델 컨텍스트 프로토콜(MCP)은 대규모 언어 모델 (LLM)과 AI 애플리케이션 또는 에이전트가 외부 데이터 소스에 연결되는 방식을 표준화합니다. MCP 서버를 사용하면 도구, 리소스, 프롬프트를 사용하여 백엔드 서비스에서 작업을 실행하고 업데이트된 데이터를 가져올 수 있습니다.

로컬 MCP 서버는 일반적으로 로컬 머신에서 실행되며 동일한 기기의 서비스 간 통신에 표준 입력 및 출력 스트림 (stdio)을 사용합니다. 원격 MCP 서버는 서비스의 인프라에서 실행되며 AI MCP 클라이언트와 MCP 서버 간 통신을 위해 AI 애플리케이션에 HTTP 엔드포인트를 제공합니다. MCP 아키텍처에 대한 자세한 내용은 MCP 아키텍처를 참고하세요.

이 문서에서는 GKE 원격 모델 컨텍스트 프로토콜 (MCP) 서버를 사용하여 Gemini CLI, Gemini Code Assist의 에이전트 모드, Claude Code 또는 개발 중인 AI 애플리케이션과 같은 AI 애플리케이션에서 GKE에 연결하는 방법을 설명합니다.

GKE 로컬 MCP 서버에 관한 자세한 내용은 GitHub의 GKE MCP 서버를 참고하세요.

Google 및 Google Cloud 원격 MCP 서버에는 다음과 같은 기능과 이점이 있습니다.

  • 간소화된 중앙 집중식 검색
  • 관리형 전역 또는 리전 HTTP 엔드포인트
  • 세부적인 승인
  • Model Armor 보호를 사용한 선택적 프롬프트 및 응답 보안
  • 중앙 집중식 감사 로깅

다른 MCP 서버에 대한 정보와 Google Cloud MCP 서버에 사용할 수 있는 보안 및 거버넌스 제어에 대한 정보는 Google Cloud MCP 서버 개요를 참고하세요.

다음과 같은 이유로 GKE 로컬 MCP 서버를 사용할 수 있습니다.

  • 로컬 개발 및 테스트
  • 오프라인 MCP 사용
  • AI/ML 워크로드의 매니페스트 생성을 비롯한 클러스터 및 워크로드 생성
  • 로컬 클라이언트 구성 (kubeconfig 사용)
  • 로그 쿼리
  • GKE 환경에 대한 비용 및 보안 권장사항 확인

로컬 MCP 서버를 사용하는 방법에 대한 자세한 내용은 GKE MCP 서버를 참고하세요. 다음 섹션은 GKE 원격 MCP 서버에만 적용됩니다.

시작하기 전에

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

  3. 외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

  4. gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.

    gcloud init
  5. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Kubernetes Engine API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable container.googleapis.com
  8. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/container.clusterViewer

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Replace the following:

    • PROJECT_ID: Your project ID.
    • USER_IDENTIFIER: The identifier for your user account. For example, myemail@example.com.
    • ROLE: The IAM role that you grant to your user account.
  9. Install the Google Cloud CLI.

  10. 외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

  11. gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.

    gcloud init
  12. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  13. Verify that billing is enabled for your Google Cloud project.

  14. Enable the Kubernetes Engine API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable container.googleapis.com
  15. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/container.clusterViewer

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Replace the following:

    • PROJECT_ID: Your project ID.
    • USER_IDENTIFIER: The identifier for your user account. For example, myemail@example.com.
    • ROLE: The IAM role that you grant to your user account.
  16. 필요한 역할

    GKE 원격 MCP 서버를 사용 설정하는 일회성 설정을 실행하려면 관리자에게 다음 역할이 필요합니다.

    • 조직 정책 관리자 (roles/orgpolicy.policyAdmin): 맞춤 조직 정책을 만들 수 있도록 Google Cloud 조직에 이 역할을 부여합니다.
    • 서비스 사용량 관리자 (roles/serviceusage.serviceUsageAdmin): 원격 MCP 서비스 엔드포인트를 사용 설정할 수 있도록 Google Cloud 프로젝트에 이 역할을 부여합니다. 이 역할에는 serviceusage.mcppolicy.getserviceusage.mcppolicy.update 권한이 포함됩니다.

    역할 부여에 대한 상세 설명은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

    서비스 사용 역할

    원격 MCP 서버 도구를 호출하는 주 구성원에게는 GKE 리소스에 액세스할 권한이 필요합니다. 이 주 구성원은 인간 사용자 또는 자동화된 서비스 계정일 수 있습니다. 최소한Google Cloud 프로젝트에 다음 역할을 부여합니다.

    • MCP 도구 사용자 (roles/mcp.toolUser): MCP 서버 엔드포인트에 도구 호출을 할 수 있는 권한을 부여합니다.
    • Kubernetes Engine 클러스터 뷰어 (roles/container.clusterViewer): 이 역할은 원격 서버 도구에 필요한 읽기 전용 액세스 권한을 제공합니다.

    다음 사용자에게 이 역할을 부여합니다.

    • Gemini CLI와 같은 클라이언트를 통해 MCP 서버와 상호작용하는 경우의 사용자 계정
    • MCP 서버를 호출하는 자율 에이전트 또는 애플리케이션을 빌드할 때 서비스 계정

    GKE 원격 MCP 서버 사용 설정 또는 사용 중지

    gcloud beta services mcp enable 명령어를 사용하여 프로젝트에서 GKE 원격 MCP 서버를 사용 설정하거나 사용 중지할 수 있습니다. 자세한 내용은 다음 섹션을 참고하세요.

    프로젝트에서 GKE 원격 MCP 서버 사용 설정

    서비스 계정 키, OAuth 클라이언트 ID 또는 API 키와 같은 클라이언트 사용자 인증 정보와 리소스 호스팅에 서로 다른 프로젝트를 사용하는 경우 두 프로젝트 모두에서 GKE 서비스와 GKE 원격 MCP 서버를 사용 설정해야 합니다.

    Google Cloud 프로젝트에서 GKE 원격 MCP 서버를 사용 설정하려면 다음 명령어를 실행합니다.

    gcloud beta services mcp enable container.googleapis.com \
        --project=PROJECT_ID
    

    PROJECT_ID를 Google Cloud 프로젝트 ID로 바꿉니다.

    Google Cloud 프로젝트에서 사용할 수 있도록 GKE 원격 MCP 서버가 사용 설정됩니다.Google Cloud 프로젝트에 GKE 서비스가 사용 설정되어 있지 않으면 GKE 원격 MCP 서버를 사용 설정하기 전에 서비스를 사용 설정하라는 메시지가 표시됩니다.

    보안 권장사항에 따라 AI 애플리케이션이 작동하는 데 필요한 서비스에만 MCP 서버를 사용 설정하는 것이 좋습니다.

    프로젝트에서 GKE 원격 MCP 서버 사용 중지

    Google Cloud 프로젝트에서 GKE 원격 MCP 서버를 사용 중지하려면 다음 명령어를 실행합니다.

    gcloud beta services mcp disable SERVICE \
        --project=PROJECT_ID
    

    Google Cloud 프로젝트에서 사용할 수 있도록 GKE 원격 MCP 서버가 사용 중지되어 있습니다.

    인증 및 승인

    GKE 원격 MCP 서버는 인증 및 승인에 Identity and Access Management (IAM)와 함께 OAuth 2.0 프로토콜을 사용합니다. 모든 Google Cloud ID는 MCP 서버에 대한 인증에 지원됩니다.

    GKE 원격 MCP 서버는 인증용으로 API 키를 수락하지 않습니다.

    리소스에 대한 액세스를 제어하고 모니터링할 수 있도록 MCP 도구를 사용하여 상담사를 위한 별도의 ID를 만드는 것이 좋습니다. 인증에 관한 자세한 내용은 MCP 서버에 인증을 참고하세요.

    GKE 원격 MCP OAuth 범위

    OAuth 2.0은 범위와 사용자 인증 정보를 사용하여 인증된 주 구성원이 리소스에 대해 특정 작업을 수행할 권한이 있는지 확인합니다. Google의 OAuth 2.0 범위에 대한 자세한 내용은 OAuth 2.0을 사용하여 Google API에 액세스하기를 참고하세요.

    GKE에는 다음과 같은 MCP 도구 OAuth 범위가 있습니다.

    gcloud CLI의 범위 URI 설명
    https://www.googleapis.com/auth/cloud-platform Google Cloud 프로젝트에 대한 광범위한 읽기 전용 액세스 권한을 부여합니다.

    도구 호출 중에 액세스하는 리소스에 추가 범위가 필요할 수 있습니다. GKE에 필요한 범위 목록을 보려면 GKE API를 참고하세요.

    GKE MCP 서버를 사용하도록 MCP 클라이언트 구성

    Claude 또는 Gemini CLI와 같은 호스트 프로그램은 단일 MCP 서버에 연결되는 MCP 클라이언트를 인스턴스화할 수 있습니다. 호스트 프로그램에는 서로 다른 MCP 서버에 연결되는 여러 클라이언트가 있을 수 있습니다. 원격 MCP 서버에 연결하려면 MCP 클라이언트가 최소한 원격 MCP 서버의 URL을 알아야 합니다.

    호스트에서 원격 MCP 서버에 연결하는 방법을 찾습니다. 이름, URL 등 서버에 관한 세부정보를 입력하라는 메시지가 표시됩니다.

    GKE 원격 MCP 서버의 경우 필요에 따라 다음을 입력합니다.

    • 서버 이름: GKE 원격 MCP 서버
    • 서버 URL 또는 엔드포인트: https://container.googleapis.com/mcp
    • 전송: HTTP
    • 인증 세부정보: 인증 방법에 따라 Google Cloud 사용자 인증 정보, OAuth 클라이언트 ID 및 보안 비밀번호 또는 상담사 ID 및 사용자 인증 정보를 입력할 수 있습니다. 인증에 관한 자세한 내용은 MCP 서버에 인증을 참고하세요.

    호스트 관련 안내는 다음을 참고하세요.

    일반적인 안내는 원격 MCP 서버에 연결을 참고하세요.

    사용 가능한 도구

    읽기 전용인 MCP 도구의 MCP 속성 mcp.tool.isReadOnlytrue로 설정됩니다. 조직 정책을 통해 특정 환경에서 읽기 전용 도구만 허용할 수 있습니다.

    사용 가능한 MCP 도구와 GKE MCP 서버의 설명에 관한 세부정보를 보려면 GKE MCP 참조를 참고하세요.

    목록 도구

    MCP 인스펙터를 사용하여 도구를 나열하거나 tools/list HTTP 요청을 GKE 원격 MCP 서버로 직접 전송합니다. tools/list 메서드는 인증이 필요하지 않습니다.

    POST /mcp HTTP/1.1
    Host: container.googleapis.com
    Content-Type: application/json
    
    {
      "jsonrpc": "2.0",
      "method": "tools/list",
    }
    

    샘플 사용 사례

    다음은 GKE 원격 MCP 서버의 샘플 사용 사례입니다.

    • GKE 클러스터 및 노드 풀의 구성과 상태를 검사합니다. 예를 들어 'production-cluster'의 세부정보를 보여주고 모든 노드 풀을 나열해 줘'라는 프롬프트를 사용합니다.
    • kubectl을 사용하지 않고 클러스터 내에서 Kubernetes 리소스 구성과 컨테이너 로그를 확인합니다. 예를 들어 'default' 네임스페이스의 'frontend-deployment'에 대한 YAML을 가져와'라는 프롬프트를 사용합니다.
    • 클러스터 업그레이드와 같은 장기 실행 GKE 작업의 상태를 모니터링합니다. 예를 들어 '지난 한 시간 동안 내 프로젝트의 모든 GKE 작업을 나열해 줘'라는 프롬프트를 사용합니다.

    선택적 보안 및 안전 구성

    MCP는 MCP 도구로 취할 수 있는 다양한 작업으로 인해 새로운 보안 위험과 고려사항을 도입합니다. 이러한 위험을 최소화하고 관리하기 위해Google Cloud 에서는 Google Cloud조직 또는 프로젝트에서 MCP 도구 사용을 제어할 수 있는 기본값과 맞춤설정 가능한 정책을 제공합니다.

    MCP 보안 및 거버넌스에 관한 자세한 내용은 AI 보안 및 안전을 참고하세요.

    Model Armor

    Model Armor는 AI 애플리케이션의 보안과 안전을 강화하도록 설계된Google Cloud 서비스입니다. LLM 프롬프트와 대답을 사전 검사하여 다양한 위험으로부터 보호하고 책임감 있는 AI 관행을 지원합니다. 클라우드 환경에 AI를 배포하든 외부 클라우드 제공업체에 배포하든 Model Armor를 사용하면 악의적인 입력을 방지하고, 콘텐츠 안전을 확인하고, 민감한 정보를 보호하고, 규정 준수를 유지하고, 다양한 AI 환경 전반에서 AI 안전 및 보안 정책을 일관되게 적용할 수 있습니다.

    Model Armor는 특정 리전 위치에서만 사용할 수 있습니다. 프로젝트에 Model Armor가 사용 설정되어 있고 지원되지 않는 리전에서 해당 프로젝트로의 호출이 발생하면 Model Armor가 리전 간 호출을 실행합니다. 자세한 내용은 Model Armor 위치를 참고하세요.

    Model Armor 사용 설정

    Model Armor를 사용 설정하려면 다음 단계를 완료하세요.

    1. Google Cloud 프로젝트에서 Model Armor를 사용 설정하려면 다음 gcloud CLI 명령어를 실행하세요.

      gcloud services enable modelarmor.googleapis.com \
          --project=PROJECT_ID
      

      PROJECT_ID를Google Cloud 프로젝트 ID로 바꿉니다.

    2. 권장되는 Model Armor 최소 기준 설정을 구성하려면 다음 gcloud CLI 명령어를 실행합니다.

      gcloud model-armor floorsettings update \
          --full-uri='projects/PROJECT_ID/locations/global/floorSetting' \
          --mcp-sanitization=ENABLED \
          --malicious-uri-filter-settings-enforcement=ENABLED
      

      PROJECT_ID를Google Cloud 프로젝트 ID로 바꿉니다.

      Model Armor는 악성 URL 시도를 스캔하도록 구성되어 있습니다.

      구성 가능한 Model Armor 필터에 대한 자세한 내용은 Model Armor 필터를 참고하세요.

    3. MCP 서비스의 콘텐츠 보안 제공자로 Model Armor를 추가하려면 다음 gcloud CLI 명령어를 실행합니다.

      gcloud beta services mcp content-security add modelarmor.googleapis.com \
          --project=PROJECT_ID
      

      PROJECT_ID를Google Cloud 프로젝트 ID로 바꿉니다.

    4. MCP 트래픽이 Model Armor로 전송되는지 확인하려면 다음 명령어를 실행합니다.

      gcloud beta services mcp content-security get \
          --project=PROJECT_ID
      

      PROJECT_ID를Google Cloud 프로젝트 ID로 바꿉니다.

    Model Armor 로깅

    Model Armor 감사 및 플랫폼 로그에 대한 자세한 내용은 Model Armor 감사 로깅을 참고하세요.

    프로젝트에서 Model Armor 사용 중지

    Google Cloud 프로젝트에서 Model Amor를 사용 중지하려면 다음 명령어를 실행합니다.

    gcloud beta services mcp content-security remove modelarmor.googleapis.com \
        --project=PROJECT_ID
    

    PROJECT_ID를Google Cloud 프로젝트 ID로 바꿉니다.

    Google Cloud 의 MCP 트래픽은 지정된 프로젝트의 Model Armor에 의해 스캔되지 않습니다.

    Model Armor로 MCP 트래픽 스캔 사용 중지

    프로젝트에서 Model Armor를 계속 사용하고 싶지만 Model Armor로 MCP 트래픽을 스캔하는 것을 중지하려면 다음 명령어를 실행하세요.

    gcloud model-armor floorsettings update \
      --full-uri='projects/PROJECT_ID/locations/global/floorSetting' \
      --mcp-sanitization=DISABLED
    

    PROJECT_ID를Google Cloud 프로젝트 ID로 바꿉니다.

    Model Armor는Google Cloud에서 MCP 트래픽을 스캔하지 않습니다.

    조직 수준 MCP 제어

    gcp.managed.allowedMCPService 제약 조건을 사용하여 Google Cloud 조직에서 MCP 서버 사용을 제어하는 커스텀 조직 정책을 만들 수 있습니다. 자세한 내용과 사용 예시는 Google Cloud MCP 서버 IAM을 사용한 액세스 제어를 참고하세요.

    다음 단계