celesto
AI 에이전트를 위한 안전하고 영구적인 컴퓨터
The Ultimate Google Docs, Sheets, Drive, Gmail, & Google Calendar MCP Server. This MCP (primarily for use in Claude Desktop) gains full access to your google suite and lets claude do its thing.
개발 도구TypeScript · JavaScriptGitHub @a-bonus직접 설치운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Connect Claude Desktop, Cursor, or any MCP client to your Google Docs, Google Sheets, Google Drive, Gmail, and Google Calendar.
gmail.modify and calendar.events scopes alongside the Docs/Sheets/Drive scopes)Need more detail? See step-by-step instructions at the bottom of this page.
GOOGLE_CLIENT_ID="your-client-id" \
GOOGLE_CLIENT_SECRET="your-client-secret" \
npx -y @a-bonus/google-docs-mcp auth
This opens your browser for Google authorization. After you approve, the refresh token is saved to ~/.config/google-docs-mcp/token.json.
Claude Desktop / Cursor / Windsurf:
{
"mcpServers": {
"google-docs": {
"command": "npx",
"args": ["-y", "@a-bonus/google-docs-mcp"],
"env": {
"GOOGLE_CLIENT_ID": "your-client-id",
"GOOGLE_CLIENT_SECRET": "your-client-secret"
}
}
}
}
The server starts automatically when your MCP client needs it.
Deploy once for your team -- no local installs required. The server uses MCP OAuth 2.1 so your MCP client handles authentication automatically.
gcloud run deploy google-docs-mcp \
--source . \
--region europe-west3 \
--port 8080 \
--allow-unauthenticated \
--set-env-vars "^|^MCP_TRANSPORT=httpStream|BASE_URL=https://your-service.run.app|GOOGLE_CLIENT_ID=...|GOOGLE_CLIENT_SECRET=...|TOKEN_STORE=firestore|JWT_SIGNING_KEY=your-secret-key"
Then each user just adds the URL to their MCP client -- no npx, no tokens, no local setup:
{
"mcpServers": {
"google-docs": {
"type": "streamableHttp",
"url": "https://your-service.run.app/mcp"
}
}
}
Your MCP client will prompt for Google sign-in on first connection. See Remote Deployment for details.
Tools across Google Docs, Sheets, and Drive:
| Tool | Description |
|---|---|
readDocument | Read content as plain text, JSON, or markdown |
appendText | Append text to a document |
insertText | Insert text at a specific position |
deleteRange | Remove content by index range |
modifyText | Replace, prepend, or transform text in a document |
findAndReplace | Find and replace text across a document |
findElement | Locate text occurrences (with index ranges) or list paragraphs/tables |
listTabs | List all tabs in a multi-tab document |
addTab | Add a new tab to a document |
renameTab | Rename a document tab |
replaceDocumentWithMarkdown | Replace entire document content from markdown |
replaceRangeWithMarkdown | Replace a specific range with markdown content |
appendMarkdown | Append markdown-formatted content |
applyTextStyle | Bold, italic, colors, font size, links |
applyParagraphStyle | Alignment, spacing, indentation |
insertTable | Create an empty table |
insertTableWithData | Create a table pre-filled with data |
insertPageBreak | Insert page breaks |
insertSectionBreak | Insert section break (NEXT_PAGE or CONTINUOUS) |
updateSectionStyle | Update section style: flip orientation, margins |
insertImage | Insert images from URLs or local files |
| Tool | Description |
|---|---|
listComments | View all comments with author and date |
getComment | Get a specific comment with replies |
addComment | Create a comment anchored to text |
replyToComment | Reply to an existing comment |
resolveComment | Mark a comment as resolved |
deleteComment | Remove a comment |
Write tools accept suggestMode: true to apply edits as pending suggestions
for review instead of direct edits (requires Node 22+; googleapis@184).
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗