专为 Claude Code CLI 优化的 Google Workspace MCP 服务器,唯一支持 Apps Script API
- 来源: a-bonus/google-docs-mcp
- 原定位: Claude Desktop
- 协议: MIT License
- 目标平台: Claude Code CLI (同时兼容 Claude Desktop)
- 新增功能: Google Apps Script API 完整支持
- 兼容性修复: Node.js v25+ 支持
| 模块 | 功能 | 工具名称 |
|---|---|---|
| Google Docs | 读取文档 | readGoogleDoc |
| 追加内容 | appendToGoogleDoc |
|
| 插入文本 | insertText |
|
| 删除范围 | deleteRange |
|
| 文本样式 | applyTextStyle |
|
| 段落样式 | applyParagraphStyle |
|
| 插入表格 | insertTable |
|
| 编辑单元格 | editTableCell |
|
| 插入图片 | insertImageFromUrl, insertLocalImage |
|
| 评论管理 | listComments, addComment, replyToComment |
|
| Google Sheets | 读取数据 | readSpreadsheet |
| 写入数据 | writeSpreadsheet |
|
| 追加行 | appendSpreadsheetRows |
|
| 清除范围 | clearSpreadsheetRange |
|
| 获取信息 | getSpreadsheetInfo |
|
| 添加工作表 | addSpreadsheetSheet |
|
| 创建表格 | createSpreadsheet |
|
| 筛选器 | setBasicFilter, clearBasicFilter |
|
| 单元格格式 | formatSpreadsheetCells |
|
| Google Drive | 列出文档 | listGoogleDocs, listGoogleSheets |
| 搜索文档 | searchGoogleDocs |
|
| 文件管理 | createFolder, moveFile, copyFile, renameFile, deleteFile |
|
| 模板创建 | createFromTemplate |
| 模块 | 功能 | 工具名称 | 说明 |
|---|---|---|---|
| Apps Script | 创建绑定脚本 | createBoundScript |
创建绑定到 Docs/Sheets 的脚本项目 |
| 更新脚本内容 | updateScriptContent |
支持多文件上传 (Code.gs + appsscript.json) | |
| 读取脚本内容 | getScriptContent |
获取现有脚本的所有文件 | |
| 列出脚本项目 | getScriptProjects |
列出用户的 Apps Script 项目 |
// 文件: src/auth.ts
// 位置: 第 21-27 行
const SCOPES = [
'https://www.googleapis.com/auth/documents',
'https://www.googleapis.com/auth/drive',
'https://www.googleapis.com/auth/spreadsheets',
'https://www.googleapis.com/auth/script.projects', // 新增
'https://www.googleapis.com/auth/script.deployments', // 新增
];// 文件: src/server.ts
// 第 4 行 - 添加 script_v1 导入
import { google, docs_v1, drive_v3, sheets_v4, script_v1 } from 'googleapis';
// 第 29 行 - 添加 googleScript 变量
let googleScript: script_v1.Script | null = null;
// 第 42 行 - 初始化 googleScript
googleScript = google.script({ version: 'v1', auth: authClient });
// 第 120-127 行 - 添加 getScriptClient helper
async function getScriptClient() {
const { googleScript: script } = await initializeGoogleClient();
if (!script) {
throw new UserError("Google Apps Script client is not initialized.");
}
return script;
}
// 第 2638-2772 行 - 添加 4 个 Apps Script 工具
// - createBoundScript
// - updateScriptContent
// - getScriptContent
// - getScriptProjects- Node.js v18+ (推荐 v20 LTS,v25 已测试兼容)
- Google Cloud Project 并启用以下 API:
- Google Docs API
- Google Drive API
- Google Sheets API
- Google Apps Script API (新增)
- OAuth 2.0 客户端凭据 (Desktop 类型)
# 方式 1: 使用 claude mcp add 命令
claude mcp add google-docs --scope user -- node /path/to/dist/server.js
# 方式 2: 直接编辑配置文件 (~/.claude/settings.json)
{
"mcpServers": {
"google-docs": {
"command": "node",
"args": ["/path/to/dist/server.js"]
}
}
}编辑 %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"google-docs": {
"command": "node",
"args": ["C:\\path\\to\\dist\\server.js"]
}
}
}- 将
credentials.json(OAuth 客户端凭据) 放入项目根目录 - 启动服务器,会输出授权 URL
- 在浏览器中打开 URL 并授权
- 授权后
token.json自动保存
除了在 Google Cloud Console 启用 API,还需要:
访问 https://script.google.com/home/usersettings
将 Google Apps Script API 开关设为 ON
用户: 为我的表格创建一个按类型列自动着色的脚本
Claude:
1. 调用 createBoundScript 创建绑定脚本
2. 调用 updateScriptContent 上传着色代码
3. 返回使用说明
用户: 读取表格的现有脚本,添加一个新函数
Claude:
1. 调用 getScriptContent 读取现有代码
2. 修改代码添加新函数
3. 调用 updateScriptContent 更新
当工作表名包含中文括号时,A1 notation 解析可能失败:
错误: Sheet "任务(待拆分)" not found
临时方案: 使用 Sheet ID 而非名称,或重命名工作表
原版依赖 buffer-equal-constant-time 使用已废弃的 SlowBuffer API。
已修复: 执行 npm update 更新依赖
| 项目 | Docs | Sheets | Drive | Script | CLI 文档 | 维护 |
|---|---|---|---|---|---|---|
| a-bonus/google-docs-mcp | ✅ | ✅ | ✅ | ❌ | ❌ | 活跃 |
| piotr-agier/google-drive-mcp | ✅ | ✅ | ✅ | ❌ | ❌ | 活跃 |
| isaacphi/mcp-gdrive | ❌ | ✅ | ✅ | ❌ | ❌ | 活跃 |
| 本版本 | ✅ | ✅ | ✅ | ✅ | ✅ | 新建 |
google-docs-mcp-plus- 强调增强版claude-code-google-workspace- 强调目标平台mcp-google-workspace-script- 强调 Script 功能
- 开头明确: "专为 Claude Code CLI 设计"
- 突出: "唯一支持 Apps Script API"
- 提供一键安装命令
- 包含 GIF 演示
- 基于 a-bonus/google-docs-mcp
- 遵循 MIT License
google-docs-mcp-package/
├── src/
│ ├── auth.ts # OAuth 认证 (已修改)
│ ├── server.ts # 主服务器 (已修改)
│ ├── types.ts # 类型定义
│ ├── googleDocsApiHelpers.ts # Docs API 辅助函数
│ ├── googleSheetsApiHelpers.ts # Sheets API 辅助函数
│ └── filterHelpers.ts # 筛选器辅助函数
├── dist/ # 编译输出
│ └── server.js # 编译后的服务器
├── package.json # 依赖配置
├── package-lock.json # 依赖锁定
├── tsconfig.json # TypeScript 配置
├── LICENSE # MIT 许可证
├── README.md # 原版说明文档
└── RELEASE_NOTES.md # 本文档
如有问题或建议,请通过 GitHub Issues 反馈。
文档生成时间: 2025-01-07 Claude Code CLI + Apps Script MCP 集成完成