Google Drive MCP服务器

一个用Rust编写的Google MCP服务器,提供41种工具用于全面访问Google Drive,支持stdio和HTTP传输以及多用户OAuth认证。

  • by cafercangundogdu
  • Rust
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 cafercangundogdu/google-mcp

使用说明

谷歌mcp

一个用Rust编写的全面的Google MCP(模型上下文协议)服务器。目前提供 41工具、资源模板和完整谷歌云端硬盘访问提示,计划使用Gmail和其他谷歌服务。

支持两者 标准 和 可流式传输的HTTP 使用多用户OAuth进行传输。

快速开始

cargo install gdrive-mcp-server
gdrive-mcp-server --credentials-file client_secret.json

特性

工具(共41个)

域 计数 工具
文件 12 列表、获取、创建、更新、删除、复制、移动、回收、取消跟踪、清空垃圾桶、导出、下载
权限 5 创建、列出、获取、更新、删除
评论 5 创建、列出、获取、更新、删除
回复 5 创建、列出、获取、更新、删除
修订 4 列表、获取、更新、删除
共享驱动器 5 创建、列出、获取、更新、删除
更改 2 get_start_page_token,列表
关于 1 获取
标签 2 列表,修改

资源

  • gdrive:///{file_id} --通过自动转换读取文件内容(文档→ Markdown,表格→ CSV,幻灯片→ 文本、图纸→ PNG)
  • gdrive:///folder/{folder_id} --列出文件夹内容

提示

  • gdrive_search_help --帮助构建Google Drive搜索查询
  • gdrive_organize_files --文件/文件夹组织指南
  • gdrive_sharing_guide --共享和权限指南

先决条件

  • 锈 1.80+(稳定的工具链)
  • 谷歌云项目 启用驱动器API
  • OAuth2凭据 (client_secret.json)

设置

1.谷歌云控制台

  1. 首选 谷歌云控制台
  2. 创建新项目(或选择现有项目)
  3. 启用 Google Drive API (API和服务→ 图书馆→ 搜索“Google Drive API”)
  4. 首选 API和服务→ 凭证→ 创建凭证→ OAuth客户端ID
  5. 选择 桌面应用 作为应用程序类型
  6. 下载JSON文件并将其另存为 client_secret.json 在项目根中

注: 对于HTTP传输(多用户),您可以使用 Web应用程序 改为键入,但是 桌面应用 适用于这两种模式。

2.建造

git clone https://github.com/cafercangundogdu/google-mcp.git
cd google-mcp
cargo build --release

二进制文件将位于 target/release/gdrive-mcp-server.

用法

标准传输(默认)

Claude Desktop、MCP Inspector或任何基于stdio的MCP客户端的单用户模式。首次运行时,将打开一个浏览器窗口,用于Google OAuth2授权。令牌被缓存以供后续运行。

gdrive-mcp-server --credentials-file client_secret.json

HTTP传输(多用户)

多用户模式,完全支持MCP OAuth 2.1。每个用户都通过MCP OAuth流(RFC 9728)使用自己的Google帐户进行身份验证。服务器充当Google的OAuth代理。

gdrive-mcp-server --transport http --http-addr 0.0.0.0:3000 --credentials-file client_secret.json

MCP端点将在 http://localhost:3000/mcp.

OAuth流程:

  1. MCP客户端通过以下方式发现OAuth元数据 /.well-known/oauth-protected-resource
  2. 客户端通过以下方式动态注册 /oauth/register (RFC 7591)
  3. 授权重定向到Google OAuth同意屏幕
  4. 用户使用其Google帐户进行身份验证
  5. 服务器为绑定到Google令牌的每个用户发放MCP令牌
  6. 每个用户都可以单独访问Google Drive

环境变量

所有CLI选项都可以通过环境变量设置:

变量 默认值 描述
GDRIVE_MCP_TRANSPORT stdio 运输方式: stdio 或 http
GDRIVE_MCP_HTTP_ADDR 127.0.0.1:3000 HTTP绑定地址
GDRIVE_MCP_CREDENTIALS -- OAuth2凭据JSON路径
GDRIVE_MCP_TOKEN_CACHE ~/.gdrive-mcp-token.json 令牌缓存路径(stdio模式)
GDRIVE_MCP_LOG_LEVEL info 日志级别: error, warn, info, debug, trace

克劳德桌面版

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "gdrive": {
      "command": "/path/to/gdrive-mcp-server",
      "args": ["--credentials-file", "/path/to/client_secret.json"]
    }
  }
}

MCP检查员

# Stdio
npx @modelcontextprotocol/inspector ./target/release/gdrive-mcp-server -- --credentials-file client_secret.json

# HTTP
npx @modelcontextprotocol/inspector http://localhost:3000/mcp

服务帐户

对于没有用户交互的服务器到服务器使用,请使用服务帐户密钥:

gdrive-mcp-server --credentials-file service-account-key.json

服务器会自动从JSON文件中检测凭据类型。

建筑

crates/
  gdrive-mcp-server/        # Binary crate (thin main.rs)
  gdrive-mcp-core/          # Library crate (all logic)
    src/
      auth.rs                # OAuth2 setup, token persistence, service account
      client.rs              # DriveClient wrapper
      config.rs              # CLI args + env vars (clap)
      convert.rs             # Google Doc format conversions
      error.rs               # Error types (thiserror)
      oauth.rs               # MCP OAuth 2.1 proxy to Google (HTTP mode)
      server.rs              # GDriveServer, ServerHandler impl
      transport.rs           # stdio / Streamable HTTP switching
      tools/                 # 41 MCP tools across 9 domain modules
      resources/             # Resource templates (file, folder)
      prompts/               # Prompts (search, organize, sharing)

技术栈

组件 选择
MCP-SDK rmcp v0.16
Google Drive API 谷歌驱动3 v7.0版本
OAuth2 yup-oauth2 v12
异步运行时 东京
HTTP框架 阿克苏姆 v0.8
CLI 拍手 v4

贡献

欢迎投稿!请随时打开问题或提交pull请求。

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/my-feature)
  3. 提交您的更改
  4. 推到分支
  5. 打开拉取请求

许可证

该项目根据 MIT许可证.


路线图: 计划推出Gmail工具、谷歌日历和更多谷歌服务。欢迎投稿!