mcpField
M
Mcp Gdrive Cloudflare

Mcp Gdrive Cloudflare

远程服务
github.com/brianmoney云与基础设施455 周前更新
代码仓库

关于 Mcp Gdrive Cloudflare

部署在 Cloudflare Workers 上的 Google Drive 和 Sheets 远程 MCP 服务,面向需要云端访问与文件操作的 MCP 客户端。它提供 OAuth 2.0 授权、PKCE 和读写工具。

主要功能

  1. 01搜索并读取 Drive 文件
  2. 02创建文件夹、上传和移动文件
  3. 03管理文件共享权限
  4. 04读取和更新 Sheets 单元格
  5. 05支持 OAuth 2.0 与 PKCE
  6. 06通过 SSE 提供远程连接

适用场景

  1. 01搜索并导出 Drive 文件
  2. 02整理文件夹及移动文件
  3. 03共享文件或上传文件
  4. 04读取表格范围并追加数据

MCP 相关

作为远程 MCP 服务,通过 SSE 向客户端暴露 Google Drive 和 Sheets 工具,并实现 OAuth 2.0 授权服务器及动态客户端注册。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp-gdrive-cf.CFDOMAIN.workers.dev/sse
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

mcp-gdrive-cf

运行于 Cloudflare Workers 上的 Google Drive 和 Sheets 远程 MCP 服务,完整支持 OAuth 2.0。

生产就绪 ✅ | 11 个工具 | OAuth 2.0 | PKCE | 全球边缘网络

本项目改编自 isaacphi/mcp-gdrive,可在 Cloudflare 边缘网络上作为远程 HTTP/SSE MCP 服务运行,并具备完整的 OAuth 2.0 授权服务器功能。


🚀 快速开始

```bash

1. 克隆并安装

git clone https://github.com/brianmoney/mcp-gdrive-cf.git cd mcp-gdrive-cf npm install

2. 创建 KV 命名空间

wrangler kv:namespace create KV_TOKENS wrangler kv:namespace create KV_CLIENTS

3. 使用你的命名空间 ID 更新 wrangler.toml

4. 配置 Google OAuth 凭据

wrangler secret put GOOGLE_CLIENT_SECRET

5. 部署

wrangler deploy

6. 使用 MCP Inspector 测试

npx @modelcontextprotocol/inspector https://your-worker.workers.dev/sse ```


✨ 功能

Drive 操作
  • 🔍 搜索 - 基础和高级搜索,支持筛选条件(MIME 类型、所有者、日期、共享云端硬盘)
  • 📄 读取 - 读取任意文件,支持 22 种以上的导出格式(PDF、DOCX、XLSX、Markdown 等)
  • 📁 创建文件夹 - 使用嵌套文件夹结构整理文件
  • ⬆️ 上传 - 上传最大 5MB 的文件
  • 🗑️ 删除 - 将文件移至垃圾箱
  • 📦 移动 - 在文件夹之间重新整理文件
  • 🔐 共享 - 添加权限(阅读者、写入者、评论者、所有者)
Sheets 操作
  • 📊 读取 - 批量读取多个范围
  • ✏️ 更新 - 更新单个单元格
  • ➕ 追加 - 向电子表格添加行
基础设施
  • ☁️ 全球边缘网络 - 在全球各地的 Cloudflare Workers 上运行
  • 🔐 OAuth 2.0 服务器 - 完整的授权服务器,支持 PKCE
  • 🔑 动态客户端注册 - 自动接入客户端
  • 🔄 自动刷新令牌 - 无缝续期 Google 令牌
  • 📡 SSE 传输 - 实时服务器发送事件
  • 🛡️ 安全 - 仅支持 HTTPS,令牌加密存储

🎯 有何不同

与原始的基于 STDIO 的 `mcp-gdrive` 不同,本实现:

  1. 远程运行于 Cloudflare Workers(无需本地进程)
  2. 提供完整的 OAuth 2.0 授权服务器(不只是 OAuth 客户端)
  3. 通过动态客户端注册支持多个客户端
  4. 为公共客户端提供 PKCE 安全保护
  5. 支持 Drive 文件的 22 种以上导出格式
  6. 支持写入操作(创建、删除、移动、共享、上传)
  7. 已通过真实工作负载的生产环境测试

📋 前提条件

必需
  • 已启用 Workers 的 Cloudflare 账户(免费套餐即可)
  • 已启用 Drive API 和 Sheets API 的 Google Cloud 项目
  • Node.js LTS(v18+)
  • Wrangler CLI(`npm install -g wrangler`)
Google Cloud 设置
  1. 在 Google Cloud Console 创建项目
  2. 启用 API:
    • Google Drive API
    • Google Sheets API
  3. 创建 OAuth 2.0 凭据:
  4. 所需的 OAuth 范围:

🔧 安装与部署

1. 安装依赖

```bash npm install ```

2. 创建 KV 命名空间

```bash

用于用户会话令牌

wrangler kv:namespace create KV_TOKENS

用于 OAuth 客户端注册

wrangler kv:namespace create KV_CLIENTS ```

将命名空间 ID 复制到 `wrangler.toml`:

```toml [[kv_namespaces]] binding = "KV_TOKENS" id = "your-tokens-namespace-id"

[[kv_namespaces]] binding = "KV_CLIENTS" id = "your-clients-namespace-id" ```

3. 配置环境变量

添加到 `wrangler.toml`:

```toml [vars] GOOGLE_CLIENT_ID = "your-client-id.apps.googleusercontent.com" ```

设置密钥:

```bash

Google OAuth 客户端密钥

wrangler secret put GOOGLE_CLIENT_SECRET ```

4. 部署

```bash wrangler deploy ```

你的 Worker 将可通过此地址访问:`https://your-worker-name.your-account.workers.dev\`


🔐 OAuth 2.0 流程

此服务根据 MCP 规范实现了完整的 OAuth 2.0 授权服务。

使用 MCP Inspector

测试 OAuth 流程的最简单方式:

```bash npx @modelcontextprotocol/inspector https://your-worker.workers.dev/sse ```

  1. 发现 - Inspector 自动发现 OAuth 端点
  2. 注册 - 点击“引导设置” → 自动注册客户端
  3. 授权 - 重定向到 Google → 完成身份验证 → 重定向回来
  4. 令牌交换 - 自动将授权码兑换为访问令牌
  5. 使用工具 - 现在即可使用全部 11 个工具!
安全功能
  • ✅ PKCE(RFC 7636) - 代码交换证明密钥
  • ✅ State 参数 - CSRF 防护
  • ✅ 仅限 HTTPS - 由 Cloudflare Workers 强制执行
  • ✅ 安全的令牌存储 - 在 Workers KV 中加密存储
  • ✅ 令牌过期 - 访问令牌 1 小时后过期
  • ✅ 客户端密钥哈希 - 使用 SHA-256 哈希存储
  • ✅ 授权码仅限单次使用 - 兑换后删除授权码

🛠️ 可用工具

Drive 工具
  • `gdrive_search` - 搜索所有文件
  • `gdrive_search_advanced` - 使用筛选条件进行高级搜索
  • `gdrive_read_file` - 以 22 种以上格式导出并读取文件
  • `gdrive_create_folder` - 创建文件夹
  • `gdrive_upload_file` - 上传文件(最大 5 MB)
  • `gdrive_delete_file` - 将文件移至回收站
  • `gdrive_move_file` - 在文件夹之间移动文件
  • `gdrive_add_permission` - 共享文件/文件夹
Sheets 工具
  • `gsheets_read` - 读取多个范围
  • `gsheets_update_cell` - 更新单元格
  • `gsheets_append_row` - 追加行

🔌 客户端配置

VS Code MCP 扩展

创建 `.vscode/settings.json`:

```json { "mcp.servers": { "gdrive": { "url": "https://your-worker.workers.dev/sse", "authorization": { "type": "oauth2" } } } } ```

Claude Desktop / Cline

macOS/Linux: `~/Library/Application Support/Claude/claude_desktop_config.json`
Windows: `%APPDATA%\Claude\claude_desktop_config.json`

```json { "mcpServers": { "gdrive": { "url": "https://your-worker.workers.dev/sse" } } } ```


🧪 测试

本地开发

```bash npm start

服务可通过 http://localhost:8788 访问

```

使用 MCP Inspector 测试

```bash npx @modelcontextprotocol/inspector http://localhost:8788/sse ```

查看 CloudFlare 日志

```bash wrangler tail --format pretty ```


🐛 故障排除

“Failed to discover OAuth metadata”

解决方案:

  • 确保 `/.well-known/oauth-authorization-server` 返回有效的 JSON
  • 检查是否包含 CORS 标头
  • 确认已部署最新版本:`wrangler deploy`
“Token exchange failed: HTTP 400”

解决方案:

  • 检查 code_verifier 是否与原始 code_challenge 匹配
  • 确保 redirect_uri 与注册时完全一致
  • 确认客户端凭据正确
  • 查看 CloudFlare 日志:`wrangler tail`
工具无法使用

解决方案:

  • 检查 Google OAuth 范围是否包含 `drive` 和 `spreadsheets`
  • 如果范围发生变化,请重新进行身份验证:访问 `/google/authorize`
  • 确认 Worker 拥有有效的 Google 访问令牌
  • 检查 `wrangler.toml` 中的 KV 命名空间绑定

📊 性能与限制

资源限制说明
请求超时30 秒CloudFlare Workers 限制
文件上传5 MB简单上传 API 限制
文件导出10 MBGoogle Drive 导出限制
令牌存储30 天自动清理
授权码10 分钟仅限单次使用
访问令牌1 小时自动刷新

🔒 安全最佳实践

  1. 切勿提交密钥 - 使用 `wrangler secret put`
  2. 轮换客户端密钥 - 定期重新生成 OAuth 凭据
  3. 监控访问情况 - 使用 CloudFlare Analytics 跟踪使用情况
  4. 限制 OAuth 作用域 - 仅请求必要的 Google 权限
  5. 使用 PKCE - 公共客户端始终使用 PKCE
  6. 验证重定向 URI - 在 Google Console 中将精确的 URI 加入白名单
  7. 启用 2FA - 保护你的 CloudFlare 和 Google 账户

📄 许可证

MIT 许可证


🙏 致谢


由 Brian Money 用 ☁️ 制作

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。