谷歌文档处理服务

谷歌文档处理服务是一个用于读取和编辑Google文档的MCP服务器,适用于文档问答、会议记录更新、发布公告和日常计划等多种工作流程。

  • by domdomegg
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 domdomegg/google-documents-mcp

使用说明

谷歌文档mcp

用于谷歌文档的MCP服务器-阅读和编辑文档。

用例

文件问答:“合同对终止条款有什么规定?”→ 阅读文档并抽出相关部分。

会议到文档的工作流程:通话后,阅读Gemini成绩单以及后续的Slack讨论,然后根据所做的决定更新你的团队章程。

发布公告:“根据GitHub PR和Slack在#proj awesome中的讨论,起草一篇关于新功能的博客文章”→ 将技术变革整合到面向用户的内容中。

具有持久背景的日常计划:你的人工智能助手在每天开始时阅读“计划日志”文档,询问昨天的进度,帮助你确定今天的优先级,然后用你的计划更新文档。上下文会贯穿整个会话——它会记住你说过要做什么,并可以跟进。

(这些只是示例-任何需要文档阅读或编辑的工作流都可以使用此功能。与 谷歌硬盘mcp 用于查找文件、删除、评论和共享权限。)

设置

1.创建Google OAuth凭据

  1. 首选 谷歌云控制台
  2. 创建新项目(或使用现有项目)
  3. 启用Google Docs API
  4. 首选 API和服务 → OAuth同意屏幕,设置同意屏幕
  5. 首选 API和服务 → 凭证 → 创建凭据 → OAuth 客户端ID
  6. 选择 网络应用程序
  7. 添加 http://localhost:3000/callback 到 授权重定向URI
  8. 记下您的客户端ID和客户端密码

2.运行服务器

GOOGLE_CLIENT_ID='your-client-id' \
GOOGLE_CLIENT_SECRET='your-client-secret' \
MCP_TRANSPORT=http \
npm start

服务器运行在 http://localhost:3000 默认情况下。更改为 PORT=3001.

3.添加到您的MCP客户端

服务器运行时,请按照上的说明进行操作 安装mcp,它为您的MCP客户端生成正确的配置(Claude Code、Claude Desktop、Cursor、Cline、VS Code等)。

建筑

此服务器充当 OAuth代理 谷歌:

graph LR
    A[MCP client] <--> B[google-documents-mcp] <--> C[Google OAuth/API]
  1. 服务器通过以下方式将自己宣传为OAuth授权服务器 /.well-known/oauth-authorization-server
  2. /register 返回Google OAuth客户端凭据
  3. /authorize 重定向到Google,将客户端的回调URL编码为状态
  4. /callback 从Google接收代码并转发给客户端的回调
  5. /token 向Google代理令牌请求,注入客户端凭据
  6. /mcp 处理MCP请求,使用承载令牌调用Google Docs API

服务器不持有令牌或状态,它只是将OAuth代理给谷歌。

工具

工具 说明
document_get_raw 获取完整的原始JSON结构(所有选项卡、格式、页眉、页脚、样式)
document_get_text 获取所有选项卡的纯文本内容
document_create 创建新的空白文档
document_batch_update 以原子方式应用多个编辑(插入、删除、格式化等)
document_append 将文本附加到文档末尾
document_insert 在特定索引处插入文本
document_replace 查找和替换文本

batch_update请求类型

这 document_batch_update 该工具支持以下操作:

  • insertText -在某个位置插入文本
  • deleteContentRange -删除一系列内容
  • replaceAllText -查找并替换所有事件
  • insertInlineImage -插入图像
  • insertTable -创建表格
  • insertTableRow / insertTableColumn -向表中添加行/列
  • deleteTableRow / deleteTableColumn -从表中删除行/列
  • insertPageBreak -添加分页符
  • createNamedRange / deleteNamedRange -管理命名范围
  • createParagraphBullets / deleteParagraphBullets -管理项目符号列表

Google文档API范围

  • documents -完全访问读取和编辑文档

贡献

GitHub上欢迎拉取请求!开始:

  1. 安装Git和Node.js
  2. 克隆仓库
  3. 安装依赖项 npm install
  4. 跑 npm run test 运行测试
  5. 建立 npm run build

发布

版本遵循 语义版本规范.

要发布:

  1. 使用 npm version <major | minor | patch> 升级版本
  2. 跑 git push --follow-tags 使用标签推送
  3. 等待GitHub Actions发布到NPM注册表。