
连接 Claude Desktop(或其他 MCP 客户端)到你的 Google 文档和 Google 驱动器!
🔥 查看 15 个强大的任务,你可以通过这个增强的服务器完成! 📁 新功能: 完整的 Google 驱动器文件管理能力!
这个综合服务器使用模型上下文协议(MCP)和 fastmcp 库提供工具来读取、写入、格式化、构建 Google 文档,并管理整个 Google 驱动器。它充当一个强大的桥梁,允许像 Claude 这样的AI助手以编程方式与你的文档和文件进行交互,具有高级功能。
特性:
readGoogleDoc 读取内容(纯文本、JSON 结构或 Markdown)appendToGoogleDoc 向文档添加文本insertText 在特定位置放置文本deleteRange 从文档中移除内容listDocumentTabs 和可选的 tabId 参数在多标签文档中进行读写操作applyTextStyle 应用丰富的样式(粗体、斜体、颜色等)applyParagraphStyle 控制段落布局(对齐、间距等)formatMatchingText 按文本内容进行格式化(旧版支持)insertTable 创建表格insertPageBreak 插入分页符insertImageFromUrl 从 URL 插入图片,或使用 insertLocalImage 上传本地图片fixListFormatting 自动检测列表的工具listComments 查看文档中的所有评论(显示作者、日期和引用文本)getComment 获取带有回复的具体评论addComment 创建新的锚定于文本的评论replyToComment 对现有评论进行回复resolveComment 将评论标记为已解决deleteComment 从文档中删除评论listGoogleDocs、searchGoogleDocs、getRecentGoogleDocs 查找和列出文档getDocumentInfo 获取详细的元数据createFolder)、列出内容(listFolderContents)、获取信息(getFolderInfo)moveFile)、复制(copyFile)、重命名(renameFile)、删除(deleteFile)createDocument)或从模板创建(createFromTemplate)开始之前,请确保你拥有以下条件:
按照以下步骤仔细操作,以运行自己的服务器实例。
此服务器需要权限代表你与 Google API 通信。你需要创建只有你的服务器会使用的特殊“密钥”(凭证)。
https://www.googleapis.com/auth/documents(允许读写文档)https://www.googleapis.com/auth/drive.file(允许访问应用程序打开/创建的特定文件)client_secret_....json。credentials.json。credentials.json 文件视为密码!不要公开分享,且永远不要将其提交到 GitHub。任何人拥有此文件都可能假装是您的应用程序(尽管他们仍需用户同意才能访问数据)。git clone https://github.com/a-bonus/google-docs-mcp.git mcp-googledocs-server
cd mcp-googledocs-server
credentials.json 文件(来自第 1.6 步)直接移动或复制到此 mcp-googledocs-server 文件夹中。您的服务器需要一些在 package.json 文件中指定的帮助库。
mcp-googledocs-server 目录内),运行:
npm install
这将下载并安装所有必要的包到 node_modules 文件夹中。服务器是用 TypeScript(.ts)编写的,但我们需要将其编译成 JavaScript(.js),以便 Node.js 可以直接运行。
npm run build
这将使用 TypeScript 编译器(tsc)创建一个包含编译后的 JavaScript 文件的 dist 文件夹。现在您需要手动运行服务器一次,以授予其访问您的 Google 账户数据的权限。这将创建一个 token.json 文件,保存您的授权许可。
node 运行已编译的服务器:
node ./dist/server.js
https://accounts.google.com/... URL。http://localhost 并显示“无法连接到该站点”的错误。这是正常的!http://localhost/?code=4/0Axxxxxxxxxxxxxx&scope=...code= 和 &scope 部分之间的长字符串字符。这是您的单次使用授权码。Ctrl+C 停止它)。mcp-googledocs-server 文件夹中的一个名为 token.json 的新文件。token.json 文件包含允许服务器无需再次请求即可访问您的 Google 账户的关键。像密码一样保护它。不要将其提交到 GitHub。包含的 .gitignore 文件应自动防止这种情况。如果您想使用此服务器与 Claude Desktop,您需要告诉 Claude 如何运行它。
找到绝对路径: 您需要服务器代码的完整路径。
mcp-googledocs-server 目录内。pwd 命令(在 macOS/Linux 上)或 cd(在 Windows 上,只需显示路径)。/Users/yourname/projects/mcp-googledocs-server 或 C:\Users\yourname\projects\mcp-googledocs-server)。定位 mcp_config.json: 找到 Claude 的配置文件:
~/Library/Application Support/Claude/mcp_config.json(您可能需要使用 Finder 的“转到”->“转到文件夹...”菜单并粘贴 ~/Library/Application Support/Claude/)%APPDATA%\Claude\mcp_config.json(将 %APPDATA%\Claude 粘贴到文件资源管理器的地址栏中)~/.config/Claude/mcp_config.jsonClaude 文件夹或 mcp_config.json 文件,请创建它们。编辑 mcp_config.json: 在文本编辑器中打开文件。添加或修改 mcpServers 部分如下,将 /PATH/TO/YOUR/CLONED/REPO 替换为您在第 6.1 步中复制的实际绝对路径:
{
"mcpServers": {
"google-docs-mcp": {
"command": "node",
"args": [
"/PATH/TO/YOUR/CLONED/REPO/mcp-googledocs-server/dist/server.js"
],
"env": {}
}
// 如果定义了其他服务器,请在这里添加逗号
}
// 其他 Claude 设置可能在这里
}
args 中的路径正确且为绝对路径!mcpServers 对象中。确保 JSON 是有效的(检查逗号!)。保存 mcp_config.json。
重启 Claude Desktop: 完全关闭 Claude 并重新打开它。
一旦配置好,您应该能够在与 Claude 的聊天中使用这些工具:
google-docs-mcp 服务器读取 ID 为 YOUR_GOOGLE_DOC_ID 的文档。”YOUR_GOOGLE_DOC_ID 的内容吗?”google-docs-mcp 工具将‘这是由 Claude 添加的!’追加到文档 YOUR_GOOGLE_DOC_ID。”Google 文档现在支持多标签文档。此 MCP 服务器提供了处理标签的完整支持:
列出标签:
listDocumentTabs 工具列出文档 YOUR_GOOGLE_DOC_ID 中的所有标签。”YOUR_GOOGLE_DOC_ID 的标签结构及其内容摘要。”从特定标签读取:
readGoogleDoc 工具从文档 YOUR_GOOGLE_DOC_ID 的标签 TAB_ID 读取内容。”YOUR_GOOGLE_DOC_ID 的标签 TAB_ID 的 Markdown 内容。”向特定标签写入:
YOUR_GOOGLE_DOC_ID 的标签 TAB_ID。”YOUR_GOOGLE_DOC_ID 的标签 TAB_ID 的索引 100 处插入文本。”YOUR_GOOGLE_DOC_ID 的标签 TAB_ID 的索引 50-100 处的内容。”注意: 以下工具支持可选的 tabId 参数:
readGoogleDoc - 从特定标签读取appendToGoogleDoc - 追加到特定标签insertText - 向特定标签插入文本deleteRange - 从特定标签删除内容当未指定 tabId 时,操作针对第一个标签(或对于没有标签的老文档,针对旧文档正文)。
applyTextStyle 将文档 YOUR_GOOGLE_DOC_ID 中的‘重要部分’文本设为粗体和红色(#FF0000)。”applyParagraphStyle 将文档 YOUR_GOOGLE_DOC_ID 中包含‘此处标题’的段落居中对齐。”insertTable 工具在文档 YOUR_GOOGLE_DOC_ID 的索引 500 处插入一个 3x4 表格。”insertImageFromUrl 从 ‘https://example.com/image.png’ 插入一张图片到文档 YOUR_GOOGLE_DOC_ID 的索引 100 处。”insertLocalImage 上传 ‘/path/to/image.jpg’ 并将其插入到文档 YOUR_GOOGLE_DOC_ID 的索引 200 处。”formatMatchingText 查找文档 YOUR_GOOGLE_DOC_ID 中的第二个‘项目阿尔法’实例并将其设为蓝色(#0000FF)。”记得将 YOUR_GOOGLE_DOC_ID 替换为实际的 Google 文档 URL 中的 ID(位于 /d/ 和 /edit 之间的长字符串)。
Claude 将根据您提供的命令自动在后台启动您的服务器。您不需要再手动运行 node ./dist/server.js。
此服务器提供了两种将图片插入 Google 文档的方法:
insertImageFromUrl)直接从一个可公开访问的 URL 插入图片。图片 URL 必须无需身份验证即可访问。
参数:
documentId:Google 文档 ID