/ 디렉터리 / 플레이그라운드 / Google Cloud Run
● 공식 GoogleCloudPlatform 🔑 본인 키 필요

Google Cloud Run

제작: GoogleCloudPlatform · GoogleCloudPlatform/cloud-run-mcp

Google Cloud Run 서비스를 에이전트에서 배포하고 관리합니다 — Google의 공식 MCP로, gcloud 인증으로 작동합니다.

Google Cloud Platform 공식 MCP입니다. 컨테이너 또는 파일 내용을 Cloud Run에 배포하고, 서비스를 나열하고 검사하며, 로그를 가져옵니다. gcloud 애플리케이션 기본 자격증명(ADC)을 사용하여 설정에 서비스 계정 JSON이 필요하지 않습니다. 에이전트 기반 배포 및 제자리 로그 쿼리 진단에 최적입니다.

왜 쓰나요

핵심 기능

라이브 데모

실제 사용 모습

cloud-run.replay ▶ 준비됨
0/0

설치

클라이언트 선택

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "cloud-run": {
      "command": "npx",
      "args": [
        "-y",
        "@google-cloud/cloud-run-mcp"
      ]
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config 열기. 저장 후 앱 재시작.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "cloud-run": {
      "command": "npx",
      "args": [
        "-y",
        "@google-cloud/cloud-run-mcp"
      ]
    }
  }
}

Cursor는 Claude Desktop과 동일한 mcpServers 스키마 사용. 프로젝트 설정이 전역보다 우선.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "cloud-run": {
      "command": "npx",
      "args": [
        "-y",
        "@google-cloud/cloud-run-mcp"
      ]
    }
  }
}

Cline 사이드바의 MCP Servers 아이콘 클릭 후 "Edit Configuration" 선택.

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "cloud-run": {
      "command": "npx",
      "args": [
        "-y",
        "@google-cloud/cloud-run-mcp"
      ]
    }
  }
}

Claude Desktop과 같은 형식. Windsurf 재시작 후 적용.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "cloud-run",
      "command": "npx",
      "args": [
        "-y",
        "@google-cloud/cloud-run-mcp"
      ]
    }
  ]
}

Continue는 맵이 아닌 서버 오브젝트 배열 사용.

~/.config/zed/settings.json
{
  "context_servers": {
    "cloud-run": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@google-cloud/cloud-run-mcp"
        ]
      }
    }
  }
}

context_servers에 추가. 저장 시 Zed가 핫 리로드.

claude mcp add cloud-run -- npx -y @google-cloud/cloud-run-mcp

한 줄 명령. claude mcp list로 확인, claude mcp remove로 제거.

사용 사례

실전 활용법: Google Cloud Run

에이전트에서 작은 서비스를 Cloud Run에 배포합니다

👤 백엔드 엔지니어, 프로토타입을 출시하는 1인 개발자 ⏱ ~10 min intermediate

언제 쓸까: Node/Python 서비스가 준비되어 있습니다. 콘솔로 전환하지 않고 Cloud Run에 실시간으로 배포하려면 이를 사용하세요.

사전 조건
  • gcloud SDK 설치 및 인증gcloud auth login && gcloud auth application-default login
  • 청구가 활성화된 GCP 프로젝트gcloud projects list
흐름
  1. 프로젝트를 나열하고 올바른 프로젝트를 선택합니다
    내 GCP 프로젝트를 나열합니다. '스테이징'으로 태그된 프로젝트에 배포하려고 합니다.✓ 복사됨
    → 프로젝트 식별됨
  2. 로컬 폴더 배포
    ./my-api를 'api-staging'이라는 Cloud Run 서비스로 us-central1에 배포합니다. 인증되지 않은 호출을 허용합니다. 자동 감지된 빌드팩을 사용합니다.✓ 복사됨
    → 배포 완료, URL 반환됨
  3. 확인합니다
    서비스 세부 정보를 가져옵니다. curl 스타일 테스트로 URL을 호출합니다. 200 응답을 확인합니다.✓ 복사됨
    → 작동하는 서비스 URL

결과: 3-5분 내에 실행 중인 Cloud Run 서비스이며, 에이전트가 URL을 기록합니다.

함정
  • 인증되지 않은 플래그는 서비스를 공개적으로 노출시킵니다 — 스테이징에는 적합하지만 프로덕션에는 부적절합니다 — 프로덕션에 인접한 모든 것의 경우 allow_unauthenticated를 생략하고 IAM을 사용합니다. 사용자 대면 서비스인 경우 Cloud Armor로 프론트엔드합니다
  • 각 배포마다 새로운 리비전이 생성되고 이전 리비전들이 남아 있으면서 리소스를 점유합니다 — gcloud로 주기적으로 이전 리비전을 정리하거나 리비전 보존을 구성합니다
함께 쓰기: fastmcp · fastapi-mcp

Cloud Run 서비스의 로그에서 진단합니다

👤 온콜 엔지니어 ⏱ ~10 min intermediate

언제 쓸까: Cloud Run 서비스가 500 오류를 반환합니다. 콘솔을 열지 않고 로그를 확인하려면 이를 사용하세요.

흐름
  1. 최근 로그를 가져옵니다
    us-central1의 'api-prod' 서비스에 대한 마지막 200개 로그 항목을 가져옵니다. ERROR 심각도로 필터링합니다.✓ 복사됨
    → 오류 로그 항목
  2. 패턴을 찾습니다
    오류를 메시지 템플릿으로 그룹화합니다. 어느 것이 가장 흔합니까? 샘플 스택 추적을 포함합니다.✓ 복사됨
    → 스택 추적이 있는 최상위 오류
  3. 해결 방안을 제안합니다
    스택 추적에 기반하여 가능성 있는 코드 경로를 지적합니다. 오류가 마지막 배포에 집중되어 있다면 이전 리비전으로 롤백을 권장합니다.✓ 복사됨
    → 근본 원인 가설 + 조치

결과: 경고에서 롤백 결정까지 5분 내에 완료됩니다.

함정
  • 로그 보존이 기본값으로 짧습니다 (30일) — 나중에 살펴볼 수 있는 모든 것의 경우 Log Router를 통해 BigQuery 또는 GCS로 로그를 내보냅니다
함께 쓰기: sentry

MCP 서버(FastMCP / fastapi-mcp)를 Cloud Run에 배포합니다

👤 공유 MCP를 호스팅하는 플랫폼 엔지니어 ⏱ ~30 min advanced

언제 쓸까: MCP 서버를 구축했으며 팀 전체에서 사용할 수 있도록 호스팅하려고 합니다.

사전 조건
  • Dockerfile 또는 빌드팩 호환 프로젝트 — Cloud Run은 대부분의 언어에 빌드팩을 사용할 수 있습니다
흐름
  1. 서버를 배포합니다
    ./my-mcp를 'acme-mcp' Cloud Run 서비스로 us-central1 지역에 배포합니다. .env.prod에서 환경 변수를 설정합니다. 인증이 필요합니다.✓ 복사됨
    → IAM 뒤에 배포된 서비스
  2. IAM 액세스를 부여합니다
    이 서비스에 대해 [email protected] 그룹에 'roles/run.invoker' 역할을 부여합니다.✓ 복사됨
    → 팀이 이제 호출할 수 있습니다
  3. 클라이언트를 연결합니다
    gcloud run services proxy 또는 IAM 토큰을 사용한 mcp-remote를 통해 연결하는 Claude Desktop 설정을 작성합니다.✓ 복사됨
    → 팀이 복사-붙여넣기 설정을 가지고 있습니다

결과: GCP 기본 인증을 사용하는 팀 호스팅 MCP로, 다른 서비스와 동일한 배포 모델입니다.

함정
  • SSE 연결이 Cloud Run의 기본 5분 요청 시간 초과에서 끊어집니다 — 서비스에서 --timeout=3600을 설정합니다. MCP 연결은 더 긴 유휴 허용 시간이 필요합니다

조합

다른 MCP와 조합해 10배 효율

cloud-run + fastmcp

Python MCP를 작성하고 한 번의 세션으로 Cloud Run에 배포합니다

FastMCP 서버를 스캐폴딩하여 우리의 가격 책정 API를 노출시키고, 이를 IAM 인증으로 'pricing-mcp' Cloud Run 서비스에 배포합니다.✓ 복사됨
cloud-run + sentry

Cloud Run 오류 → 사건 분류를 위해 Sentry로 전달합니다

Cloud Run 서비스의 오류율이 급증하면 Sentry의 일치하는 문제를 가져오고 마지막 배포와 스택 추적을 상호 연관시킵니다.✓ 복사됨
cloud-run + mcp-context-forge

ContextForge 자체를 Cloud Run에서 호스팅하여 MCP를 연합합니다

mcp-contextforge-gateway를 Redis와 함께 Cloud Run에 배포하여 연합 상태를 유지합니다. 기존의 3개 MCP를 백엔드로 등록합니다.✓ 복사됨

도구

이 MCP가 노출하는 것

도구입력언제 호출비용
list-projects 대상 프로젝트 검색 (로컬 전용) 무료
create-project name, project_id? 새로운 GCP 프로젝트를 부트스트랩 (로컬 전용) 무료
list-services project, region? 프로젝트/지역에서 실행 중인 항목을 확인합니다 무료
get-service project, region, service 특정 서비스의 설정을 검사합니다 무료
get-service-log project, region, service, filter?, limit? 디버깅 — 최근 로그를 가져옵니다 무료
deploy-local-folder folder_path, service, region, project, allow_unauthenticated? 로컬로 가지고 있는 코드를 배포합니다 (로컬 전용) 무료 (빌드) + Cloud Run 요청당 가격
deploy-file-contents files: {path,content}[], service, region, project 에이전트가 생성한 코드를 로컬 파일 없이 배포합니다 무료 (빌드) + Cloud Run 요청당 가격

비용 및 제한

운영 비용

API 쿼터
GCP 할당량 — Cloud Run 배포 API에 대해 관대합니다
호출당 토큰
로그 응답이 클 수 있습니다 — 공격적으로 페이지 매기거나 필터링합니다
금액
Cloud Run: 무료 계층 ~월 200만 요청, 이후 ~백만 요청당 $0.40 + vCPU-초당 $0.000024
비중요 서비스의 경우 min-instances=0으로 설정합니다 — 콜드 스타트는 지연을 유발하지만 유휴 상태에서는 비용이 거의 0으로 떨어집니다

보안

권한, 시크릿, 파급범위

최소 스코프: roles/run.admin roles/iam.serviceAccountUser
자격 증명 저장: gcloud auth application-default login을 통한 애플리케이션 기본 자격증명 — 키 파일 없음
데이터 외부 송신: *.googleapis.com으로의 호출
절대 부여 금지: roles/owner

문제 해결

자주 발생하는 오류와 해결

배포 시 권한 거부됨

계정에는 런타임 서비스 계정에 대해 roles/run.admin과 roles/iam.serviceAccountUser가 필요합니다. gcloud projects get-iam-policy를 통해 확인합니다.

'빌드팩을 감지하지 못함'으로 빌드 실패

Dockerfile을 추가하거나 빌드팩이 인식하는 파일을 추가합니다 (Node의 경우 package.json, Python의 경우 requirements.txt 등).

서비스가 배포되었지만 403을 반환합니다

allow_unauthenticated가 설정되지 않았거나 호출하는 신원에 roles/run.invoker가 없습니다. 결정합니다: 공개 또는 IAM으로 보호.

SSE MCP 연결이 행에 걸리거나 끊어집니다

--timeout=3600을 증가시키고 min-instances=1을 확인하여 콜드 스타트 연결 끊김을 피합니다.

대안

Google Cloud Run 다른 것과 비교

대안언제 쓰나단점/장점
Vercel (Next.js용)특히 Next.js 앱을 호스팅하는 경우Next.js에 대한 더 간단한 개발자 경험; Cloud Run보다 범위가 좁습니다
AWS App Runner / Lambda MCPAWS를 사용 중인 경우비교 가능한 서버리스 모델, 다른 생태계
Fly.io기본적으로 글로벌 엣지를 원하고 더 간단한 가격을 원하는 경우더 작은 생태계; 아직 공식 MCP가 없습니다

더 보기

리소스

📖 GitHub에서 공식 README 읽기

🐙 열린 이슈 보기

🔍 400+ MCP 서버 및 Skills 전체 보기