Google Docs MCP 服务器

一个模型上下文协议(MCP)服务器,允许AI助手(如Claude)直接与您的Google Docs进行交互,支持列出、获取、创建和编辑文档,适用于草拟、总结、大纲、笔记和协作编辑。

  • by Prakul95
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 prakul95/mcp-server-google-docs

使用说明

谷歌文档MCP服务器

一个模型上下文协议(MCP)服务器,让人工智能助手(如克劳德)直接与您的谷歌文档一起工作。它可以 在云端硬盘中列出谷歌文档, 获取整个文档内容, 生成快速预览,以及 创建和编辑文档--全部通过MCP工具完成。

非常适合起草、总结、概述、记笔记和协作编辑,无需离开聊天室。


✨ 特性

  • 列出文档(驱动器,仅文档) –查询您的云端硬盘以获取谷歌文档(application/vnd.google-apps.document)带有标题、ID和元数据。支持文件夹范围和额外的驱动器查询参数。
  • 获取完整文档 -检索完整的谷歌文档结构(适用于摘要、分析和格式化)。 支持提取选项卡内容。
  • 创建文档 –启动一个带有初始标题的新文档,并(可选)将其放置在Drive文件夹中。
  • 更新文档 –对现有文档应用编辑(插入/附加文本、标题/段落样式、替换)。
  • 复制文档 -创建现有文档的副本。

🧰 服务器公开的工具(确切名称)

这些工具名称反映了您的实现:

  • list-docs --从云端硬盘列出谷歌文档。可以按以下方式过滤 文件夹ID 和 其他驱动器查询参数.
  • get-doc --检索Google文档的元数据和/或内容。 支持提取选项卡内容。
  • create-doc --创建新 空白 具有给定标题的Google文档。可选择将其放置在Drive文件夹中。
  • update-doc --更新现有的Google文档(例如,插入/替换文本、应用样式)。
  • copy-doc --可以选择复制具有给定标题的现有Google文档。

演示视频

🧪 示例提示(Claude/MCP客户端)

1. Get me a list of all the docs created yesterday with AI in their name.
2. Get the doc xyz and show details.
3. Get the same doc and show a preview of 400 chars.
4. Summarize the doc
5. Create a doc with name new_file_name
6. Add list of commands in this doc and write it in a fashion that explains the intent of this doc. Also add the current temp and lunar phase of the moon today.
7. Update this list with 5 random cities from Washington and add the temp of those cities as well.


🔐 谷歌云设置

  1. 打开 谷歌云控制台 并创建/选择一个项目。
  2. 启用API 对于该项目:
    • 谷歌文档API
    • Google Drive API
  3. 创建OAuth 2.0凭据:
    • 类型: 桌面应用程序 (建议本地MCP客户使用)。
    • 下载JSON证书并将其保存在本地(例如。, gcp-oauth.keys.json).
  4. 当应用程序处于 测试模式,在下添加您的Google帐户 OAuth同意屏幕→ 测试用户.

推荐范围(最低权限):

  • 只读:
    • https://www.googleapis.com/auth/documents.readonly
    • https://www.googleapis.com/auth/drive.metadata.readonly
  • 读/写(创建和编辑):
    • https://www.googleapis.com/auth/documents
    • https://www.googleapis.com/auth/drive.file (或 drive 如果你真的需要广泛的访问)

发行的代币 测试模式 通常在7天内到期;您可以在收到提示时重新认证或发布应用程序以延长令牌寿命。


⚙️ 安装并运行

先决条件

  • Node.js LTS (v18+推荐)
  • npm 或 pnpm

本地安装

git clone https://github.com/Prakul95/mcp-server-google-docs.git
cd mcp-server-google-docs
npm install
npm run build

启动服务器(stdio MCP)

//TBA ypu可以构建项目并直接更新claude_desktop_config.json,步骤如下

# From repo root
npm start             # if defined in package.json
# or explicitly:
node ./dist/server.js

🖥️ 配置您的MCP客户端

克劳德桌面

编辑:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %APPDATA%\Claude\claude_desktop_config.json

添加一个条目,如:

{
  "mcpServers": {
    "google-docs": {
      "command": "node",
      "args": ["<absolute-path-to>/mcp-server-google-docs/dist/server.js"],
      "env": {
        "GOOGLE_OAUTH_CREDENTIALS": "<absolute-path-to>/gcp-oauth.keys.json"
      }
    }
  }
}

提示:在迭代时,您可以连接一个dev命令(例如。, tsx src/server.ts)如果你更喜欢直接运行TypeScript。

游标/其他MCP客户端

使用MCP配置UI或类似于上述的JSON配置(指向构建的服务器)。确保 GOOGLE_OAUTH_CREDENTIALS env-var指向您的凭据JSON。


🔑 身份验证流程

  • 在第一次调用时,您的MCP客户端将打开一个用于Google OAuth的浏览器窗口。
  • 令牌存储在本地(位置取决于您的客户端/服务器设置)。
  • 如果您看到身份验证错误,请验证:
    • 您的OAuth客户端类型为 桌面.
    • 您的用户已添加到 测试用户 (如果应用程序处于测试模式)。
    • GOOGLE_OAUTH_CREDENTIALS 指向a 有效的 凭据JSON文件。

重新身份验证(测试模式)

  • 在测试模式下,预计令牌大约每周到期一次。
  • 重新运行客户端并再次完成OAuth提示。
  • 发布应用程序可以降低重新认证的频率(预计会出现“未经验证的应用程序”横幅)。

🧪 快速健全性检查

待定


🛡️ 安全说明

  • 保持 gcp-oauth.keys.json 版本控制之外.
  • 更喜欢 最低权限范围 除非你真的需要写权限。
  • 请注意,日志可能包括工具输入。避免在生产中记录敏感数据。

🧩 实施细节(高层)

  • 驱动器列表 使用驱动器API mimeType = 'application/vnd.google-apps.document' 过滤器;结合文件夹和自定义驱动器查询。
  • 获取完整文档 使用文档API documents.get 返回结构化内容(段落、表格等)。
  • 创建/更新 使用文档API documents.create 和 documents.batchUpdate 通过结构化操作。

❓ 故障排除

  1. 未找到凭据文件
    • 确保 GOOGLE_OAUTH_CREDENTIALS 指向a 绝对的 路径。
  2. “此应用程序未经验证”
    • 预计适用于未发布的应用程序。您可以继续(或发布)。
  3. 身份验证持续过期
    • 测试模式正常;重新认证或发布应用程序。
  4. 403/权限不足
    • 添加缺失的范围(例如。, documents 对于书写, drive.file 用于创建文件)。
  5. 文档列表为空
    • 检查您的文件夹过滤器/驱动器查询,确认帐户在驱动器中有文档。

📄 许可证

麻省理工学院


🙌 致谢

  • 受社区MCP服务器(如谷歌日历变体)启发的设置流程;此处适用于Google Docs工具。