Gemini에서 MCP 앱을 구현하기 위한 개발자 가이드
Dave Wang
Forward Deployed Engineer, Google Cloud
*이 콘텐츠는 AI 번역 도구를 사용하여 번역되었습니다. 정확성을 기하기 위해 노력하고 있으나, 자동 번역에는 오류나 누락이 포함될 수 있습니다. 정확한 정보는 영문 원본을 참고해 주시기 바랍니다.
기업용 AI 어시스턴트는 여전히 대부분 텍스트로 응답합니다. 하지만 시각적 요소가 포함되거나 여러 단계를 거쳐야 하는 작업에서는 수정 사항이 생길 때마다 채팅을 주고받느라 불필요한 시간이 소요되므로 비효율적일 수 있습니다.
MCP 앱(SEP-1865)은 이러한 문제를 해결합니다. 이 개방형 모델 컨텍스트 프로토콜(MCP) 확장 프로그램은 도구를 실시간 UI와 페어링합니다. Gemini Enterprise에서는 해당 UI가 샌드박스 처리된 iframe 내에서 채팅 플로우에 직접 렌더링되며, 전체 화면 또는 측면 패널로 확장할 수도 있습니다. 수정 사항은 로컬에서 실행되며, 작업공간과 어시스턴트는 동기화된 상태로 유지됩니다.
또한 핵심 기반을 처음부터 다시 빌드할 필요가 없습니다. Gemini는 직원 로그인, 제어된 데이터 액세스, 기본 어시스턴트를 제공하며, 사용자는 비공개 Cloud Run 서비스에서 MCP 서버를 호스팅하기만 하면 됩니다.
MCP 앱이 필요한 이유
엔터프라이즈 어시스턴트는 3세대에 걸쳐 발전해 왔습니다.
-
1세대(텍스트 챗봇): 대화형 제어 기능 없이 정적 마크다운 형식의 결과만 반환합니다.
-
2세대(표준 MCP 도구): 실시간 API를 호출할 수 있지만 여전히 정적 텍스트 형식으로 출력합니다. 따라서 변경 사항이 발생할 때마다 모델을 다시 호출해야 합니다.
-
3세대(대화형 MCP 앱): 각 도구를 실시간 작업공간과 페어링합니다. 모델을 다시 호출하지 않고도 위젯 내에서 직접 내용을 수정할 수 있으며, 어시스턴트와의 동기화 상태도 유지됩니다.
Gemini에서 MCP 앱을 빌드하면 얻을 수 있는 6가지 이점:
-
반응성이 뛰어난 사용자 경험: 채팅창을 거치지 않고 패널에서 클릭 한 번으로 즉시 작업을 실행할 수 있습니다.
-
목적에 맞게 빌드된 워크플로: 법률 검토를 위한 시각적 수정 뷰, CAD용 3D 뷰어, 금융 분야에 적합한 민감도 모델 등 각 목적에 특화된 워크플로를 제공합니다.
-
엔터프라이즈 보안: 직원 OAuth 로그인, 비공개 Cloud Run 인그레스, 샌드박스 처리된 iframe이 각 레이어를 보호합니다.
-
휴먼인더루프 거버넌스: 중요한 작업을 실행하기 전에 먼저 전문가의 검토와 승인을 거칩니다.
-
개방형 표준: 호환되는 다양한 호스트 간에 이동 가능하며 텍스트 기반 대체 기능이 자동으로 제공됩니다.
-
광범위한 연결: BigQuery, Agent Platform, Cloud Storage 또는 사내 ERP 및 CRM 시스템과 연동할 수 있습니다.
상위 수준 아키텍처


분리된 세 계층이 함께 작동합니다.
-
클라이언트 브라우저: 측면 패널에 채팅창과 MCP 앱 위젯을 함께 표시합니다.
-
Gemini Enterprise: 기본 어시스턴트가 도구를 호출하고, AppBridge 프록시가 위젯 메시지를 릴레이하며, 커넥터가 OAuth를 관리합니다.
-
Google Cloud(사용자 프로젝트): Cloud Run에 MCP 서버를 배포하고 호스팅합니다. 이 서버는 하나의 JSON-RPC 엔드포인트(/mcp)를 제공하고, 백그라운드 작업을 실행하며, 단일 파일 형태의 HTML 위젯을 제공합니다.
각 계층은 인접한 계층과만 통신하므로 Gemini Enterprise가 보안 및 라우팅을 적용할 수 있습니다.
독립적인 두 레이어를 통한 인증


각 사용자는 OAuth 2.0을 통해 로그인합니다. Gemini Enterprise는 호출할 때마다 사용자의 OAuth 토큰과 함께 자체 서비스 에이전트 토큰을 함께 전송합니다.
-
레이어 1(Cloud Run IAM): Google 에지에서 적용되며 '어떤 서비스가 호출할 수 있는가?'라는 질문에 답합니다. 공개 액세스는 차단되어 있으며 승인되지 않은 호출자는 HTTP 403 오류를 수신하게 됩니다.
-
레이어 2(인앱 OAuth): 애플리케이션 내부에서 적용되며 '어떤 사용자가 호출하는가?'라는 질문에 답합니다. 검증에 실패하면 HTTP 401 오류를 반환하며 사용자는 다시 로그인하라는 요청을 받게 됩니다.
Cloud Run IAM만으로는 최종 사용자를 구분할 수 없으므로 두 레이어가 모두 필요합니다. 아웃바운드 호출에는 최소 권한 서비스 계정을 사용합니다.
Google Cloud에 빌드 및 배포하고 Gemini Enterprise에 등록
먼저 MCP Apps SDK를 사용하여 커스텀 MCP 서버를 빌드하세요. 이 서버는 POST/mcp와 번들로 포함된 ui:// HTML 위젯을 제공해야 합니다. 또는 Google Antigravity를 사용하여 다음 시작 프롬프트로 MCP 앱을 스캐폴딩하고 배포할 수도 있습니다.
-
create-mcp-app 스킬(https://github.com/modelcontextprotocol/ext-apps/tree/main/plugins/mcp-apps/skills/create-mcp-app)을 사용하여 Gemini Enterprise용 MCP 앱 빌드
-
워크플로: [입력 데이터, 측면 패널 UI 컨트롤, 승인 또는 내보내기 작업 설명]
-
단일 파일 형태의 HTML 위젯, 2초 미만의 비동기 도구 응답 및 get_app_state 폴링을 지원하는 스트리밍 가능한 HTTP 백엔드(POST /mcp), Cloud Run 배포 명령어(--no-allow-unauthenticated, --no-cpu-throttling, --min-instances=1) 생성
MCP 서버 코드가 준비되면 Cloud Run에 배포하고 Gemini Enterprise에 연결합니다.
-
1단계: API 사용 설정 - Cloud Run, Discovery Engine, Agent Platform, 조직 정책에 필요한 API를 사용 설정합니다.
-
2단계: Cloud Run에 MCP 서버 배포 -
(gcloud run deploy <service> --source .) 명령어를 사용하여 소스 코드로부터 MCP 서버 컨테이너를 Cloud Run에 배포합니다. 이때--no-allow-unauthenticated, --no-cpu-throttling옵션을 지정하여 폴링 간에 백그라운드 작업이 중단되지 않도록 하고 --min-instances=1도 지정합니다. -
3단계: 호출자 역할 부여 - Discovery Engine 서비스 에이전트에 호출자 역할(
roles/run.invoker)을 부여합니다(레이어 1). -
4단계: OAuth 2.0 웹 클라이언트 생성 - 리디렉션 URI를
https://vertexaisearch.cloud.google.com/oauth-redirect로 설정하여 OAuth 2.0 웹 클라이언트를 만듭니다(레이어 2). -
5단계: 조직 정책 및 사전 준비 사항 구성 -
discoveryengine.managed.disableCustomMcpServerConnector제약 조건을 재정의하고 시작하기 전에 사전 준비 사항을 완료합니다. 여기에는 관리자에게roles/discoveryengine.editor역할을 부여하고, 서버 및 OAuth 호스트의 경우에는 allowedEgressFqdns를 설정하며, 정책이 적용되는 경우에는allowedDataSources에custom_mcp를 추가하는 작업 등이 해당됩니다. 그런 다음 Google Cloud 콘솔에서 Gemini Enterprise > 데이터 스토어 > 데이터 스토어 만들기로 이동하여 커스텀 MCP 서버를 선택하고 커넥터를 등록합니다.
-
6단계: 작업 사용 설정 - 데이터 스토어에서 작업을 사용 설정합니다. Gemini Enterprise는 MCP 서버의 도구를 작업으로 가져오지만 기본적으로 사용 중지된 상태로 둡니다. Cloud 콘솔에서 Gemini Enterprise > 데이터 스토어 > [내 MCP 데이터 스토어] > 작업으로 이동하여 '커스텀 작업 새로고침'을 클릭합니다. 이 작업은 서버에서
tools/list를 호출함합니다. 그런 다음, 모델에 표시할 도구를 선택하고 '작업 사용 설정'을 클릭합니다.


- 7단계: 데이터 스토어 연결 - 데이터 스토어를 앱에 연결합니다. Gemini Enterprise > 앱 > [내 앱] > 연결된 데이터 스토어 > 기존 데이터 스토어 추가로 이동하여 MCP 데이터 스토어를 선택합니다. 데이터 스토어로 연결하면 내장된 기본 어시스턴트가 기본 채팅에서 직접 MCP 도구와 UI 위젯에 액세스할 수 있습니다. '에이전트 추가'는 MCP 데이터 스토어가 아닌 외부 하위 에이전트를 추가할 때 사용하므로 이 기능은 사용하지 마세요.


직접 빌드해보기
MCP 앱은 백엔드 도구를 Gemini Enterprise의 실시간 작업공간과 페어링합니다. 채팅 프런트엔드나 사용자 인증 파이프라인을 직접 빌드할 필요 없이 Cloud Run 컨테이너 하나를 배포하고 데이터 스토어로 연결하기만 하면 Gemini Enterprise가 곧 기업의 업무를 수행하는 공간이 됩니다.
-
여기에서 Gemini를 사용해 보기
-
여기에서 Google Antigravity로 함께 빌드하기
-
Google Cloud에서 빌드하기: MCP 앱 사양(SEP-1865), Cloud Run, Google Cloud AI



