MCP를 사용하여 LLM을 Cloud Storage에 연결

이 가이드에서는 Cloud Storage를 통합 개발 환경 (IDE) 및 개발자 도구에 연결하는 방법을 보여줍니다. 이렇게 하려면 데이터베이스용 MCP 도구 상자를 사용하여 머신에서 로컬 MCP 서버를 실행합니다.

데이터베이스용 MCP 도구 상자는 Cloud Storage, BigQuery, AlloyDB, Spanner, Cloud SQL을 비롯한 데이터베이스 및 데이터 저장소용 커넥터가 포함된 오픈소스 저장소입니다. 이 도구 상자는 OAuth2 및 OIDC 인증을 지원하고 모니터링 가능성을 위해 Open Telemetry와 통합됩니다. Cloud Storage 도구 상자 통합을 사용하면 LLM을 사용하여 다음 작업을 수행할 수 있습니다.

  • 버킷을 만들고, 나열하고, 삭제합니다.
  • 버킷 및 객체 메타데이터를 가져옵니다.
  • 버킷의 ID 및 액세스 관리 (IAM) 정책을 가져옵니다.
  • 객체 읽기, 쓰기, 업로드, 다운로드
  • 객체를 복사하거나 이동합니다.

이 가이드에서는 다음 IDE 및 도구의 연결 프로세스를 보여줍니다.

  • 커서
  • Windsurf(이전 명칭: Codeium)
  • Visual Studio Code(Copilot)
  • Cline(VS Code 확장 프로그램)
  • Claude Desktop
  • Claude code
  • Antigravity

시작하기 전에

  1. Cloud de Confiance 콘솔의 프로젝트 선택기 페이지에서 Cloud de Confiance by S3NS 프로젝트를 선택하거나 만듭니다.

  2. Cloud de Confiance 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  3. Cloud de Confiance 프로젝트에서 Cloud Storage API를 사용 설정합니다.

  4. 이 태스크를 완료하는 데 필요한 역할과 권한을 구성합니다. LLM 에이전트를 호출하는 사용자에게는 버킷 또는 프로젝트 수준에서 다음 역할이 필요합니다.

    • 버킷을 나열하고, 버킷을 만들고, 빈 버킷을 삭제하려면 스토리지 관리자 (roles/storage.admin) 권한이 필요합니다.
    • 객체 나열, 객체 읽기, 객체 메타데이터 또는 버킷 메타데이터 가져오기: 스토리지 객체 뷰어 (roles/storage.objectViewer)
    • 객체에 콘텐츠를 쓰거나 객체를 업로드하려면 스토리지 객체 생성자 (roles/storage.objectCreator)가 필요합니다.
    • 객체를 복사, 이동 또는 삭제하려면 스토리지 객체 관리자 (roles/storage.objectAdmin)가 필요합니다.
  5. 환경에 애플리케이션 기본 사용자 인증 정보(ADC)를 구성합니다.

Antigravity와 연결

커스텀 구성을 사용하여 Cloud Storage를 Antigravity에 연결합니다. 여기서 맞춤 MCP 서버는 구성 파일 (예: mcp_config.json)을 수정하여 수동으로 구성하는 서버입니다. 이 수동 구성은 내장 MCP 스토어 카탈로그에서 서버를 직접 설치하는 대신 사용됩니다.

맞춤 MCP 서버를 구성하려면 다음을 수행하세요.

  1. 터미널에서 npx --version를 실행하여 npx가 시스템에 설치되어 있고 올바르게 구성되어 있는지 확인합니다. npx가 포함된 Node.js를 설치해야 하는 경우 npm Node.js 및 npm 다운로드 및 설치 가이드를 참고하세요.
  2. Antigravity를 열고 편집기의 에이전트 패널 상단에 있는 '...' 드롭다운을 사용하여 MCP 스토어로 이동합니다.
  3. mcp_config.json 파일을 열려면 MCP 서버를 클릭한 다음 MCP 서버 관리 > 원시 구성 보기를 클릭합니다.
  4. 다음 구성을 추가하고 자리표시자를 프로젝트 ID로 바꾼 후 저장합니다.
    {
      "mcpServers": {
        "storage": {
          "command": "npx",
          "args": ["-y","@toolbox-sdk/server","--prebuilt","cloud-storage","--stdio"],
          "env": {
              "CLOUD_STORAGE_PROJECT": "PROJECT_ID"
          }
        }
      }
    }
    

MCP Toolbox 설치

도구 상자는 머신에서 로컬로 실행되는 오픈소스 모델 컨텍스트 프로토콜 (MCP) 서버입니다. 로컬 서버는 IDE와 Cloud Storage 간의 통신을 관리합니다. 이 연결은 AI 도구를 위한 안전하고 효율적인 환경을 제공합니다.

  1. MCP Toolbox의 최신 버전을 바이너리로 다운로드합니다. 운영체제(OS) 및 CPU 아키텍처에 해당하는 바이너리를 선택합니다. MCP Toolbox 버전 1.2.0 이상을 사용해야 합니다.

    linux/amd64

    curl -O https://storage.googleapis.com/mcp-toolbox-for-databases/VERSION/linux/amd64/toolbox
    

    VERSION을 MCP 도구 상자 버전(예: v1.2.0)으로 바꿉니다.

    macOS darwin/arm64

    curl -O https://storage.googleapis.com/mcp-toolbox-for-databases/VERSION/darwin/arm64/toolbox
    

    VERSION을 MCP 도구 상자 버전(예: v1.2.0)으로 바꿉니다.

    macOS darwin/amd64

    curl -O https://storage.googleapis.com/mcp-toolbox-for-databases/VERSION/darwin/amd64/toolbox
    

    VERSION을 MCP 도구 상자 버전(예: v1.2.0)으로 바꿉니다.

    windows/amd64

    curl -O https://storage.googleapis.com/mcp-toolbox-for-databases/VERSION/windows/amd64/toolbox
    

    VERSION을 MCP 도구 상자 버전(예: v1.2.0)으로 바꿉니다.

  2. 바이너리를 실행 가능하게 만듭니다.

    chmod +x toolbox
    
  3. 설치를 확인합니다.

    ./toolbox --version
    

컨테이너 이미지 또는 Homebrew를 사용하여 툴박스를 설정하려면 툴박스 설치 페이지를 참고하세요.

클라이언트 및 연결 설정

이 섹션에서는 MCP 도구 상자를 설치한 후 Cloud Storage를 도구에 연결하는 방법을 설명합니다.

Claude code

  1. Claude Code를 설치합니다.
  2. 프로젝트 루트에 .mcp.json 파일이 없으면 만듭니다.
  3. 구성을 추가하고 자리표시자를 값으로 바꾼 후 저장합니다.
            {
              "mcpServers": {
                "storage": {
                  "command": "./PATH/TO/toolbox",
                  "args": ["--prebuilt","cloud-storage","--stdio"],
                  "env": {
                    "CLOUD_STORAGE_PROJECT": "PROJECT_ID"
                  }
                }
              }
            }
            
    다음 변수를 값으로 바꿉니다.
    • ./PATH/TO/toolbox: toolbox 바이너리의 경로입니다.
    • CLOUD_STORAGE_PROJECT: Cloud de Confiance 프로젝트 ID를 지정하는 환경 변수입니다.
    • PROJECT_ID: Cloud de Confiance by S3NS 프로젝트 ID입니다.
  4. Claude Code를 다시 시작하여 새 설정을 로드합니다. Claude Code가 다시 열리면 애플리케이션에서 구성된 MCP 서버를 감지합니다.

Claude Desktop

  1. Claude Desktop을 열고 설정으로 이동합니다.
  2. 개발자 탭에서 구성 수정을 클릭하여 구성 파일을 엽니다.
  3. 구성을 추가하고 자리표시자를 값으로 바꾼 후 저장합니다.
            {
              "mcpServers": {
                "storage": {
                  "command": "./PATH/TO/toolbox",
                  "args": ["--prebuilt","cloud-storage","--stdio"],
                  "env": {
                    "CLOUD_STORAGE_PROJECT": "PROJECT_ID"
                  }
                }
              }
            }
            
    다음 변수를 값으로 바꿉니다.
    • ./PATH/TO/toolbox: toolbox 바이너리의 경로입니다.
    • CLOUD_STORAGE_PROJECT: Cloud de Confiance 프로젝트 ID를 지정하는 환경 변수입니다.
    • PROJECT_ID: Cloud de Confiance by S3NS 프로젝트 ID입니다.
  4. Claude Desktop을 다시 시작합니다.
  5. 새 채팅 화면에 새 MCP 서버와 함께 망치(MCP) 아이콘이 표시됩니다.

Cline

  1. VS Code에서 Cline 확장 프로그램을 열고 MCP 서버 아이콘을 클릭합니다.
  2. MCP 서버 구성을 클릭하여 구성 파일을 엽니다.
  3. 다음 구성을 추가하고 자리표시자를 값으로 바꾼 후 저장합니다.
            {
              "mcpServers": {
                "storage": {
                  "command": "./PATH/TO/toolbox",
                  "args": ["--prebuilt","cloud-storage","--stdio"],
                  "env": {
                    "CLOUD_STORAGE_PROJECT": "PROJECT_ID"
                  }
                }
              }
            }
            
    다음 변수를 값으로 바꿉니다.
    • ./PATH/TO/toolbox: toolbox 바이너리의 경로입니다.
    • CLOUD_STORAGE_PROJECT: Cloud de Confiance 프로젝트 ID를 지정하는 환경 변수입니다.
    • PROJECT_ID: Cloud de Confiance by S3NS 프로젝트 ID입니다.

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

커서

  1. 프로젝트 루트에 .cursor 디렉터리가 없으면 이 디렉터리를 만듭니다.
  2. .cursor/mcp.json 파일이 없으면 만들고 엽니다.
  3. 다음 구성을 추가하고 자리표시자를 값으로 바꾼 후 저장합니다.
            {
              "mcpServers": {
                "storage": {
                  "command": "./PATH/TO/toolbox",
                  "args": ["--prebuilt","cloud-storage","--stdio"],
                  "env": {
                    "CLOUD_STORAGE_PROJECT": "PROJECT_ID"
                  }
                }
              }
            }
            
    다음 변수를 값으로 바꿉니다.
    • ./PATH/TO/toolbox: toolbox 바이너리의 경로입니다.
    • CLOUD_STORAGE_PROJECT: Cloud de Confiance 프로젝트 ID를 지정하는 환경 변수입니다.
    • PROJECT_ID: Cloud de Confiance by S3NS 프로젝트 ID입니다.
  4. 커서를 열고 설정 > 커서 설정 > MCP로 이동합니다. 서버가 연결되면 녹색 활성 상태가 표시됩니다.

Visual Studio Code(Copilot)

  1. VS Code를 열고 프로젝트 루트에 .vscode 디렉터리가 없으면 만듭니다.
  2. .vscode/mcp.json 파일이 없으면 만들고 엽니다.
  3. 다음 구성을 추가하고 자리표시자를 값으로 바꾼 후 저장합니다.
            {
              "mcpServers": {
                "storage": {
                  "command": "./PATH/TO/toolbox",
                  "args": ["--prebuilt","cloud-storage","--stdio"],
                  "env": {
                    "CLOUD_STORAGE_PROJECT": "PROJECT_ID"
                  }
                }
              }
            }
            
    다음 변수를 값으로 바꿉니다.
    • ./PATH/TO/toolbox: toolbox 바이너리의 경로입니다.
    • CLOUD_STORAGE_PROJECT: Cloud de Confiance 프로젝트 ID를 지정하는 환경 변수입니다.
    • PROJECT_ID: Cloud de Confiance by S3NS 프로젝트 ID입니다.
  4. VS Code 창을 새로고침합니다. MCP 호환 확장 프로그램이 구성을 자동으로 감지하고 서버를 시작합니다.

Windsurf

  1. Windsurf를 열고 Cascade 어시스턴트로 이동합니다.
  2. MCP 아이콘을 클릭한 후 구성을 클릭하여 구성 파일을 엽니다.
  3. 다음 구성을 추가하고 자리표시자를 값으로 바꾼 후 저장합니다.
            {
              "mcpServers": {
                "storage": {
                  "command": "./PATH/TO/toolbox",
                  "args": ["--prebuilt","cloud-storage","--stdio"],
                  "env": {
                    "CLOUD_STORAGE_PROJECT": "PROJECT_ID"
                  }
                }
              }
            }
            
    다음 변수를 값으로 바꿉니다.
    • ./PATH/TO/toolbox: toolbox 바이너리의 경로입니다.
    • CLOUD_STORAGE_PROJECT: Cloud de Confiance 프로젝트 ID를 지정하는 환경 변수입니다.
    • PROJECT_ID: Cloud de Confiance by S3NS 프로젝트 ID입니다.

사전 빌드된 도구

MCP Toolbox를 Cloud Storage에 연결하면 에이전트가 다음과 같은 사전 빌드된 도구를 사용합니다.

  • list_buckets: 구성된 프로젝트의 Cloud Storage 버킷을 나열합니다.
  • list_objects: 선택적 프리픽스 및 구분자 필터링을 사용하여 버킷의 객체를 나열합니다.
  • get_bucket_metadata: 버킷의 메타데이터를 반환합니다.
  • get_bucket_iam_policy: 버킷의 IAM 정책 바인딩을 반환합니다.
  • get_object_metadata: 객체의 메타데이터를 반환합니다.
  • read_object: UTF-8 텍스트 객체 (또는 바이트 범위)를 읽습니다. 8MiB로 제한되며 바이너리 객체는 거부됩니다.
  • download_object: 객체를 로컬 경로로 다운로드합니다.
  • create_bucket: 구성된 프로젝트에 버킷을 만듭니다.
  • delete_bucket: 빈 버킷을 삭제합니다.
  • upload_object: 로컬 파일을 객체에 업로드합니다.
  • write_object: 텍스트 콘텐츠를 객체에 직접 씁니다.
  • copy_object: 객체를 대상 객체에 복사합니다.
  • move_object: 동일한 버킷 내에서 객체의 이름을 원자적으로 바꿉니다.
  • delete_object: 객체를 삭제합니다.