google-workspace-mcp
google-workspace-mcp
Google Workspace(Sheets / Docs / Slides / Forms)와 Google Drive를 다루는 MCP 서버.
Cowork에 기본 연결된 공식 "Google Drive" 커넥터는 검색·읽기·파일 생성·휴지통 이동만 지원하고 기존 파일의 내용을 수정할 수 없다. 그래서 시트에 행 하나를 추가하려 해도 전체 데이터를 새 파일로 다시 만들어 기존 파일을 버리는 방식밖에 없었다. 이 서버는 그 공백을 메운다 — 파일 ID를 유지한 채 시트에 행을 덧붙이고, 문서 본문을 고치고, 슬라이드를 추가한다.
제공 도구
도구 | 하는 일 |
| 셀 값 read / append(행 추가) / update / clear |
| 스프레드시트 생성, 탭 추가·삭제·이름변경, 메타데이터 조회, batchUpdate |
| 문서를 텍스트(표 포함) 또는 원본 구조로 읽기 |
| 문서 생성, 끝에 덧붙이기, 위치 삽입, 찾아 바꾸기, batchUpdate |
| 슬라이드별 텍스트·발표자노트 조회 |
| 프레젠테이션 생성, 슬라이드 추가(제목·본문 채우기), 삭제, 찾아 바꾸기 |
| 설문 생성·조회, 응답 목록·단건 조회, batchUpdate |
| 파일명·내용 전문검색·MIME·폴더 조건 검색 |
| 메타데이터, 생성, 폴더 생성, 내용 교체(ID 유지), 이름변경, 이동, 복사, 휴지통, 완전삭제, 다운로드, 이진 파일 조각 다운로드 주소 발급( |
| 댓글 조회·작성·답글·해결·삭제 |
| 버전 이력 조회, 과거 버전 내용 회수, 보존 고정 |
| 공유 권한 점검·추가·변경·해제 |
| 공유 드라이브 목록·상세 |
| 시작 토큰 발급 후 그 이후 변경분만 조회 |
모든 도구는 max_chars로 응답 길이 상한을 조절할 수 있고, 0이면 자르지 않는다.
Related MCP server: Google Docs, Drive & Sheets MCP Server
이진 파일 내려받기 (download_link + /api/raw)
drive_file의 download는 내용을 res.text()로 읽으므로 글꼴(.ttf/.ttc)·이미지·압축파일 같은
이진 파일은 바이트가 깨진다. 또 12~14MB짜리 파일을 MCP 응답 본문에 실을 수도 없다.
그래서 파일을 바이트 구간으로 쪼갠 다운로드 주소 목록을 돌려주고, 실제 바이트는 별도
엔드포인트가 원본 그대로 흘려보낸다.
drive_file을action="download_link"로 호출한다. 응답에name·size·md5Checksum과 조각 목록(index·start·end·url)이 들어 있다. 조각 크기는 기본 3MB이고chunk_bytes로 바꿀 수 있다(최대 4MB).각
url을index순서대로 받아 그대로 이어붙이면 원본 파일이 된다. 이어붙인 뒤 MD5가md5Checksum과 같은지 확인한다.
GET /api/raw?k=<게이트키>&f=<fileId>&s=<시작바이트>&e=<끝바이트>
→ 200 application/octet-stream (해당 구간의 원본 바이트)한 요청의 구간은 4MB 이하여야 한다(Vercel 응답 본문 상한). 넘으면 400으로 거부한다.
보안 제한
제한 | 내용 |
허용 폴더 | 내려받기는 |
게이트키 |
|
게이트 검사 코드는 lib/gate.js 한 곳에 있고 api/mcp.js와 api/raw.js가 함께 쓴다.
이진 파일 올리기 (upload_link, content_base64)
워드(.docx)·엑셀(.xlsx)·파워포인트(.pptx)·PDF처럼 바이트가 깨지면 안 되는 파일을 드라이브에
올리는 경로는 둘이다. content(텍스트)로 보내면 UTF-8 문자열로 취급되어 파일이 깨지므로
이진 파일에는 쓰지 않는다.
① upload_link — 큰 파일, 권장
바이트가 이 서버를 거치지 않고 구글로 바로 가므로 Vercel의 요청 본문 상한(약 4.5MB)에 걸리지 않는다.
drive_file을action="upload_link"로 호출한다(name, 필요하면parent_folder_id).mime_type을 생략하면name의 확장자로 추론한다.응답의
upload_url에 파일을 그대로 올린다.curl -s -X PUT --upload-file 보고서.docx "<upload_url>"성공하면 업로드된 파일의 메타데이터(JSON)가 돌아온다.
id·size를 확인한다.
file_id를 함께 주면 기존 파일의 내용을 교체하는 세션이 열린다(파일 ID·공유 링크 유지).
size_bytes를 주면 구글이 세션을 더 정확히 잡는다. 발급된 주소는 그 한 파일의 업로드에만
쓰이고 일주일 안에 만료되지만, 인증이 내장돼 있으므로 로그·문서에 남기지 않는다.
② content_base64 — 작은 파일
create·update_content에 base64 문자열로 본문을 실어 보낸다. 요청에 통째로 실리므로
수백 KB 이하에만 쓴다. 공백·줄바꿈과 data:…;base64, 접두어는 자동으로 걷어낸다.
MIME 타입은 mime_type을 주지 않으면 파일명 확장자로 추론한다(.docx/.xlsx/.pptx/
.pdf/.hwp/이미지/글꼴 등). 추론에 실패하면 이진은 application/octet-stream,
텍스트는 text/plain이 된다.
보안 제한
올리기는 기존 파일을 밖으로 내보내지 않으므로 허용 폴더를 기본으로 강제하지 않는다.
대상을 묶고 싶으면 UPLOAD_ALLOWED_FOLDER_ID에 폴더 ID를 넣는다 — 설정하면 그 폴더
바로 아래로만 새 파일을 만들 수 있고, 다른 위치는 거부한다(기존 파일 교체는 file_id로
대상을 직접 지정하므로 이 검사를 받지 않는다). 게이트키 검사는 /api/mcp와 동일하게 적용된다.
환경변수
이름 | 설명 |
| OAuth 클라이언트 ID |
| OAuth 클라이언트 시크릿 |
|
|
| 접근 게이트 허용 키 목록(쉼표 구분). 비어 있으면 게이트 비활성 |
|
|
| 내려받기를 허용할 Drive 폴더 ID. 쉼표·공백으로 여러 개 지정 가능(예: |
| 새 파일을 만들 수 있는 Drive 폴더 ID. 미설정이 기본이며 그때는 제한이 없다 |
|
|
drive 스코프 하나로 Sheets·Docs·Slides·Forms API와 Drive API 전체가 커버된다
(각 API 공식 인증 스코프 목록에 auth/drive가 포함되어 있음).
Google Cloud 프로젝트 준비
스코프와 별개로, 사용할 API를 프로젝트에서 사용 설정(Enable) 해야 한다.
켜지 않으면 403 has not been used in project ... or it is disabled가 난다.
Google Sheets API / Google Docs API / Google Slides API / Google Forms API
Google Drive API
호출
엔드포인트 | 용도 |
| MCP 엔드포인트(커넥터 등록 주소) |
| 이진 파일 구간 다운로드( |
로컬 스모크테스트
scripts/.env.local.json(gitignore됨)에 위 Google 자격증명 3개를 넣고:
npm install
npm test실제 Google 계정에 테스트 파일을 만들었다가 마지막에 휴지통으로 정리한다.
This server cannot be deployed
Maintenance
Related MCP Connectors
Permissioned access to Gmail, Drive and Calendar via the user's own Google account
Multiple Gmail accounts, editable Google Sheets & Docs for AI agents. Deny-by-default access rules.
Docs, decks, forms, apps you build and deploy, automations, and AI images, video and voice.
Edworking tasks, Docs, workspace search, conversations and files with scoped OAuth access.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables comprehensive interaction with Google Docs and Google Drive through AI assistants, supporting document reading/writing, rich formatting, table/image insertion, comment management, and complete file/folder operations with secure OAuth authentication.4 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables deep integration with Google Workspace for AI assistants, allowing for document creation, spreadsheet manipulation, and file management. It supports advanced features like template processing, comment thread management, and cell formatting.87 npmMIT
- FlicenseNot gradedqualityDmaintenanceProvides AI assistants with access to Google Workspace APIs including Sheets, Calendar, Gmail, Tasks, Drive, and Docs. Enables full CRUD operations and management of Google services through natural language.1-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to create, read, and modify Google Slides, Sheets, Docs, and Drive documents programmatically. Supports file management, content editing, and version history retrieval.1,534 npmMIT