Skip to main content
Glama

mcp-google-sheets

GitHub 라이센스GitHub Actions 워크플로 상태


🤔 이게 뭐예요?

mcp-google-sheets 는 Python 기반 MCP 서버로, Claude Desktop과 같은 MCP 호환 클라이언트와 Google 스프레드시트 API를 연결하는 다리 역할을 합니다. 정의된 도구 세트를 사용하여 Google 스프레드시트와 상호 작용할 수 있으며, AI 기반 강력한 자동화 및 데이터 조작 워크플로를 구현할 수 있습니다.

🚀 빠른 시작( uvx 사용)

기본적으로 서버는 한 줄로 실행됩니다: uvx mcp-google-sheets .

이 cmd는 필요한 경우 최신 코드를 자동으로 다운로드하여 실행합니다. 하지만 Google Cloud를 설정하는 데는 꽤 많은 단계가 필요하므로 아래 단계를 참조하세요.

  1. ☁️ 필수 조건: Google Cloud 설정
    • 먼저 Google Cloud Platform 사용자 인증 정보를 구성하고 필요한 API를 활성화 해야 합니다 . 서비스 계정을 사용하는 것을 적극 권장합니다.
    • ➡️ 아래의 자세한 Google Cloud Platform 설정 가이드로 이동하세요.
  2. 🐍 uv 설치
    • uvx 빠른 Python 패키지 설치 및 확인 프로그램인 uv 의 일부입니다. 아직 설치하지 않았다면 지금 설치하세요.지엑스피1필요한 경우 설치 프로그램 출력의 지침에 따라 uv PATH에 추가하세요.
  3. 🔑 필수 환경 변수 설정(서비스 계정 권장)
    • 서버에 인증 방법을 알려줘야 합니다. 터미널에서 다음 변수를 설정하세요.
    • (리눅스/맥OS)
      # Replace with YOUR actual path and folder ID from the Google Setup step export SERVICE_ACCOUNT_PATH="/path/to/your/service-account-key.json" export DRIVE_FOLDER_ID="YOUR_DRIVE_FOLDER_ID"
    • (윈도우 CMD)
      set SERVICE_ACCOUNT_PATH="C:\path\to\your\service-account-key.json" set DRIVE_FOLDER_ID="YOUR_DRIVE_FOLDER_ID"
    • (윈도우 PowerShell)
      $env:SERVICE_ACCOUNT_PATH = "C:\path\to\your\service-account-key.json" $env:DRIVE_FOLDER_ID = "YOUR_DRIVE_FOLDER_ID"
    • ➡️ 다른 옵션(OAuth, CREDENTIALS_CONFIG )에 대한 자세한 인증 및 환경 변수를 참조하세요.
  4. 🏃 서버를 실행하세요!
    • uvx 자동으로 mcp-google-sheets 의 최신 버전을 다운로드하고 실행합니다.
      uvx mcp-google-sheets
    • 서버가 시작되고 준비가 되었음을 나타내는 로그가 인쇄됩니다.
  5. 🔌 MCP 클라이언트 연결
    • 실행 중인 서버에 연결하도록 클라이언트(예: Claude Desktop)를 구성합니다.
    • 사용하는 클라이언트에 따라 4단계가 필요하지 않을 수도 있습니다. 클라이언트가 서버를 자동으로 실행해 주기 때문입니다. 하지만 4단계를 테스트하여 모든 것이 제대로 설정되었는지 확인하는 것이 좋습니다.
    • ➡️ 예시는 Claude Desktop에서의 사용법을 참조하세요.

준비되었습니다! MCP 클라이언트를 통해 명령을 실행해 보세요.


✨ 주요 특징

  • 원활한 통합: Google Drive 및 Google Sheets API에 직접 연결됩니다.
  • 포괄적인 도구: 다양한 작업(CRUD, 목록 작성, 일괄 처리, 공유, 서식 지정 등)을 제공합니다.
  • 유연한 인증: 서비스 계정(권장) , OAuth 2.0 및 환경 변수를 통한 직접 자격 증명 주입을 지원합니다.
  • 간편한 배포: uvx 사용하여 즉시 실행(설치가 필요 없음)하거나 uv 사용하여 개발용으로 복제하세요.
  • AI 지원: MCP 호환 클라이언트와 함께 사용하도록 설계되어 자연어 스프레드시트 상호 작용이 가능합니다.

🛠️ 사용 가능한 도구 및 리소스

이 서버는 Google 시트와 상호 작용하기 위한 다음 도구를 제공합니다.

(입력 매개변수는 달리 지정하지 않는 한 일반적으로 문자열입니다)

  • list_spreadsheets : 구성된 Drive 폴더(서비스 계정)에 있는 스프레드시트나 사용자가 액세스할 수 있는 스프레드시트(OAuth)를 나열합니다.
    • 반환: 객체 목록 [{id: string, title: string}]
  • create_spreadsheet : 새로운 스프레드시트를 만듭니다.
    • title (문자열): 원하는 제목입니다.
    • 반환: 스프레드시트 정보가 있는 객체( spreadsheetId 포함)
  • get_sheet_data : 시트의 범위에서 데이터를 읽습니다.
    • spreadsheet_id (문자열)
    • sheet (문자열): 시트의 이름입니다.
    • range (선택적 문자열): A1 표기법(예: 'A1:C10' , 'Sheet1!B2:D' ). 생략하면 전체 시트를 읽습니다.
    • 반환값: 셀 값의 2D 배열.
  • update_cells : 특정 범위에 데이터를 쓰고, 기존 데이터를 덮어씁니다.
    • spreadsheet_id (문자열)
    • sheet (끈)
    • range (문자열): A1 표기법.
    • data (2차원 배열): 쓸 값입니다.
    • 반환: 결과 객체를 업데이트합니다.
  • batch_update_cells : 하나의 API 호출로 여러 범위를 업데이트합니다.
    • spreadsheet_id (문자열)
    • sheet (끈)
    • ranges (객체): 범위 문자열(A1 표기법)을 값의 2차원 배열 { "A1:B2": [[1, 2], [3, 4]], "D5": [["Hello"]] } .
    • 반환: 일괄 업데이트 결과 객체.
  • add_rows : 시트의 끝(데이터가 있는 마지막 행 뒤)에 행을 추가합니다.
    • spreadsheet_id (문자열)
    • sheet (끈)
    • data (2차원 배열): 추가할 행입니다.
    • 반환: 결과 객체를 업데이트합니다.
  • list_sheets : 스프레드시트 내의 모든 시트 이름을 나열합니다.
    • spreadsheet_id (문자열)
    • 반환: 시트 이름 문자열 목록 ["Sheet1", "Sheet2"] .
  • create_sheet : 스프레드시트에 새로운 시트(탭)를 추가합니다.
    • spreadsheet_id (문자열)
    • title (문자열): 새 시트의 이름입니다.
    • 반환: 새로운 시트 속성 객체.
  • get_multiple_sheet_data : 한 번의 호출로 잠재적으로 서로 다른 스프레드시트의 여러 범위에서 데이터를 가져옵니다.
    • queries (객체 배열): 각 객체에는 spreadsheet_id , sheet , range 필요합니다. [{spreadsheet_id: 'abc', sheet: 'Sheet1', range: 'A1:B2'}, ...] .
    • 반환: 쿼리 매개변수와 가져온 data 또는 error 각각 포함하는 개체 목록입니다.
  • get_multiple_spreadsheet_summary : 여러 스프레드시트의 제목, 시트 이름, 머리글 및 처음 몇 행을 가져옵니다.
    • spreadsheet_ids (문자열 배열)
    • rows_to_fetch (선택적 정수, 기본값 5): 미리 볼 행 수(헤더 포함).
    • 반환: 각 스프레드시트에 대한 요약 개체 목록입니다.
  • share_spreadsheet : 지정된 사용자/이메일 및 역할과 스프레드시트를 공유합니다.
    • spreadsheet_id (문자열)
    • recipients (객체 배열): [{email_address: 'user@example.com', role: 'writer'}, ...] . 역할: reader , commenter , writer .
    • send_notification (선택적 부울, 기본값 True): 이메일 알림을 보냅니다.
    • 반환: successesfailures 목록이 있는 사전입니다.
  • add_columns : 시트에 열을 추가합니다. (매개변수가 구현된 경우 확인)
  • copy_sheet : 스프레드시트 내에서 시트를 복제합니다. (구현된 경우 매개변수 확인)
  • rename_sheet : 기존 시트의 이름을 변경합니다. (구현된 경우 매개변수 확인)

MCP 리소스:

  • spreadsheet://{spreadsheet_id}/info : Google 스프레드시트에 대한 기본 메타데이터를 가져옵니다.
    • 반환: 스프레드시트 정보가 포함된 JSON 문자열.

☁️ Google Cloud Platform 설정(자세히)

서버를 실행하기 전에 이 설정이 필요합니다 .

  1. GCP 프로젝트 만들기/선택: Google Cloud Console 로 이동합니다.
  2. API 활성화: "API 및 서비스" -> "라이브러리"로 이동합니다. 다음 API를 검색하여 활성화합니다.
    • Google Sheets API
    • Google Drive API
  3. 자격 증명 구성: 아래에서 하나의 인증 방법을 선택해야 합니다(서비스 계정 권장).

🔑 인증 및 환경 변수(자세히)

Google API에 액세스하려면 서버에 사용자 인증 정보가 필요합니다. 다음 방법 중 하나를 선택하세요.

방법 A: 서비스 계정(서버/자동화에 권장) ✅

  • 왜냐고요? 헤드리스(브라우저 필요 없음), 보안, 서버 환경에 적합하고, 쉽게 만료되지 않기 때문입니다.
  • 단계:
    1. 서비스 계정 만들기: GCP 콘솔 -> "IAM 및 관리자" -> "서비스 계정".
      • "+ 서비스 계정 만들기"를 클릭하세요. 계정 이름을 지정하세요(예: mcp-sheets-service ).
      • 역할 부여: 광범위한 액세스 권한을 원할 경우 Editor 역할을 추가하고, 더 엄격한 권한을 원할 경우 더 세부적인 역할(예: roles/drive.file 및 특정 시트 역할)을 추가합니다.
      • "완료"를 클릭하세요. 계정을 찾은 후 작업(⋮) -> "키 관리"를 클릭하세요.
      • "키 추가" -> "새 키 만들기" -> JSON -> "만들기"를 클릭합니다.
      • JSON 키 파일을 다운로드하여 안전하게 저장하세요 .
    2. Google Drive 폴더 만들기 및 공유:
      • Google 드라이브 에서 폴더(예: "AI 관리 시트")를 만듭니다.
      • URL https://drive.google.com/drive/folders/THIS_IS_THE_FOLDER_ID 에서 폴더 ID를 확인하세요.
      • 폴더를 마우스 오른쪽 버튼으로 클릭 -> "공유" -> "공유".
      • 서비스 계정의 이메일을 입력합니다(JSON 파일 client_email ).
      • 편집자 권한을 부여하세요. "다른 사람에게 알림"을 선택 해제하세요. "공유"를 클릭하세요.
    3. 환경 변수 설정:
      • SERVICE_ACCOUNT_PATH : 다운로드한 JSON 키 파일의 전체 경로입니다.
      • DRIVE_FOLDER_ID : 공유 Google Drive 폴더의 ID입니다. (OS별 예시는 Ultra Quick Start를 참조하세요.)

방법 B: OAuth 2.0(대화형/개인용) 🧑‍💻

  • 왜 그럴까요? 개인적인 용도나 대화형 브라우저 로그인이 허용되는 로컬 개발 환경에서 사용하기 때문입니다.
  • 단계:
    1. OAuth 동의 화면 구성: GCP 콘솔 -> "API 및 서비스" -> "OAuth 동의 화면"에서 "외부"를 선택하고 필수 정보를 입력한 후, 범위( .../auth/spreadsheets , .../auth/drive )를 추가하고, 필요한 경우 테스트 사용자를 추가합니다.
    2. OAuth 클라이언트 ID 생성: GCP 콘솔 -> "API 및 서비스" -> "사용자 인증 정보"에서 "+ CREATE CREDENTIALS" -> "OAuth 클라이언트 ID"를 선택하고, 데스크톱 앱을 입력한 후 "CREATE"라는 이름을 지정합니다. JSON 파일을 다운로드합니다 .
    3. 환경 변수 설정:
      • CREDENTIALS_PATH : 다운로드한 OAuth 자격 증명 JSON 파일의 경로(기본값: credentials.json ).
      • TOKEN_PATH : 첫 로그인 후 사용자의 새로 고침 토큰을 저장할 경로(기본값: token.json ). 쓰기 가능해야 합니다.

방법 C: 직접 자격 증명 주입(고급) 🔒

  • 왜 그럴까요? Docker, Kubernetes, CI/CD처럼 파일 관리는 어렵지만 환경 변수가 쉽고 안전한 환경에서 유용합니다. 파일 시스템 접근을 방지합니다.
  • 어떻게요? 자격 증명 파일 경로 를 제공하는 대신, Base64로 인코딩된 파일 내용을 환경 변수에 직접 제공합니다.
  • 단계:
    1. 자격 증명 JSON 파일(서비스 계정 키 또는 OAuth 클라이언트 ID 파일)을 가져오세요 . 파일 이름을 your_credentials.json 으로 지정하겠습니다.
    2. Base64 문자열을 생성합니다.
      • (Linux/macOS): base64 -w 0 your_credentials.json
      • (Windows PowerShell):
        $filePath = "C:\path\to\your_credentials.json"; # Use actual path $bytes = [System.IO.File]::ReadAllBytes($filePath); $base64 = [System.Convert]::ToBase64String($bytes); $base64 # Copy this output
      • (주의): 신뢰할 수 없는 온라인 인코더에 중요한 자격 증명을 붙여넣지 마세요.
    3. 환경 변수를 설정하세요:
      • CREDENTIALS_CONFIG : 이 변수를 방금 생성한 전체 Base64 문자열 로 설정합니다.
        # Example (Linux/macOS) - Use the actual string generated export CREDENTIALS_CONFIG="ewogICJ0eXBlIjogInNlcnZpY2VfYWNjb..."

인증 우선순위 및 요약

서버는 다음 순서로 자격 증명을 확인합니다.

  1. CREDENTIALS_CONFIG (Base64 콘텐츠)
  2. SERVICE_ACCOUNT_PATH (서비스 계정 JSON 경로)
  3. CREDENTIALS_PATH (OAuth JSON 경로) - 토큰이 없거나 만료된 경우 대화형 흐름을 트리거합니다.

환경 변수 요약:

변하기 쉬운행동 양식)설명기본
SERVICE_ACCOUNT_PATH서비스 계정서비스 계정 JSON 키 파일의 경로입니다.-
DRIVE_FOLDER_ID서비스 계정서비스 계정과 공유되는 Google Drive 폴더의 ID입니다.-
CREDENTIALS_PATH오오티 2.0OAuth 2.0 클라이언트 ID JSON 파일의 경로입니다.credentials.json
TOKEN_PATH오오티 2.0생성된 OAuth 토큰을 저장하는 경로입니다.token.json
CREDENTIALS_CONFIG서비스 계정 / OAuth 2.0Base64로 인코딩된 자격 증명 내용의 JSON 문자열입니다.-

⚙️ 서버 실행(자세히)

방법 1: uvx 사용(사용자 권장)

Ultra Quick Start 에서 볼 수 있듯이, 이것이 가장 쉬운 방법입니다. 환경 변수를 설정한 후 다음을 실행하세요.

uvx mcp-google-sheets

uvx 패키지를 일시적으로 가져오고 실행합니다.

방법 2: 개발용(Repo 복제)

코드를 수정하려면 다음을 수행하세요.

  1. 복제: git clone https://github.com/yourusername/mcp-google-sheets.git && cd mcp-google-sheets (실제 URL 사용)
  2. 환경 변수 설정: 위에서 설명한 대로.
  3. uv 사용하여 실행: (로컬 코드 사용)
    uv run mcp-google-sheets # Or via the script name if defined in pyproject.toml, e.g.: # uv run start

🔌 Claude Desktop과 함께 사용

mcpServers 아래의 claude_desktop_config.json 파일에 서버 구성을 추가합니다. 설정에 맞는 블록을 선택하세요.

{ "mcpServers": { "google-sheets": { "command": "uvx", "args": ["mcp-google-sheets"], "env": { // Use ABSOLUTE paths here "SERVICE_ACCOUNT_PATH": "/full/path/to/your/service-account-key.json", "DRIVE_FOLDER_ID": "your_shared_folder_id_here" }, "healthcheck_url": "http://localhost:8000/health" // Adjust host/port if needed } } }
{ "mcpServers": { "google-sheets": { "command": "uvx", "args": ["mcp-google-sheets"], "env": { // Use ABSOLUTE paths here "CREDENTIALS_PATH": "/full/path/to/your/credentials.json", "TOKEN_PATH": "/full/path/to/your/token.json" // Ensure this path is writable }, "healthcheck_url": "http://localhost:8000/health" } } }

(처음 사용 시 Google 로그인을 위해 브라우저가 열릴 수 있습니다)

{ "mcpServers": { "google-sheets": { "command": "uvx", "args": ["mcp-google-sheets"], "env": { // Paste the full Base64 string here "CREDENTIALS_CONFIG": "ewogICJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIsCiAgInByb2plY3RfaWQiOiAi...", "DRIVE_FOLDER_ID": "your_shared_folder_id_here" // Still needed for Service Account folder context }, "healthcheck_url": "http://localhost:8000/health" } } }
{ "mcpServers": { "mcp-google-sheets-dev": { // Use a distinct name "command": "uv", "args": ["run", "mcp-google-sheets"], // Assumes `mcp-google-sheets` script exists "cwd": "/full/path/to/cloned/mcp-google-sheets", // ABSOLUTE path to repo "env": { // Choose ONE auth method and set corresponding vars // Example: Service Account Path "SERVICE_ACCOUNT_PATH": "/full/path/to/cloned/mcp-google-sheets/service-account-key.json", "DRIVE_FOLDER_ID": "your_shared_folder_id_here" }, "healthcheck_url": "http://localhost:8000/health", "disabled": false } } }

💬 클로드에 대한 예시 프롬프트

연결되면 다음과 같은 메시지를 시도해 보세요.

  • "내가 액세스할 수 있는 모든 스프레드시트를 나열합니다."(또는 "내 AI 관리 시트 폴더")
  • "'2024년 3분기 매출 보고서'라는 제목의 새 스프레드시트를 만드세요."
  • '분기별 판매 보고서' 스프레드시트에서 시트 1의 범위 A1~E10에서 데이터를 가져옵니다.
  • "스프레드시트에 '요약'이라는 이름의 새 시트를 ID 1aBcDeFgHiJkLmNoPqRsTuVwXyZ 로 추가합니다."
  • '프로젝트 작업' 스프레드시트의 '작업' 시트에서 B2 셀을 '진행 중'으로 업데이트하세요.
  • " XYZ 스프레드시트의 '로그' 시트에 다음 행을 추가합니다: [['2024-07-31', 'Task A Completed'], ['2024-08-01', 'Task B Started']] "
  • "판매 데이터'와 '재고 수량' 스프레드시트의 요약을 받으세요."
  • '팀 휴가 일정' 스프레드시트를 team@example.com 에게 독자 권한으로, manager@example.com 에게 작성 권한으로 공유하세요. 알림은 보내지 마세요.

🤝 기여하기

기여를 환영합니다! 버그나 기능 요청은 이슈를 통해 논의해 주세요. 풀 리퀘스트도 환영합니다.


📄 라이센스

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.


🙏 크레딧

-
security - not tested
A
license - permissive license
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Google Drive 및 Google Sheets와 통합된 모델 컨텍스트 프로토콜 서버로, 사용자는 자연어 명령을 통해 스프레드시트를 만들고, 읽고, 업데이트하고, 관리할 수 있습니다.

  1. 🚀 빠른 시작( uvx 사용)
    1. ✨ 주요 특징
      1. 🛠️ 사용 가능한 도구 및 리소스
        1. ☁️ Google Cloud Platform 설정(자세히)
          1. 🔑 인증 및 환경 변수(자세히)
            1. 방법 A: 서비스 계정(서버/자동화에 권장) ✅
            2. 방법 B: OAuth 2.0(대화형/개인용) 🧑‍💻
            3. 방법 C: 직접 자격 증명 주입(고급) 🔒
            4. 인증 우선순위 및 요약
          2. ⚙️ 서버 실행(자세히)
            1. 방법 1: uvx 사용(사용자 권장)
            2. 방법 2: 개발용(Repo 복제)
          3. 🔌 Claude Desktop과 함께 사용
            1. 💬 클로드에 대한 예시 프롬프트
              1. 🤝 기여하기
                1. 📄 라이센스
                  1. 🙏 크레딧

                    Related MCP Servers

                    • -
                      security
                      F
                      license
                      -
                      quality
                      A Model Context Protocol server that connects to Google Cloud services, allowing users to query logs, interact with Spanner databases, and analyze Cloud Monitoring metrics through natural language interaction.
                      Last updated -
                      16
                      2
                      TypeScript
                    • -
                      security
                      A
                      license
                      -
                      quality
                      A Model Context Protocol server that provides seamless integration with Google Workspace, allowing operations with Google Drive, Docs, and Sheets through secure OAuth2 authentication.
                      Last updated -
                      Python
                      MIT License
                      • Linux
                      • Apple
                    • A
                      security
                      F
                      license
                      A
                      quality
                      Provides a Model Context Protocol (MCP) server that enables LLMs to directly access and interact with Google Spreadsheet data.
                      Last updated -
                      2
                      1
                      TypeScript
                      • Apple
                    • A
                      security
                      A
                      license
                      A
                      quality
                      A Model Context Protocol server that enables AI agents to interact with Google Workspace services including Drive, Docs, and Sheets through natural language commands.
                      Last updated -
                      8
                      Python
                      MIT License
                      • Linux
                      • Apple

                    View all related MCP servers

                    MCP directory API

                    We provide all the information about MCP servers via our MCP API.

                    curl -X GET 'https://glama.ai/api/mcp/v1/servers/xing5/mcp-google-sheets'

                    If you have feedback or need assistance with the MCP directory API, please join our Discord server