mcp-google-sheet
🤔 이게 뭔가요?
mcp-google-sheets는 Python 기반 MCP 서버로, MCP 호환 클라이언트(예: Claude Desktop)와 Google Sheets API 사이의 브리지 역할을 합니다. 정의된 도구 세트를 사용하여 Google 스프레드시트와 상호작용할 수 있으며, AI 기반의 강력한 자동화 및 데이터 조작 워크플로우를 가능하게 합니다.
Related MCP server: mcp-google-sheets
🚀 빠른 시작 (uvx 사용)
기본적으로 서버는 한 줄로 실행됩니다: uvx mcp-google-sheets@latest.
이 명령은 최신 코드를 자동으로 다운로드하여 실행합니다. 항상 @latest를 사용할 것을 권장합니다. 최신 기능과 버그 수정이 포함된 최신 버전을 보장받을 수 있습니다.
아래에서 사용되는 ID에 대한 자세한 내용은 ID 참조 가이드를 참조하세요.
☁️ 사전 준비: Google Cloud 설정
먼저 Google Cloud Platform 자격 증명을 구성하고 필요한 API를 활성화해야 합니다. 서비스 계정(Service Account) 사용을 강력히 권장합니다.
➡️ 아래의 상세 Google Cloud Platform 설정 가이드로 이동하세요.
🐍
uv설치uvx는 빠른 Python 패키지 설치 및 해석 도구인uv의 일부입니다. 아직 설치하지 않았다면 설치하세요:# macOS / Linux curl -LsSf https://astral.sh/uv/install.sh | sh # Windows powershell -c "irm https://astral.sh/uv/install.ps1 | iex" # Or using pip: # pip install uv필요한 경우 설치 프로그램 출력의 지침에 따라
uv를 PATH에 추가하세요.
🔑 필수 환경 변수 설정 (서비스 계정 권장)
서버에 인증 방법을 알려줘야 합니다. 터미널에서 다음 변수를 설정하세요:
(Linux/macOS)
# 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"(Windows CMD)
set SERVICE_ACCOUNT_PATH="C:\path\to\your\service-account-key.json" set DRIVE_FOLDER_ID="YOUR_DRIVE_FOLDER_ID"(Windows PowerShell)
$env:SERVICE_ACCOUNT_PATH = "C:\path\to\your\service-account-key.json" $env:DRIVE_FOLDER_ID = "YOUR_DRIVE_FOLDER_ID"➡️ 다른 옵션(OAuth,
CREDENTIALS_CONFIG)은 상세 인증 및 환경 변수를 참조하세요.
🏃 서버 실행!
uvx가 최신 버전의mcp-google-sheets를 자동으로 다운로드하여 실행합니다:uvx mcp-google-sheets@latest서버가 시작되고 준비 완료를 알리는 로그를 출력합니다.
💡 프로 팁: 항상
@latest를 사용하여 버그 수정과 기능이 포함된 최신 버전을 받으세요.@latest없이 사용하면uvx가 캐시된 이전 버전을 사용할 수 있습니다.
🔌 MCP 클라이언트 연결
사용 중인 클라이언트(예: Claude Desktop)가 실행 중인 서버에 연결하도록 구성하세요.
사용하는 클라이언트에 따라 4단계가 필요하지 않을 수 있습니다. 클라이언트가 서버를 직접 실행할 수 있기 때문입니다. 하지만 제대로 설정되었는지 확인하기 위해 4단계를 테스트 실행해 보는 것이 좋은 습관입니다.
➡️ 예시는 Claude Desktop에서 사용하기를 참조하세요.
⚡ 선택 사항: 도구 필터링 활성화 (컨텍스트 사용량 줄이기)
기본적으로 19개 도구가 모두 활성화되어 있습니다(~13K 토큰). 컨텍스트 사용량을 줄이려면 필요한 도구만 활성화하세요.
➡️ 자세한 내용은 도구 필터링을 참조하세요.
준비 완료! MCP 클라이언트를 통해 명령을 실행하세요.
✨ 주요 기능
원활한 통합: Google Drive 및 Google Sheets API에 직접 연결합니다.
포괄적인 도구: 다양한 작업(CRUD, 목록 조회, 일괄 처리, 공유, 서식 지정 등)을 제공합니다.
유연한 인증: 서비스 계정(권장), OAuth 2.0, 환경 변수를 통한 직접 자격 증명 주입을 지원합니다.
간편한 배포:
uvx로 즉시 실행(설치 없이 사용)하거나uv를 사용하여 개발용으로 클론할 수 있습니다.AI 지원: MCP 호환 클라이언트와 함께 사용하도록 설계되어 자연어로 스프레드시트를 조작할 수 있습니다.
도구 필터링:
--include-tools또는ENABLED_TOOLS환경 변수로 필요한 도구만 활성화하여 컨텍스트 창 사용량을 줄일 수 있습니다.
🎯 도구 필터링 (컨텍스트 사용량 줄이기)
문제: 기본적으로 이 MCP 서버는 19개 도구를 모두 노출하여 대화가 시작되기 전에 ~13,000 토큰을 소비합니다. 몇 개의 도구만 필요하다면 이는 귀중한 컨텍스트 창 공간을 낭비하는 것입니다.
해결책: 도구 필터링을 사용하여 실제로 사용하는 도구만 활성화하세요.
도구 필터링 활성화 방법
다음 두 가지 방법으로 도구를 필터링할 수 있습니다:
명령줄 인자
--include-tools:{ "mcpServers": { "google-sheets": { "command": "uvx", "args": [ "mcp-google-sheets@latest", "--include-tools", "get_sheet_data,update_cells,list_spreadsheets,list_sheets" ], "env": { "SERVICE_ACCOUNT_PATH": "/path/to/credentials.json" } } } }환경 변수
ENABLED_TOOLS:{ "mcpServers": { "google-sheets": { "command": "uvx", "args": ["mcp-google-sheets@latest"], "env": { "SERVICE_ACCOUNT_PATH": "/path/to/credentials.json", "ENABLED_TOOLS": "get_sheet_data,update_cells,list_spreadsheets,list_sheets" } } } }
사용 가능한 도구 이름
필터링 시 다음 정확한 도구 이름을 사용하세요(쉼표로 구분, 공백 없음):
가장 일반적인 도구 (권장 하위 집합):
get_sheet_data- 스프레드시트에서 읽기update_cells- 스프레드시트에 쓰기list_spreadsheets- 스프레드시트 찾기list_sheets- 탭 탐색
모든 사용 가능한 도구:
add_columnsadd_rowsbatch_updatebatch_update_cellscopy_sheetcreate_sheetcreate_spreadsheetfind_in_spreadsheetget_multiple_sheet_dataget_multiple_spreadsheet_summaryget_sheet_dataget_sheet_formulaslist_folderslist_sheetslist_spreadsheetsrename_sheetsearch_spreadsheetsshare_spreadsheetupdate_cells
참고: --include-tools 또는 ENABLED_TOOLS가 모두 지정되지 않으면 모든 도구가 활성화됩니다(기본 동작).
🛠️ 사용 가능한 도구 및 리소스
이 서버는 Google Sheets와 상호작용하기 위한 다음 도구를 제공합니다:
아래에서 사용되는 ID에 대한 자세한 내용은 ID 참조 가이드를 참조하세요.
(입력 매개변수는 별도로 명시되지 않는 한 일반적으로 문자열입니다)
list_spreadsheets: 구성된 Drive 폴더(서비스 계정) 또는 사용자가 접근 가능한(OAuth) 스프레드시트를 나열합니다.folder_id(선택적 문자열): 검색할 Google Drive 폴더 ID. URL에서 가져옵니다. 생략하면 구성된 기본 폴더를 사용하거나 'My Drive'를 검색합니다.반환값: 객체 목록
[{id: string, title: string}]
create_spreadsheet: 새 스프레드시트를 생성합니다.title(문자열): 스프레드시트의 원하는 제목. 예: "Quarterly Report Q4".folder_id(선택적 문자열): 스프레드시트를 생성할 Google Drive 폴더 ID. URL에서 가져옵니다. 생략하면 구성된 기본 폴더 또는 루트를 사용합니다.반환값:
spreadsheetId,title,folder를 포함한 스프레드시트 정보 객체.
get_sheet_data: 시트/탭의 범위에서 데이터를 읽습니다.spreadsheet_id(문자열): 스프레드시트 ID (URL에서 가져옴).sheet(문자열): 시트/탭 이름 (예: "Sheet1").range(선택적 문자열): A1 표기법 (예:'A1:C10','Sheet1!B2:D'). 생략하면sheet로 지정된 전체 시트/탭을 읽습니다.include_grid_data(선택적 부울, 기본값False):True이면 서식 및 메타데이터를 포함한 전체 그리드 데이터를 반환합니다(훨씬 큼).False이면 값만 반환합니다(더 효율적).반환값:
include_grid_data=True이면 메타데이터가 포함된 전체 그리드 데이터(get응답).False이면 Values API의 값 결과 객체(values.get응답).
get_sheet_formulas: 시트/탭의 범위에서 수식을 읽습니다.spreadsheet_id(문자열): 스프레드시트 ID (URL에서 가져옴).sheet(문자열): 시트/탭 이름 (예: "Sheet1").range(선택적 문자열): A1 표기법 (예:'A1:C10','Sheet1!B2:D'). 생략하면sheet로 지정된 시트/탭의 모든 수식을 읽습니다.반환값: 셀 수식의 2D 배열(배열의 배열) (
values.get응답).
update_cells: 특정 범위에 데이터를 씁니다. 기존 데이터를 덮어씁니다.spreadsheet_id(문자열): 스프레드시트 ID (URL에서 가져옴).sheet(문자열): 시트/탭 이름 (예: "Sheet1").range(문자열): 쓸 A1 표기법 범위 (예: 'A1:C3').data(배열의 배열): 쓸 값의 2D 배열. 예:[[1, 2, 3], ["a", "b", "c"]].반환값: 업데이트 결과 객체 (
values.update응답).
batch_update_cells: 한 번의 API 호출로 여러 범위를 업데이트합니다.spreadsheet_id(문자열): 스프레드시트 ID (URL에서 가져옴).sheet(문자열): 시트/탭 이름 (예: "Sheet1").ranges(객체): 범위 문자열(A1 표기법)을 값의 2D 배열에 매핑하는 사전. 예:{ "A1:B2": [[1, 2], [3, 4]], "D5": [["Hello"]] }.반환값: 작업 결과 (
values.batchUpdate응답).
add_rows: 지정된 인덱스에 시트/탭에 빈 행을 추가(삽입)합니다.spreadsheet_id(문자열): 스프레드시트 ID (URL에서 가져옴).sheet(문자열): 시트/탭 이름 (예: "Sheet1").count(정수): 삽입할 빈 행 수.start_row(선택적 정수, 기본값0): 행 삽입을 시작할 0 기반 행 인덱스. 생략하면0(시작 부분에 삽입)으로 기본 설정됩니다.반환값: 작업 결과 (
batchUpdate응답).
list_sheets: 스프레드시트 내의 모든 시트/탭 이름을 나열합니다.spreadsheet_id(문자열): 스프레드시트 ID (URL에서 가져옴).반환값: 시트/탭 이름 문자열 목록. 예:
["Sheet1", "Sheet2"].
create_sheet: 스프레드시트에 새 시트/탭을 추가합니다.spreadsheet_id(문자열): 스프레드시트 ID (URL에서 가져옴).title(문자열): 새 시트/탭의 이름.반환값: 새 시트 속성 객체.
get_multiple_sheet_data: 한 번의 호출로 잠재적으로 다른 여러 스프레드시트의 여러 범위에서 데이터를 가져옵니다.queries(객체 배열): 각 객체에는spreadsheet_id,sheet,range가 필요합니다. 예:[{"spreadsheet_id": "abc", "sheet": "Sheet1", "range": "A1:B2"}, ...].반환값: 각각 쿼리 매개변수와 가져온
data또는error를 포함하는 객체 목록. 각data는values.get응답입니다.
get_multiple_spreadsheet_summary: 여러 스프레드시트의 제목, 시트/탭 이름, 헤더 및 처음 몇 행을 가져옵니다.spreadsheet_ids(문자열 배열): 스프레드시트의 ID (URL에서 가져옴).rows_to_fetch(선택적 정수, 기본값5): 미리 볼 행 수(헤더 포함). 예:5.반환값: 각 스프레드시트에 대한 요약 객체 목록.
share_spreadsheet: 지정된 사용자/이메일 및 역할과 스프레드시트를 공유합니다.spreadsheet_id(문자열): 스프레드시트 ID (URL에서 가져옴).recipients(객체 배열):[{"email_address": "user@example.com", "role": "writer"}, ...]. 역할:reader,commenter,writer.send_notification(선택적 부울, 기본값True): 수신자에게 이메일 알림을 보냅니다.반환값:
successes및failures목록이 있는 사전.
add_columns: 지정된 인덱스에 시트/탭에 빈 열을 추가(삽입)합니다.spreadsheet_id(문자열): 스프레드시트 ID (URL에서 가져옴).sheet(문자열): 시트/탭 이름 (예: "Sheet1").count(정수): 삽입할 빈 열 수.start_column(선택적 정수, 기본값0): 삽입을 시작할 0 기반 열 인덱스. 생략하면0(시작 부분에 삽입)으로 기본 설정됩니다.반환값: 작업 결과 (
batchUpdate응답).
copy_sheet: 한 스프레드시트에서 다른 스프레드시트로 시트/탭을 복제하고 선택적으로 이름을 바꿉니다.src_spreadsheet(문자열): 원본 스프레드시트 ID (URL에서 가져옴).src_sheet(문자열): 원본 시트/탭 이름 (예: "Sheet1").dst_spreadsheet(문자열): 대상 스프레드시트 ID (URL에서 가져옴).dst_sheet(문자열): 대상 스프레드시트에서 원하는 시트/탭 이름.반환값: 복사 및 선택적 이름 변경 작업의 결과.
rename_sheet: 기존 시트/탭의 이름을 바꿉니다.spreadsheet(문자열): 스프레드시트 ID (URL에서 가져옴).sheet(문자열): 현재 시트/탭 이름 (예: "Sheet1").new_name(문자열): 새 시트/탭 이름 (예: "Transactions").반환값: 작업 결과 (
batchUpdate응답).
add_chart: 지정된 데이터로 Google 스프레드시트에 차트를 생성합니다.spreadsheet_id(문자열): 스프레드시트 ID (URL에서 가져옴).sheet(문자열): 데이터가 포함된 시트/탭 이름 (예: "Sheet1").chart_type(문자열): 생성할 차트 유형. 옵션:COLUMN(세로 막대),BAR(가로 막대),LINE,AREA,PIE,SCATTER,COMBO,HISTOGRAM.data_range(문자열): 차트 데이터의 A1 표기법 범위 (예: "A1:C10"). 첫 번째 행은 헤더로 처리됩니다.title(선택적 문자열): 차트 제목.x_axis_label(선택적 문자열): X축(하단 축)의 레이블. 파이 차트에는 적용되지 않습니다.y_axis_label(선택적 문자열): Y축(왼쪽 축)의 레이블. 파이 차트에는 적용되지 않습니다.position_x(선택적 정수, 기본값0): 왼쪽 위 모서리에서 픽셀 단위의 가로 위치 오프셋.position_y(선택적 정수, 기본값0): 왼쪽 위 모서리에서 픽셀 단위의 세로 위치 오프셋.width(선택적 정수, 기본값600): 픽셀 단위의 차트 너비.height(선택적 정수, 기본값400): 픽셀 단위의 차트 높이.반환값: 성공 상태, 차트 ID 및 작업 세부 정보가 포함된 결과 객체.
MCP 리소스:
spreadsheet://{spreadsheet_id}/info: Google 스프레드시트에 대한 기본 메타데이터를 가져옵니다.반환값: 스프레드시트 정보가 포함된 JSON 문자열.
☁️ Google Cloud Platform 설정 (상세)
이 설정은 서버를 실행하기 전에 필수입니다.
GCP 프로젝트 생성/선택: Google Cloud Console로 이동합니다.
API 활성화: "API 및 서비스" -> "라이브러리"로 이동합니다. 다음을 검색하여 활성화합니다:
Google Sheets APIGoogle Drive API
자격 증명 구성: 아래 인증 방법 중 하나를 선택해야 합니다(서비스 계정 권장).
🔑 인증 및 환경 변수 (상세)
서버는 Google API에 접근하기 위해 자격 증명이 필요합니다. 한 가지 방법을 선택하세요:
아래 사용된 ID에 대한 자세한 내용은 ID 참조 가이드를 참조하세요.
방법 A: 서비스 계정 (서버/자동화에 권장) ✅
이유? 헤드리스(브라우저 불필요), 안전, 서버 환경에 이상적. 쉽게 만료되지 않음.
단계:
서비스 계정 생성: GCP 콘솔 -> "IAM 및 관리" -> "서비스 계정".
"+ 서비스 계정 만들기"를 클릭합니다. 이름을 지정합니다(예:
mcp-sheets-service).역할 부여: 광범위한 접근을 위해
편집자역할을 추가하거나, 더 세부적인 역할(예:roles/drive.file및 특정 Sheets 역할)로 더 엄격한 권한을 설정합니다."완료"를 클릭합니다. 계정을 찾아 작업(⋮) -> "키 관리"를 클릭합니다.
"키 추가" -> "새 키 만들기" -> JSON -> "만들기"를 클릭합니다.
JSON 키 파일을 다운로드하여 안전하게 보관합니다.
Google Drive 폴더 생성 및 공유:
Google Drive에서 폴더를 생성합니다(예: "AI Managed Sheets").
URL에서 폴더 ID를 확인합니다:
https://drive.google.com/drive/folders/THIS_IS_THE_FOLDER_ID.폴더를 마우스 오른쪽 버튼으로 클릭 -> "공유" -> "공유"를 클릭합니다.
서비스 계정의 이메일(JSON 파일의
client_email)을 입력합니다.편집자 액세스 권한을 부여합니다. "사람들에게 알림"을 선택 해제합니다. "공유"를 클릭합니다.
환경 변수 설정:
SERVICE_ACCOUNT_PATH: 다운로드한 JSON 키 파일의 전체 경로.DRIVE_FOLDER_ID: 공유된 Google Drive 폴더의 ID. (OS별 예시는 초고속 시작을 참조하세요)
방법 B: OAuth 2.0 (대화형 / 개인용) 🧑💻
이유? 대화형 브라우저 로그인이 괜찮은 개인용 또는 로컬 개발용.
단계:
OAuth 동의 화면 구성: GCP 콘솔 -> "API 및 서비스" -> "OAuth 동의 화면". "외부"를 선택하고 필수 정보를 입력하고 범위(
.../auth/spreadsheets,.../auth/drive)를 추가하고 필요한 경우 테스트 사용자를 추가합니다.OAuth 클라이언트 ID 생성: GCP 콘솔 -> "API 및 서비스" -> "사용자 인증 정보". "+ 사용자 인증 정보 만들기" -> "OAuth 클라이언트 ID" -> 유형: 데스크톱 앱. 이름을 지정합니다. "만들기". JSON 다운로드.
환경 변수 설정:
CREDENTIALS_PATH: 다운로드한 OAuth 자격 증명 JSON 파일의 경로(기본값:credentials.json).TOKEN_PATH: 첫 로그인 후 사용자의 새로 고침 토큰을 저장할 경로(기본값:token.json). 쓰기 가능해야 합니다.
방법 C: 직접 자격 증명 주입 (고급) 🔒
이유? Docker, Kubernetes, CI/CD와 같이 파일 관리가 어렵지만 환경 변수가 쉽고 안전한 환경에서 유용합니다. 파일 시스템 접근을 피할 수 있습니다.
방법? 자격 증명 파일의 경로를 제공하는 대신, 파일의 내용을 Base64로 인코딩하여 환경 변수에 직접 제공합니다.
단계:
자격 증명 JSON 파일을 가져옵니다 (서비스 계정 키 또는 OAuth 클라이언트 ID 파일). 이름을
your_credentials.json이라고 하겠습니다.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(주의): 신뢰할 수 없는 온라인 인코더에 민감한 자격 증명을 붙여넣지 마세요.
환경 변수를 설정합니다:
CREDENTIALS_CONFIG: 이 변수를 방금 생성한 전체 Base64 문자열로 설정합니다.# Example (Linux/macOS) - Use the actual string generated export CREDENTIALS_CONFIG="ewogICJ0eXBlIjogInNlcnZpY2VfYWNjb..."
방법 D: 애플리케이션 기본 자격 증명 (ADC) 🌐
이유? Google Cloud 환경(GKE, Compute Engine, Cloud Run) 및
gcloud auth application-default login을 사용한 로컬 개발에 이상적입니다. 명시적인 자격 증명 파일이 필요 없습니다.방법? Google의 애플리케이션 기본 자격 증명 체인을 사용하여 여러 소스에서 자격 증명을 자동으로 검색합니다.
ADC 검색 순서:
GOOGLE_APPLICATION_CREDENTIALS환경 변수(서비스 계정 키 경로) - Google의 표준 변수gcloud auth application-default login자격 증명(로컬 개발)메타데이터 서버에서 연결된 서비스 계정(GKE, Compute Engine 등)
설정:
로컬 개발:
gcloud auth application-default login --scopes=https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/spreadsheets,https://www.googleapis.com/auth/drive를 한 번 실행합니다.할당량 프로젝트를 설정합니다:
gcloud auth application-default set-quota-project <project_id>(<project_id>를 Google Cloud 프로젝트 ID로 바꿉니다)
Google Cloud: 컴퓨팅 리소스에 서비스 계정을 연결합니다.
환경 변수:
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json을 설정합니다 (Google의 표준)
추가 환경 변수 불필요 - 다른 방법이 실패하면 ADC가 자동으로 대체 수단으로 사용됩니다.
참고: GOOGLE_APPLICATION_CREDENTIALS는 Google의 공식 표준 환경 변수이고, SERVICE_ACCOUNT_PATH는 이 MCP 서버에 특화된 변수입니다. GOOGLE_APPLICATION_CREDENTIALS를 설정하면 ADC가 자동으로 이를 찾습니다.
인증 우선순위 및 요약
서버는 다음 순서로 자격 증명을 확인합니다:
CREDENTIALS_CONFIG(Base64 내용)SERVICE_ACCOUNT_PATH(서비스 계정 JSON 경로)CREDENTIALS_PATH(OAuth JSON 경로) - 토큰이 없거나 만료된 경우 대화형 흐름을 트리거합니다애플리케이션 기본 자격 증명 (ADC) - 자동 대체 수단
환경 변수 요약:
변수 | 방법 | 설명 | 기본값 |
| 서비스 계정 | 서비스 계정 JSON 키 파일의 경로 (MCP 서버 특화). | - |
| ADC | 서비스 계정 키 경로 (Google의 표준 변수). | - |
| 서비스 계정 | 서비스 계정과 공유된 Google Drive 폴더의 ID. | - |
| OAuth 2.0 | OAuth 2.0 클라이언트 ID JSON 파일의 경로. |
|
| OAuth 2.0 | 생성된 OAuth 토큰을 저장할 경로. |
|
| 서비스 계정 / OAuth 2.0 | 자격 증명 내용의 Base64 인코딩 JSON 문자열. | - |
⚙️ 서버 실행 (상세)
아래에서 사용되는 ID에 대한 자세한 내용은 ID 참조 가이드를 참조하세요.
방법 1: uvx 사용 (사용자에게 권장)
초고속 시작에서 설명한 대로, 이것이 가장 쉬운 방법입니다. 환경 변수를 설정한 후 실행합니다:
uvx mcp-google-sheets@latestuvx가 패키지를 임시로 가져와 실행합니다.
방법 2: 개발용 (리포지토리 클론)
코드를 수정하려는 경우:
클론:
git clone https://github.com/yourusername/mcp-google-sheets.git && cd mcp-google-sheets(실제 URL 사용)환경 변수 설정: 위에서 설명한 대로.
uv로 실행: (로컬 코드 사용)uv run mcp-google-sheets # Or via the script name if defined in pyproject.toml, e.g.: # uv run start
방법 3: Docker (SSE 전송)
포함된 Dockerfile을 사용하여 컨테이너에서 서버를 실행합니다:
# Build the image
docker build -t mcp-google-sheets .
# Run (SSE on port 8000)
# NOTE: Prefer CREDENTIALS_CONFIG (Base64 credentials content) in containers.
docker run --rm -p 8000:8000 ^
-e HOST=0.0.0.0 ^
-e PORT=8000 ^
-e CREDENTIALS_CONFIG=YOUR_BASE64_CREDENTIALS ^
-e DRIVE_FOLDER_ID=YOUR_DRIVE_FOLDER_ID ^
mcp-google-sheetsDocker 내부에서는 비밀을 파일로 마운트하지 않도록
SERVICE_ACCOUNT_PATH대신CREDENTIALS_CONFIG를 사용하세요.컨테이너는
--transport sse로 시작하고HOST/PORT에서 수신 대기합니다. SSE 전송을 사용하여 MCP 클라이언트를http://localhost:8000으로 연결하세요.
🔌 Claude Desktop과 함께 사용하기
mcpServers 아래의 claude_desktop_config.json에 서버 구성을 추가합니다. 설정에 맞는 블록을 선택하세요:
아래에서 사용되는 ID에 대한 자세한 내용은 ID 참조 가이드를 참조하세요.
⚠️ 중요 참고 사항:
🍎 macOS 사용자:
"uvx"대신 전체 경로를 사용하세요:"/Users/yourusername/.local/bin/uvx"
{
"mcpServers": {
"google-sheets": {
"command": "uvx",
"args": ["mcp-google-sheets@latest"],
"env": {
"SERVICE_ACCOUNT_PATH": "/full/path/to/your/service-account-key.json",
"DRIVE_FOLDER_ID": "your_shared_folder_id_here"
}
}
}
}🍎 macOS 참고: spawn uvx ENOENT 오류가 발생하면 uvx의 전체 경로를 사용하세요:
{
"mcpServers": {
"google-sheets": {
"command": "/Users/yourusername/.local/bin/uvx",
"args": ["mcp-google-sheets@latest"],
"env": {
"SERVICE_ACCOUNT_PATH": "/full/path/to/your/service-account-key.json",
"DRIVE_FOLDER_ID": "your_shared_folder_id_here"
}
}
}
}yourusername을 실제 사용자 이름으로 바꾸세요.
{
"mcpServers": {
"google-sheets": {
"command": "uvx",
"args": ["mcp-google-sheets@latest"],
"env": {
"CREDENTIALS_PATH": "/full/path/to/your/credentials.json",
"TOKEN_PATH": "/full/path/to/your/token.json"
}
}
}
}참고: 처음 사용 시 Google 로그인을 위해 브라우저가 열릴 수 있습니다. TOKEN_PATH가 쓰기 가능한지 확인하세요.
🍎 macOS 참고: spawn uvx ENOENT 오류가 발생하면 "command": "uvx"를 "command": "/Users/yourusername/.local/bin/uvx"로 바꾸세요 (yourusername을 실제 사용자 이름으로 바꿉니다).
{
"mcpServers": {
"google-sheets": {
"command": "uvx",
"args": ["mcp-google-sheets@latest"],
"env": {
"CREDENTIALS_CONFIG": "ewogICJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIsCiAgInByb2plY3RfaWQiOiAi...",
"DRIVE_FOLDER_ID": "your_shared_folder_id_here"
}
}
}
}참고: CREDENTIALS_CONFIG에 전체 Base64 문자열을 붙여넣으세요. 서비스 계정 폴더 컨텍스트에는 DRIVE_FOLDER_ID가 여전히 필요합니다.
🍎 macOS 참고: spawn uvx ENOENT 오류가 발생하면 "command": "uvx"를 "command": "/Users/yourusername/.local/bin/uvx"로 바꾸세요 (yourusername을 실제 사용자 이름으로 바꿉니다).
옵션 1: GOOGLE_APPLICATION_CREDENTIALS 사용
{
"mcpServers": {
"google-sheets": {
"command": "uvx",
"args": ["mcp-google-sheets@latest"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/path/to/service-account.json"
}
}
}
}옵션 2: gcloud auth 사용 (환경 변수 불필요)
{
"mcpServers": {
"google-sheets": {
"command": "uvx",
"args": ["mcp-google-sheets@latest"],
"env": {}
}
}
}전제 조건:
먼저
gcloud auth application-default login --scopes=https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/spreadsheets,https://www.googleapis.com/auth/drive를 실행하세요.할당량 프로젝트를 설정하세요:
gcloud auth application-default set-quota-project <project_id>
🍎 macOS 참고: spawn uvx ENOENT 오류가 발생하면 "command": "uvx"를 "command": "/Users/yourusername/.local/bin/uvx"로 바꾸세요 (yourusername을 실제 사용자 이름으로 바꿉니다).
{
"mcpServers": {
"mcp-google-sheets-local": {
"command": "uv",
"args": [
"run",
"--directory",
"/path/to/your/mcp-google-sheets",
"mcp-google-sheets"
],
"env": {
"SERVICE_ACCOUNT_PATH": "/path/to/your/mcp-google-sheets/service_account.json",
"DRIVE_FOLDER_ID": "your_drive_folder_id_here"
}
}
}
}참고: --directory 플래그를 사용하여 프로젝트 경로를 지정하고, 경로를 실제 작업 공간 위치에 맞게 조정하세요.
💬 Claude용 예시 프롬프트
연결이 완료되면 다음과 같은 프롬프트를 시도해 보세요:
"내가 액세스할 수 있는 모든 스프레드시트를 나열해 줘." (또는 "내 AI 관리 시트 폴더에서")
"'2024년 3분기 판매 보고서'라는 제목의 새 스프레드시트를 만들어 줘."
"'분기별 판매 보고서' 스프레드시트에서 Sheet1의 A1~E10 범위 데이터를 가져와 줘."
"ID가
1aBcDeFgHiJkLmNoPqRsTuVwXyZ인 스프레드시트에 '요약'이라는 새 시트를 추가해 줘.""'프로젝트 작업' 스프레드시트의 '작업' 시트에서 B2 셀을 '진행 중'으로 업데이트해 줘."
"스프레드시트
XYZ의 '로그' 시트에 다음 행을 추가해 줘:[['2024-07-31', '작업 A 완료'], ['2024-08-01', '작업 B 시작']]""'판매 데이터'와 '재고 수량' 스프레드시트의 요약을 가져와 줘."
"'팀 휴가 일정' 스프레드시트를
team@example.com과 읽기 권한으로,manager@example.com과 쓰기 권한으로 공유해 줘. 알림은 보내지 마.""'판매 보고서' 스프레드시트에 A1:B13 범위의 데이터로 월별 수익을 보여주는 세로 막대형 차트를 만들어 줘."
"'시장 분석' 시트에 A1:B5 데이터로 '제품별 시장 점유율'이라는 제목의 원형 차트를 추가해 줘."
"스프레드시트
abc123에서 Sheet1의 A1:C10 범위로 '성장 추세'라는 제목과 '월' 및 '수익' 레이블이 있는 꺾은선형 차트를 만들어 줘."
🆔 ID 참조 가이드
문서 전체에서 참조되는 다양한 ID를 찾으려면 다음 참조 가이드를 사용하세요:
Google Cloud Project ID:
https://console.cloud.google.com/apis/dashboard?project=sheets-mcp-server-123456
└───── Project ID ─────┘
Google Drive Folder ID:
https://drive.google.com/drive/u/0/folders/1xcRQCU9xrNVBPTeNzHqx4hrG7yR91WIa
└────────── Folder ID ──────────┘
Google Sheets Spreadsheet ID:
https://docs.google.com/spreadsheets/d/25_-_raTaKjaVxu9nJzA7-FCrNhnkd3cXC54BPAOXemI/edit
└───────────── Spreadsheet ID ─────────────┘🤝 기여하기
기여는 환영합니다! 버그나 기능 요청을 논의하려면 이슈를 열어 주세요. 풀 리퀘스트도 감사히 받습니다.
📄 라이선스
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다 - 자세한 내용은 LICENSE 파일을 참조하세요.
🙏 크레딧
FastMCP로 구축되었습니다.
kazz187/mcp-google-spreadsheet에서 영감을 받았습니다.
Google API Python 클라이언트 라이브러리를 사용합니다.
This server cannot be deployed
Maintenance
Related MCP Connectors
An agent-first office suite Claude & ChatGPT read and write over one MCP URL.
Automate 1,000+ services from any MCP-compatible AI agent: build Applets, run actions and queries.
Teable is an AI spreadsheet for business that combines a familiar spreadsheet interface with a structured database. Its remote MCP server lets AI agents inspect project and table structure, read and update records, and access the Teable API through OAuth with existing project permissions. Website: [teable.ai](https://teable.ai)
Build and run AI workflows, agents, data tables and 1000+ API integrations from any MCP client.
1
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables interaction with Google Sheets through natural language, allowing users to create, read, update, and manage spreadsheet data via the Google Sheets API v4.-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to read, write, and manage Google Sheets spreadsheets through natural language commands, providing a bridge between MCP clients and the Google Sheets API.543 npm1MIT
- AlicenseNot gradedqualityFmaintenanceEnables AI assistants to interact with Google Sheets for reading, writing, and managing spreadsheets through a set of MCP tools.MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for Google Sheets operations, enabling spreadsheet management including reading, writing, appending, creating, and searching sheets via natural language.MIT