使用说明
谷歌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.谷歌云控制台
- 首选 谷歌云控制台
- 创建新项目(或选择现有项目)
- 启用 Google Drive API (API和服务→ 图书馆→ 搜索“Google Drive API”)
- 首选 API和服务→ 凭证→ 创建凭证→ OAuth客户端ID
- 选择 桌面应用 作为应用程序类型
- 下载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流程:
- MCP客户端通过以下方式发现OAuth元数据
/.well-known/oauth-protected-resource - 客户端通过以下方式动态注册
/oauth/register(RFC 7591) - 授权重定向到Google OAuth同意屏幕
- 用户使用其Google帐户进行身份验证
- 服务器为绑定到Google令牌的每个用户发放MCP令牌
- 每个用户都可以单独访问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请求。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/my-feature) - 提交您的更改
- 推到分支
- 打开拉取请求
许可证
该项目根据 MIT许可证.
路线图: 计划推出Gmail工具、谷歌日历和更多谷歌服务。欢迎投稿!