谷歌工作区MCP服务器
一个模型上下文协议(MCP)服务器,使Claude能够直接创建和管理Google文档、表格、幻灯片和驱动器。
特性
- 谷歌文档:使用表格、图像和链接创建、阅读和更新文档
- 谷歌表格:读取/写入数据,格式化单元格
- 谷歌幻灯片:创建演示文稿,添加幻灯片、文本和图像
- Google 云端硬盘:列表、上传、下载文件、搜索、PDF文本提取
- PDF OCR:将PDF转换为谷歌文档,并使用谷歌的OCR提取文本
- 将图像(来自URL或本地文件)插入文档和幻灯片
- 插入带边框、居中粗体标题的本机表
- 插入可点击的超链接(用于视频链接等)
- 设置文本和单元格的格式(粗体、斜体、下划线、颜色)
先决条件
- Node.js v18或更高版本
- Google Cloud帐户
- 克劳德桌面或克劳德代码
快速开始
1.克隆和安装
git clone
cd google-workspace-mcp
npm install2.设置Google Cloud凭据
a.创建谷歌云项目
- 首选 谷歌云控制台
- 点击“选择项目”→ “新项目”
- 输入项目名称,然后单击“创建”
b.启用所需的API
在您的Google Cloud项目中,转到“API和服务”→ “库”并启用:
- 谷歌文档API
- 谷歌网页API
- 谷歌幻灯片API
- Google Drive API
c.创建OAuth 2.0凭据
- 转到“API和服务”→ “凭据”
- 点击“创建凭据”→ “OAuth客户端ID”
- 配置OAuth同意屏幕(如果提示):
- 用户类型: 外部的 - 应用程序名称:您的选择(例如,“谷歌工作区MCP”) - 添加您的电子邮件以获取支持和开发人员联系 - 点击“保存并继续”
- 在“创建OAuth客户端ID”上:
- 应用程序类型: 桌面应用 - 名称:“谷歌工作区MCP”(或您选择) - 点击“创建”
- 点击“下载JSON”
- 将下载的文件另存为
credentials.json在项目根目录中
d.添加测试用户
由于您的应用程序处于测试模式:
- 转到“API和服务”→ “OAuth同意屏幕”
- 滚动到“测试用户”→ 点击“添加用户”
- 输入您的Google帐户电子邮件
- 点击“保存”
3.建设项目
npm run build4.通过谷歌进行身份验证
运行一次性身份验证:
npm run auth这将:
- 显示Google授权URL
- 在浏览器中打开它(或手动复制/粘贴)
- 要求您登录并授予权限
- 提供授权码
步骤:
- 点击“允许”授予权限
- 复制授权码
- 将其粘贴到终端中
- 按Enter键
A. token.json 将使用您的访问凭据创建文件。
5.配置Claude
视窗
- 导航至
%APPDATA%\Claude\ - 打开或创建
claude_desktop_config.json - 添加此配置(更新路径以匹配您的安装):
{
"mcpServers": {
"google-workspace": {
"command": "node",
"args": ["C:\\Users\\YOUR_USERNAME\\path\\to\\google-workspace-mcp\\dist\\index.js"]
}
}
}macOS/Linux
- 编辑
~/Library/Application Support/Claude/claude_desktop_config.json - 添加此配置:
{
"mcpServers": {
"google-workspace": {
"command": "node",
"args": ["/absolute/path/to/google-workspace-mcp/dist/index.js"]
}
}
}克劳德代码(CLI)-全局设置
要使MCP在所有Claude Code会话中可用,请编辑 ~/.claude/settings.json:
窗户: C:\Users\YOUR_USERNAME\.claude\settings.json
{
"mcpServers": {
"google-workspace": {
"command": "node",
"args": ["C:\\Users\\YOUR_USERNAME\\path\\to\\google-workspace-mcp\\dist\\index.js"]
}
}
}macOS/Linux: ~/.claude/settings.json
{
"mcpServers": {
"google-workspace": {
"command": "node",
"args": ["/absolute/path/to/google-workspace-mcp/dist/index.js"]
}
}
}通过以下方式进行验证: claude mcp list
6.重启克劳德
完全退出并重新启动Claude Desktop/Code(而不仅仅是关闭窗口)。
可用工具(共32个)
谷歌文档(11个工具)
create_document-创建新的Google文档read_document-读取文档内容update_document-替换所有文档文本(已修复:现在删除全部内容)insert_image_to_doc-从URL插入图像insert_local_image_to_doc-从本地文件插入图像format_text_in_doc-设置文本格式(粗体、斜体、下划线、彩色)insert_table_to_doc-插入带有边框和标题格式的本机表insert_link_to_doc-插入可点击的超链接(用于视频链接、URL)append_text_to_doc-将文本附加到文档末尾(不需要索引)format_titles_in_doc-自动检测和粗体标题(表情符号行、标题、冒号)format_first_line_as_title-将第一行设置为粗体标题,字体更大
谷歌表格(4个工具)
create_spreadsheet-创建新的电子表格read_sheet-从某个范围读取数据write_sheet-将数据写入范围format_cells-设置单元格格式(粗体、斜体、下划线、颜色)
谷歌幻灯片(7个工具)
create_presentation-创建新演示文稿read_presentation-获取演示文稿数据add_slide-添加新幻灯片add_text_to_slide-在幻灯片中添加文本insert_image_to_slide-从URL插入图像insert_local_image_to_slide-从本地文件插入图像format_text_in_slide-设置幻灯片中的文本格式
谷歌云端硬盘(10个工具)
list_drive_files-列出驱动器中的文件和文件夹upload_file-将任何文件类型上传到驱动器download_file-从驱动器下载文件get_file_content-读取文件的文本内容get_file_metadata-获取文件信息(大小、类型、日期)create_folder-在驱动器中创建文件夹delete_file-删除文件或文件夹search_files-按名称或内容搜索文件make_file_public-将文件公开并获取可共享的URLconvert_pdf_to_doc-使用OCR将PDF转换为Google文档extract_pdf_text-从PDF文件中提取文本
使用示例
连接后,您可以问Claude:
文件:
- “创建一个名为“会议笔记”的新谷歌文档”
- “将此内容添加到我的文档中:\[您的文本\]”
- “将文档中的标题加粗”
- “插入包含项目任务和状态的表”
- “在我的文档中添加此YouTube视频的链接”
电子表格:
- “创建一个名为“Q1预算”的新电子表格”
- “将此数据写入电子表格中的单元格A1:C3”
- “从表1读取数据!A1:D10”
演示文稿:
- “创建一个名为“项目提案”的新演示文稿”
- “添加标题为“概述”的幻灯片”
- “将此图像插入第一张幻灯片”
驱动器:
- “列出我的Google Drive中的所有文件”
- “将此PDF上传到我的驱动器”
- 搜索包含“报告”的文件
- “从此PDF文件中提取文本”
- “创建一个名为“项目文件”的文件夹”
- “从驱动器下载此文件”
PDF处理:
- “提取此PDF:C:\\path\\to\\file.PDF中的所有文本”
- “将此PDF转换为谷歌文档,以便我可以编辑它”
表特征
这 insert_table_to_doc 该工具使用以下内容创建本机Google Docs表:
- 纯黑色边框 所有细胞(1pt重量)
- 标题行格式 (可选)-粗体文本,居中,浅灰色背景
- 自动换行以防止剪切现有文本
- 支持排序、调整大小和格式化的正确单元格结构
表示例
当你要求Claude插入一个表时,它会创建一个格式正确的表,如下所示:
表参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
documentId | string | 是 | 谷歌文档ID |
index | number | 是 | 文档中的位置(1=开始) |
rows | number | 是 | 行数 |
columns | number | 是 | 列数 |
data | string\[\] | 是 | 单元格内容的二维数组 |
headerRow | boolean | 否 | 将第一行设置为标题(粗体+灰色背景) |
示例用法
{
"documentId": "1abc123...",
"index": 1,
"rows": 3,
"columns": 2,
"data": [
["Name", "Status"],
["Task 1", "Complete"],
["Task 2", "In Progress"]
],
"headerRow": true
}故障排除
“错误:找不到credentials.json”
- 确保您从谷歌云控制台下载了OAuth凭据
- 验证文件名称是否准确
credentials.json - 将其放置在项目根目录中
“错误:找不到token.json”
- 跑
npm run auth完成身份验证 - 确保正确粘贴授权码
“授予无效”或“令牌已过期”
- 删除
token.json - 跑
npm run auth再次
“访问被阻止:此应用程序的请求无效”
- 在OAuth同意屏幕中添加您的Google帐户作为测试用户
- 验证是否启用了所有必需的API
MCP服务器未在Claude中显示
- 验证中的路径
claude_desktop_config.json是正确的 - 在Windows上使用双反斜杠(
C:\\Users\\...) - 确保你跑了
npm run build - 完全退出并重新启动Claude
“找不到模块”错误
- 跑
npm install确保安装了依赖项
安全注意事项
重要: 切勿将这些文件提交到版本控制:
credentials.json-包含您的OAuth客户端密钥token.json-包含您的访问令牌
这些文件已在 .gitignore.
对于克隆此回购的新用户
如果您克隆了此存储库,则必须创建自己的Google Cloud凭据:
- 首选 谷歌云控制台
- 创建新项目 (或选择现有的一个)
- 启用这些API (API和服务→ 图书馆):
- 谷歌文档API - 谷歌网页API - 谷歌幻灯片API - Google Drive API
- 配置OAuth同意屏幕 (API和服务→ OAuth同意屏幕):
- 用户类型:外部 - 将您的电子邮件添加为测试用户
- 创建OAuth凭据 (API和服务→ 证书):
- 点击“创建凭据”→ “OAuth客户端ID” - 应用程序类型: 桌面应用 - 下载JSON文件
- 重命名并放置文件:
- 将下载的文件重命名为 credentials.json - 将其放置在项目根目录中
- 运行身份验证:
npm install
npm run build
npm run auth看 credentials.example.json 对于预期的文件结构
项目结构
google-workspace-mcp/
├── src/ # Source code
│ ├── interfaces/ # TypeScript interfaces
│ │ ├── IDocumentService.ts
│ │ ├── ISheetService.ts
│ │ ├── ISlideService.ts
│ │ └── IDriveService.ts
│ ├── services/ # Google API services
│ │ ├── GoogleAuthService.ts
│ │ ├── DocumentService.ts
│ │ ├── SheetService.ts
│ │ ├── SlideService.ts
│ │ └── DriveService.ts
│ ├── utils/ # Shared utilities
│ │ ├── DriveUploadHelper.ts
│ │ └── FormattingHelper.ts
│ ├── tools/ # MCP tool definitions (Zod schemas)
│ ├── authenticate.ts # Auth script
│ └── index.ts # Main MCP server
├── dist/ # Compiled JavaScript (after build)
├── credentials.json # Your OAuth credentials (DO NOT COMMIT)
├── token.json # Access token (DO NOT COMMIT)
├── credentials.example.json # Template for credentials
├── token.example.json # Template for token
├── package.json
├── tsconfig.json
└── README.md命令参考
# Install dependencies
npm install
# Build the project
npm run build
# Run authentication (first time only)
npm run auth
# Start server (for testing)
npm run start
# Development mode with auto-reload
npm run dev其他文件
- MCP_CREATION_GUIDE.md -了解此MCP服务器是如何从头开始构建的
- SETUP_GUIDE.md -带有屏幕截图的详细设置说明
资源
许可证
麻省理工学院
