FastMCP Google Docs Server
项目简介
FastMCP Google Docs Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在桥接 LLM 应用(如 Claude Desktop)与用户的 Google Docs。它利用 'fastmcp' 库和 Google Docs API,提供了一系列工具,使得 LLM 能够以编程方式访问和操作 Google 文档,例如读取文档内容、向文档追加文本以及格式化文档中的特定文本。
主要功能点
- 读取 Google 文档: 提供 'readGoogleDoc' 工具,允许 LLM 获取指定 Google 文档的文本内容。
- 追加内容到 Google 文档: 提供 'appendToGoogleDoc' 工具,允许 LLM 向指定 Google 文档末尾添加文本。
- 格式化文档文本 (基于内容匹配): 提供 'formatMatchingText' 工具,允许 LLM 查找文档中特定的文本,并对其应用粗体、颜色等格式。
- Google 身份验证: 安全处理 OAuth 2.0 身份验证流程,授权访问用户的 Google 账户。
- MCP 协议兼容: 完全兼容 MCP 协议,可与任何 MCP 客户端协同工作。
安装步骤
- 安装 Node.js 和 npm: 确保你的计算机上已安装 Node.js (版本 18 或更高) 和 npm。
- 安装 Git: 用于克隆仓库。
- Google 账户准备: 拥有一个可以访问目标 Google Docs 的 Google 账户。
- 克隆仓库: 打开终端或命令提示符,运行命令克隆仓库:
git clone https://github.com/a-bonus/google-docs-mcp.git mcp-googledocs-server cd mcp-googledocs-server - Google Cloud 项目配置:
- 访问 Google Cloud Console 并登录你的 Google 账户。
- 创建或选择一个 Google Cloud 项目。
- 启用 "Google Docs API" 和 "Google Drive API"。
- 配置 OAuth 同意屏幕,设置为 "外部",填写应用信息(如应用名称 "Claude Docs MCP Access"),添加你的邮箱为用户支持邮箱和开发者联系信息。
- 在 "范围" 步骤中,添加以下 scopes:
- 'https://www.googleapis.com/auth/documents'
- 'https://www.googleapis.com/auth/drive.file'
- 在 "测试用户" 步骤中,添加你的 Google 账户邮箱。
- 创建凭据:在 "凭据" 页面,点击 "创建凭据" -> "OAuth 客户端 ID",选择 "桌面应用",命名为 "MCP Docs Desktop Client"。
- 下载 JSON 凭据文件,并重命名为 'credentials.json',移动到 'mcp-googledocs-server' 文件夹中。
- 安装依赖: 在 'mcp-googledocs-server' 目录下运行命令安装依赖:
npm install - 构建项目: 运行命令构建 TypeScript 代码:
npm run build - 首次运行并授权: 运行编译后的服务器代码进行 Google 授权 (只需首次运行):
按照终端提示,复制 URL 到浏览器打开,登录你的 Google 账户并授权。复制授权码粘贴回终端并回车。授权成功后,会在项目目录下生成 'token.json' 文件。node ./dist/server.js
服务器配置
要将此 MCP 服务器配置到 MCP 客户端(例如 Claude Desktop),你需要提供服务器的启动命令和参数。以下是 'mcp_config.json' 配置文件中 'mcpServers' 部分的配置示例,请根据你的实际仓库路径进行修改:
{ "mcpServers": { "google-docs-mcp": { "command": "node", "args": [ "/PATH/TO/YOUR/CLONED/REPO/mcp-googledocs-server/dist/server.js" ], "env": {} } } }
参数注释:
- '"google-docs-mcp"': 服务器名称,在 MCP 客户端中引用时使用。
- '"command": "node"': 启动服务器的命令,这里使用 Node.js 运行时。
- '"args"': 命令参数数组。
- '"/PATH/TO/YOUR/CLONED/REPO/mcp-googledocs-server/dist/server.js"': 请替换为你的 'mcp-googledocs-server' 仓库的绝对路径,指向编译后的 'server.js' 文件。
- '"env": {}': 环境变量,此处为空。
Claude Desktop 配置步骤 (示例):
- 找到 Claude Desktop 的配置文件 'mcp_config.json' (路径参考 README.md)。
- 编辑 'mcp_config.json' 文件,将上述配置示例添加到 'mcpServers' 节点中,并 务必将 '/PATH/TO/YOUR/CLONED/REPO' 替换为你的实际仓库路径。
- 保存 'mcp_config.json' 并重启 Claude Desktop。
基本使用方法
配置完成后,在 Claude Desktop 中,你可以通过自然语言指令调用 Google Docs 的工具。例如:
- '使用 google-docs-mcp 读取 ID 为 'YOUR_GOOGLE_DOC_ID' 的文档。'
- 'google-docs-mcp 能否获取 Google Doc 'YOUR_GOOGLE_DOC_ID' 的内容?'
- '使用 google-docs-mcp 工具,向文档 'YOUR_GOOGLE_DOC_ID' 追加 '这是 Claude 添加的内容!'。'
- '通过 google-docs-mcp,使用 formatMatchingText 工具将文档 'YOUR_GOOGLE_DOC_ID' 中的 '重要章节' 加粗。'
- '使用 google-docs-mcp 的 formatMatchingText 工具,在文档 'YOUR_GOOGLE_DOC_ID' 中找到第一个 'Project Alpha' 并将其颜色设为蓝色 (#0000FF)。'
请将 'YOUR_GOOGLE_DOC_ID' 替换为实际的 Google 文档 ID。
注意: 首次使用工具时,Claude Desktop 可能会自动启动 'google-docs-mcp' 服务器。你无需手动运行 'node ./dist/server.js'。