Looker 관리 MCP 서버

Looker 관리 MCP 서버는 모델 컨텍스트 프로토콜 (MCP) 서버를 Looker 플랫폼에 직접 삽입하는 기본 제공 통합입니다. 이를 통해 Gemini CLI, Claude Desktop, Cursor, Copilot과 같은 AI 에이전트가 Looker 인스턴스에 안전하게 연결하고 비즈니스 데이터 및 LookML 모델과 상호작용할 수 있습니다.

Looker는 서버를 호스팅함으로써 자체 미들웨어 인프라를 배포하고 유지관리할 필요가 없으며, 신뢰할 수 있는 비즈니스 인사이트에 대한 플러그 앤 플레이, 보안, 관리형 게이트웨이를 제공합니다.

고객 호스팅 인스턴스를 사용 중이거나 자체 인프라를 직접 관리하려는 경우 독립형 데이터베이스용 MCP 도구 상자를 사용하여 연결할 수 있습니다. MCP 도구 상자는 로컬 컴퓨터 또는 자체 서버에서 실행하여 AI 에이전트와 Looker 인스턴스 간의 다리 역할을 할 수 있는 오픈소스 MCP 서버입니다. 자세한 내용은 MCP, Gemini CLI, 기타 에이전트와 함께 Looker 사용 문서 페이지를 참조하세요.

시작하기 전에

Looker 관리 MCP 서버를 사용하려면 다음 요구사항을 충족해야 합니다.

인스턴스 요구사항

  • Looker (Google Cloud 핵심 서비스) 또는 Looker (원본) 인스턴스를 사용해야 합니다.
  • 인스턴스는 Looker에서 호스팅되어야 합니다.

필수 권한

  • 도구 액세스 관리: 관리자 Looker 역할이 있어야 합니다.
  • AI 에이전트를 OAuth 클라이언트로 등록하거나 사용 설정하려면 관리자 Looker 역할이 있어야 합니다.
  • AI 에이전트를 Looker 관리 MCP 서버에 연결: OAuth 연결 프로세스 중에 인증하려면 표준 Looker 로그인 사용자 인증 정보가 필요합니다. AI 에이전트는 먼저 Looker 관리자가 OAuth 클라이언트로 등록해야 합니다. 연결되면 AI 에이전트는 인증된 사용자의 Looker 역할 및 액세스 권한을 상속합니다.

관리형 MCP 서버 설정

도구 액세스를 구성하여 관리형 MCP 서버를 설정합니다.

도구 설정 구성

기본적으로 관리형 MCP 서버의 모든 도구는 사용 중지되어 있습니다. Looker 관리자는 AI 에이전트가 사용할 수 있는 도구를 명시적으로 사용 설정해야 합니다. 도구를 사용 설정하는 단계는 관리자 설정 - 모델 컨텍스트 프로토콜 (MCP) 문서 페이지를 참조하세요.

CORS 설정 구성

MCP 클라이언트가 웹브라우저에서 직접 실행되고 CORS를 사용하여 Looker 관리 MCP 서버와 통신하려는 경우 Looker 관리자는 관리 패널의 삽입된 도메인 허용 목록에 해당 클라이언트 웹사이트의 도메인을 추가해야 합니다.

OAuth를 통해 AI 에이전트 등록

AI 에이전트를 Looker 관리 MCP 서버에 연결하려면 관리자가 Looker 관리 패널의 OAuth 클라이언트 관리 페이지에서 AI 에이전트를 OAuth 클라이언트 애플리케이션으로 사용 설정하거나 등록해야 합니다.

애플리케이션 라이브러리에서 사전 구성된 AI 클라이언트를 사용 설정하거나 커스텀 클라이언트 탭에서 커스텀 클라이언트를 등록할 수 있습니다.

  • 애플리케이션 라이브러리 (권장): Cursor, VS Code, Claude Code, Claude Desktop, ChatGPT, Gemini CLI, Cline, Windsurf, Antigravity, VS Code용 Looker 확장 프로그램과 같은 인기 있는 AI 에이전트 및 개발자 도구에 사전 구성된 Looker 관리 OAuth 클라이언트 등록을 사용합니다.
  • 커스텀 클라이언트: 애플리케이션 라이브러리에서 AI 도구를 사용할 수 없거나 커스텀 리디렉션 URI 또는 포트를 구성해야 하는 경우 새 커스텀 OAuth 클라이언트를 등록합니다.

옵션 1: 애플리케이션 라이브러리에서 사전 구성된 AI 에이전트 사용 설정

애플리케이션 라이브러리 탭을 먼저 확인하는 것이 좋습니다.

사전 구성된 AI 에이전트 클라이언트를 사용 설정하려면 다음 단계를 따르세요.

  1. Looker 관리 패널에서 인증 섹션으로 이동하여 OAuth 클라이언트 관리를 선택합니다.
  2. 애플리케이션 라이브러리 탭을 선택합니다.
  3. AI 에이전트의 클라이언트 애플리케이션 (예: Cursor, Claude Code, Cline, Gemini CLI)을 찾습니다. 검색창을 사용하여 이름으로 필터링할 수 있습니다.
  4. 사용 설정 스위치를 사용으로 전환합니다.
  5. 클라이언트 행에 표시된 클라이언트 ID를 복사합니다. AI 에이전트의 MCP 설정 (예: mcp.json 또는 시작 플래그)을 구성할 때 이 클라이언트 ID를 제공합니다. Looker 관리자 역할이 없는 Looker 사용자가 이 클라이언트를 사용해야 하는 경우 클라이언트 ID를 배포합니다.

리디렉션 URI 및 동적 포트 처리

Looker에서는 OAuth 리디렉션 URI가 등록된 값과 정확히 일치해야 하며 와일드 카드 리디렉션 URI는 지원되지 않습니다. 일부 AI 도구는 OAuth 콜백을 시작할 때 기본적으로 동적 또는 임시 로컬 포트를 사용합니다 (예: Claude Code 또는 Cline). 이러한 도구를 수용하기 위해 Looker는 각 라이브러리 클라이언트에 대해 고정된 기본 포트를 미리 등록합니다 (예: Claude Code 및 Cline의 경우 포트 8080, Gemini CLI의 경우 포트 7777).

동적 포트가 있는 사전 구성된 라이브러리 클라이언트를 사용하려면 다음 옵션 중 하나를 선택합니다.

  • 사전 등록된 정적 포트를 사용하도록 클라이언트 구성: 도구의 설정 또는 시작 명령어에서 사전 등록된 포트를 지정합니다. 예를 들면 다음과 같습니다.
    • Claude Code: --callback-port 8080 플래그를 사용하여 Claude Code를 실행하거나 mcp.json에서 "callbackPort": 8080를 구성합니다.
    • Cline: OAuth 콜백 포트를 8080로 구성합니다.
    • Gemini CLI: 환경 변수 export OAUTH_CALLBACK_PORT=7777를 설정합니다.
    • VS Code: 사전 등록된 정적 URI http://127.0.0.1:33418/를 사용합니다.
  • 커스텀 클라이언트 등록: 다른 포트 또는 커스텀 콜백 URL을 사용해야 하는 경우 다음 섹션에 설명된 대로 원하는 리디렉션 URI를 사용하여 커스텀 클라이언트를 등록합니다.

옵션 2: 커스텀 AI 에이전트 클라이언트 등록

AI 에이전트가 애플리케이션 라이브러리에 포함되어 있지 않거나 커스텀 콜백 URL 또는 포트를 사용해야 하는 경우 관리자 설정 - OAuth 클라이언트 관리 문서의 단계를 완료하여 커스텀 클라이언트를 등록하세요. 클라이언트를 추가한 후 MCP 클라이언트를 구성할 때 사용할 클라이언트 ID를 복사합니다.

프로그래매틱 등록 (API 탐색기 또는 API)

자동 배포 (예: CI/CD 파이프라인 또는 프로비저닝 스크립트)의 경우 Looker 관리자가 프로그래매틱 방식으로 OAuth 클라이언트를 등록할 수 있습니다.

이 섹션을 펼쳐 API 또는 API 탐색기를 사용하여 OAuth 클라이언트를 등록하는 방법을 확인하세요.

oauth_client_apps API 엔드포인트를 curl와 함께 직접 사용하여 AI 에이전트를 등록할 수 있습니다.

curl -X POST "https://LOOKER_INSTANCE_URL/api/4.0/oauth_client_apps/CLIENT_GUID" \
-H "Authorization: token ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
  "redirect_uri": "REDIRECT_URI",
  "display_name": "CLIENT_NAME",
  "description": "OAuth client to access MCP server using CLIENT_NAME",
  "enabled": true
}'

또는 Looker API 탐색기를 사용할 수 있습니다.

  1. 인증 메서드에서 OAuth 앱 등록 API 엔드포인트를 찾습니다.
  2. 실행을 클릭하고 CLIENT_GUID, redirect_uri, display_name, description를 입력한 후 확인 체크박스를 선택하고 실행을 클릭합니다.
    • Gemini CLI
      http://localhost:7777/oauth/callback
      

      참고: Gemini CLI와 같은 일부 도구에서는 도구가 등록된 리디렉션 URI와 일치하는 정적 포트를 사용하도록 환경 변수 (예: export OAUTH_CALLBACK_PORT=7777)를 설정해야 할 수 있습니다.

    • Gemini Code Assist
      http://localhost:7777/oauth/callback
      

      Gemini Code Assist와 함께 Gemini CLI를 사용하는 것이 좋습니다. 이 경우 동일한 로컬 콜백 서버 및 포트 구성을 공유합니다.

    • Gemini Enterprise
      https://vertexaisearch.cloud.google.com/oauth-redirect
      
    • Claude code

      Claude Code는 OAuth 콜백에 사용 가능한 임의의 포트를 사용하지만, 등록된 URI와 일치하도록 --callback-port 8080 플래그 (또는 mcp.json의 callbackPort 설정)를 사용하여 수정해야 합니다.

      http://localhost:8080/callback
      
    • VS Code

      VS Code의 경우 다음 URI를 사용합니다.

      http://127.0.0.1:33418/
      

      참고: URI 끝에 후행 슬래시 (/)가 필요합니다.

    • 클라우드 호스팅 앱

      클라우드 호스팅 애플리케이션의 경우 보안 HTTPS URL과 같이 표시될 수 있습니다.

      https://AI_AGENT_URL/oauth2callback
      
    • 현지 앱

      로컬에서 실행되는 애플리케이션의 경우 리디렉션 URI는 정적 포트가 있는 localhost URL이어야 합니다.

      http://localhost:7777/oauth/callback
      
  3. 등록을 확인하려면 CLIENT_GUID를 사용하여 OAuth 클라이언트 앱 가져오기 엔드포인트를 실행합니다.

MCP 클라이언트 구성

AI 에이전트가 등록되면 이를 MCP 클라이언트로 관리형 MCP 엔드포인트에 연결할 수 있습니다. 에이전트 문서를 참고하여 클라이언트 설정을 완료합니다.

  • 서버 URL: LOOKER_INSTANCE_URL/mcp
  • 인증: OAuth 2.1

구성 예시 (mcp.json)

이 섹션에서는 Looker 관리 MCP 서버를 사용하여 Looker 인스턴스에 연결하도록 다양한 개발자 도구를 구성하는 방법을 설명합니다. MCP 서버는 IDE와 Looker 사이에 위치하며 AI 도구를 위한 안전하고 효율적인 컨트롤 플레인을 제공합니다. 특정 도구의 탭을 선택하여 구성 안내를 확인합니다.

Gemini CLI

Looker 관리 MCP 서버에 직접 연결하도록 Gemini CLI를 구성합니다.

  1. Gemini CLI를 설치합니다.
  2. 다음 명령어를 사용하여 원격 MCP 서버를 추가합니다. 이때 LOOKER_INSTANCE_URL을 Looker 인스턴스 URL로 바꿉니다.
    gemini mcp add --transport http looker LOOKER_INSTANCE_URL/mcp
    

    또는 settings.json 파일(~/.gemini/settings.json 또는 프로젝트 디렉터리에 있음)에 다음 구성을 추가하여 수동으로 구성할 수 있습니다.

    {
      "mcpServers": {
        "looker": {
          "httpUrl": "LOOKER_INSTANCE_URL/mcp",
          "oauth": {
            "clientId": "CLIENT_GUID"
          }
        }
      }
    }
    
  3. 대화형 모드에서 Gemini CLI를 시작합니다.
    gemini
    
    연결하라는 메시지가 표시되면 CLI가 OAuth 승인 흐름을 시작하여 Looker 인스턴스를 안전하게 인증합니다.

Gemini Code Assist

Gemini Code Assist에서 Gemini CLI를 사용하도록 구성하는 것이 좋습니다. 이 방법을 사용하면 MCP 서버를 수동으로 구성하지 않아도 됩니다.

  1. Gemini CLI 및 Looker 관리 MCP 서버가 설치되고 구성되었는지 확인합니다.
  2. Gemini Code Assist에서 Gemini CLI를 사용하도록 구성합니다.
  3. Gemini Code Assist 채팅 내에서 직접 자연어를 사용하여 Looker 인스턴스와 상호작용합니다.

Gemini Enterprise

Looker 관리 MCP 서버에 커스텀 MCP 서버 데이터 스토어로 연결하도록 Gemini Enterprise를 구성합니다.

  1. 공식 문서에 따라 Gemini Enterprise에서 커스텀 MCP 서버 데이터 스토어를 만듭니다.
  2. 데이터 스토어 구성의 경우 다음 값을 사용합니다. 여기서 LOOKER_INSTANCE_URL은 Looker 인스턴스 URL로, CLIENT_GUID은 OAuth 앱 등록 중에 사용한 정확한 문자열로 바꿉니다.
    {
      "instance_uri": "LOOKER_INSTANCE_URL/mcp",
      "auth_uri": "LOOKER_INSTANCE_URL/auth",
      "auth_uri_params": "&response_type=code&code_challenge_method=S256",
      "token_uri": "LOOKER_INSTANCE_URL/api/token",
      "client_id": "CLIENT_GUID",
      "client_secret": "none",
      "scopes": "cors_api",
      "pkce_support_enabled": "true"
    }
    

    PKCE에는 OAuth 클라이언트 보안 비밀번호가 필요하지 않지만 Gemini Enterprise에는 client_secret 필드에 값이 필요합니다. 구성 예시에 표시된 대로 none를 입력할 수 있습니다.

  3. 계속하려면 OAuth를 통해 인증하세요.
  4. Gemini가 서버를 호출할 시점을 이해할 수 있도록 MCP 서버 설명을 설정합니다. 예를 들면 다음과 같습니다.
    Looker Agent with API access to various aspects of Looker. Primarily used to fetch data and run dashboards from Looker.
    
  5. MCP 서버 에이전트 요청 사항을 정의합니다. 예를 들면 다음과 같습니다.
    Use this server exclusively to interact with the Looker instance for monitoring health, checking status, and retrieving data.
    Invoke the Looker MCP server for the following request categories:
      - Instance Health Checks: Auditing connection status, uptime, performance metrics, or system errors.
      - Analytics Queries & Data Retrieval: Fetching live business metrics from Explores, Looks, or Dashboards.
    Strict Constraints:
      - No Local Estimation: Do not guess. Always fetch real-time data via MCP tools.
      - Fallback Behavior: Inform the user of connectivity failures immediately.
    
  6. 방금 만든 커스텀 MCP 데이터 스토어의 작업 탭으로 이동하여 Gemini Enterprise에서 사용할 도구를 사용 설정합니다.
  7. Gemini Enterprise로 이동하여 커넥터 아이콘을 클릭하고 MCP 서버를 승인하여 설정을 완료합니다.

Claude code

  1. Claude Code를 설치합니다.
  2. 프로젝트 루트에 .mcp.json 파일이 없으면 이 파일을 만듭니다.
  3. 다음 구성을 추가하고 LOOKER_INSTANCE_URL를 Looker 인스턴스의 URL로, CLIENT_GUID를 OAuth 클라이언트 GUID로 바꾼 후 저장합니다.

      {
        "mcpServers": {
          "looker": {
            "type": "http",
            "url": "LOOKER_INSTANCE_URL/mcp",
            "oauth": {
              "clientId": "CLIENT_GUID",
              "callbackPort": 8080
            }
          }
        }
      }
  

Claude Desktop

  1. Claude 데스크톱에서 설정으로 이동하여 커넥터를 선택합니다.
  2. 커스텀 커넥터 추가를 선택하고 이름 (예: Looker)을 입력합니다.
  3. URL에 /mcp 경로가 추가된 Looker 인스턴스의 URL을 입력합니다 (예: https://looker.example.com/mcp).
  4. 고급 설정에서 OAuth 앱 등록 중에 CLIENT_GUID에 사용한 정확한 문자열을 입력합니다. OAuth 클라이언트 보안 비밀번호는 비워 둡니다.
  5. 추가를 선택하여 커넥터를 저장합니다. 연결하라는 메시지가 표시되면 Claude 데스크톱은 브라우저를 통해 PKCE 승인 흐름을 안전하게 시작합니다.
  1. Claude Desktop을 다시 시작합니다.

Cline

  1. IDE에서 Cline 확장 프로그램을 열고 MCP 서버 아이콘을 클릭합니다.
  2. MCP 서버 구성을 클릭하여 구성 파일을 엽니다.
  3. 다음 구성을 추가하고 LOOKER_INSTANCE_URL를 Looker URL로 바꾼 후 저장합니다.

      {
        "mcpServers": {
          "looker": {
            "type": "http",
            "url": "LOOKER_INSTANCE_URL/mcp"
          }
        }
      }
  

서버가 성공적으로 연결되면 녹색 활성 상태가 표시됩니다.

커서

  1. 프로젝트 루트에 .cursor 디렉터리가 없으면 이 디렉터리를 만듭니다.
  2. .cursor/mcp.json 파일이 없으면 만들고 엽니다.
  3. 다음 구성을 추가하고 LOOKER_INSTANCE_URL를 Looker URL로 바꾼 후 저장합니다.
      {
        "mcpServers": {
          "looker": {
            "url": "LOOKER_INSTANCE_URL/mcp",
            auth: {
              "CLIENT_ID": "CLIENT_GUID"
            }
          }
        }
      }
  
  1. 커서를 열고 설정 > 커서 설정 > MCP로 이동합니다. 서버가 연결되면 녹색 활성 상태가 표시됩니다.

Visual Studio Code(Copilot)

  1. VS Code를 열고 프로젝트 루트에 .vscode 디렉터리가 없으면 이 디렉터리를 만듭니다.
  2. .vscode/mcp.json 파일이 없으면 만들고 엽니다.
  3. 다음 구성을 추가하고 LOOKER_INSTANCE_URL를 Looker 인스턴스의 URL로 바꾼 후 저장합니다.
      {
        "servers": {
          "looker": {
            "type": "http",
            "url": "LOOKER_INSTANCE_URL/mcp"
          }
        }
      }
  

Windsurf

  1. Windsurf를 열고 Cascade 어시스턴트로 이동합니다.
  2. MCP 아이콘을 클릭한 후 구성을 클릭하여 구성 파일을 엽니다.
  3. 다음 구성을 추가하고 LOOKER_INSTANCE_URL를 Looker 인스턴스의 URL로 바꾼 후 저장합니다.
      {
        "mcpServers": {
          "looker": {
            "type": "http",
            "url": "LOOKER_INSTANCE_URL/mcp"
          }
        }
      }
  

클라이언트로 인증

mcp.json 설정으로 MCP 클라이언트를 구성한 후 해당 클라이언트를 통해 Looker와 상호작용하려고 처음 시도하면 OAuth 2.1 인증 흐름이 시작됩니다. 일반적으로 클라이언트가 브라우저 창을 열고, 사용자가 표준 사용자 인증 정보를 사용하여 Looker 인스턴스에 로그인하고, 애플리케이션에 사용자를 대신하여 Looker에 액세스할 수 있는 권한을 부여해야 합니다.

이 로그인 프로세스는 MCP 클라이언트가 향후 요청을 위한 액세스 토큰을 가져올 수 있도록 하는 대화형 인증 단계입니다.

자세한 내용은 클라이언트 문서를 참고하세요.

연결되면 클라이언트는 Looker 역할 및 콘텐츠 액세스를 상속합니다. 또한 클라이언트는 Looker 관리자가 MCP 서버에 사용 설정한 AI 도구에 액세스할 수 있습니다. 가능한 모든 도구 목록은 AI 도구 사용 문서를 참고하세요.

보안 및 거버넌스

관리형 MCP 서버는 Looker의 기존 보안 및 거버넌스 프레임워크를 상속하도록 설계되었습니다.

  • 권한 경계: 서버는 엄격한 사용자 수준 권한을 적용합니다. AI 에이전트는 인증된 사용자가 볼 수 있는 권한이 없는 데이터나 모델에 액세스할 수 없습니다.
  • VPC 서비스 제어: VPC 서비스 제어를 사용하는 Looker (Google Cloud 핵심 서비스) 인스턴스의 경우 관리형 MCP 엔드포인트는 추가 정책이나 구성 없이 기존 VPC 서비스 제어 경계를 준수합니다.
  • 고객 관리 암호화 키 (CMEK): CMEK를 사용하는 Looker (Google Cloud 핵심 서비스) 인스턴스의 경우 관리형 MCP 서버는 CMEK를 준수하며 추가 정책이나 구성이 필요하지 않습니다.
  • IP 허용 목록: Looker (Google Cloud 핵심 서비스) 또는 Looker (원본)에서 IP 허용 목록을 사용하는 인스턴스의 경우 관리형 MCP 엔드포인트는 추가 구성 없이 기존 IP 허용 목록 규칙을 준수합니다.

감사 로깅

AI 에이전트가 수행하는 모든 작업은 Looker 시스템 활동 및 Cloud 감사 로그에 로깅됩니다.

시스템 활동

Looker 관리 MCP 서버 활동은 기록 및 이벤트 속성 탐색에서 추적됩니다. 시스템 활동 Explore로 Looker 사용량 모니터링 문서 페이지에서는 다음 샘플 쿼리를 제공합니다.

Cloud 감사 로그

Looker (Google Cloud 핵심 서비스) 인스턴스는 Cloud 감사 로그를 통해 Looker 관리 MCP 서버 활동도 추적합니다. Looker (Google Cloud 핵심 서비스) 감사 로깅 문서 페이지에서는 샘플 쿼리를 제공합니다.

제한사항

  • 세분화된 범위: 관리형 MCP 서버에는 아직 OAuth 범위가 지원되지 않습니다. 액세스 제어는 전역 도구 허용 목록과 사용자의 기본 권한에 따라 달라집니다.
  • 동적 등록: 동적 클라이언트 등록은 프리뷰에서 지원되지 않습니다.
  • 클라이언트 새로고침: 도구 허용 목록의 변경사항은 연결된 클라이언트에 자동으로 푸시되지 않습니다. 사용자는 도구 목록을 변경한 후 30초 동안 기다렸다가 클라이언트를 다시 연결하여 도구 매니페스트를 새로고침해야 합니다. MCP 서버에 다시 연결하는 방법에 관한 자세한 내용은 클라이언트 문서를 참고하세요.
  • 서버 용량: 프리뷰 단계에서는 성능 데이터를 수집할 수 있도록 관리형 MCP 서버가 고정 용량으로 구성됩니다. 사용량이 많은 기간에는 시간 초과가 발생할 수 있습니다. 이는 정상적인 동작입니다.

가격 책정 및 할당량

Looker 관리 MCP 서버는 추가 비용 없이 사용할 수 있습니다. 하지만 AI 에이전트가 수행하는 도구 호출은 인스턴스의 표준 관리 및 쿼리 기반 API 할당량을 사용합니다. 에이전트 활동이 많으면 사용 가능한 API 할당량에 영향을 미칠 수 있습니다.