Google Drive完全访问MCP服务器
无服务器MCP(模型上下文协议)服务器,通过OAuth2身份验证提供完整的Google Drive访问权限,专为部署在Scaleway Functions上而设计。
概述
该项目扩展了 fly_agile_gdrive_mcp 本地服务器提供:
- OAuth2身份验证:个人谷歌帐户访问权限(非服务帐户)
- 无服务器部署:针对Scaleway功能进行了优化
- 多租户支持:为不同的帐户/文件夹部署多个实例
- HTTP传输:兼容网络客户端(Claude Chat、iOS应用程序等)
- 完全驱动器访问:对用户的整个驱动器或特定文件夹的读/写访问权限
与本地版本的主要区别
| 功能 | 本地MCP(fly_agile) | 无服务器MCP(this) |
|---|---|---|
| 身份验证 | 服务帐户 | OAuth2(个人) |
| 传输 | Stdio(仅限本地) | HTTP/REST API |
| 部署 | 本地进程 | Scaleway函数 |
| 多租户 | 单实例 | 多部署 |
| 客户端支持 | 仅限Claude Desktop | Web、移动、任何HTTP客户端 |
计划的功能
核心功能(来自fly_agile_gdrive_mcp v1.0.0)
本地版本的所有功能都将可用:
读取操作
- ✅ 列出具有过滤和分页功能的文件
- ✅ 使用Google Drive查询语法搜索文件
- ✅ 通过自动格式转换读取文件内容
- ✅ 获取详细的文件元数据
写入操作(第1阶段)
- ✅ 创建新文件(文档、表格、幻灯片)
- ✅ 从URL或base64数据上传文件
- ✅ 更新现有文件内容(仅限文本文件)
- ✅ 在文件夹之间移动文件
- ✅ 重新命名
- ✅ 创建新文件夹
新的无服务器功能
身份验证和安全
- 带有刷新令牌管理的OAuth2流
- 安全令牌存储(Scaleway机密管理器)
- 每个用户的身份验证和隔离
- 可选文件夹范围的访问限制
- 客户端应用程序的API密钥身份验证
无服务器优化
- 无状态请求处理
- 高效冷启动优化
- 使用Scaleway自动缩放
- 请求/响应缓存
- 每个用户的速率限制
多租户架构
- 部署具有不同配置的多个实例
- 支持多个Google帐户
- 文件夹级访问隔离
- 每次部署的自定义域支持
部署架构
┌─────────────┐ ┌──────────────┐ ┌─────────────────┐
│ Claude │────▶│ Scaleway │────▶│ Google Drive │
│ Clients │ HTTP│ Functions │OAuth│ API │
└─────────────┘ └──────────────┘ └─────────────────┘
│
┌──────▼───────┐
│ Secrets │
│ Manager │
└──────────────┘用例
个人驱动器访问
为您的个人Google帐户部署,让Claude访问您的文档:
- 研究论文和笔记
- 项目文件
- 个人知识库
团队文件夹
在文件夹限制下按团队/项目部署:
- 营销团队实例→ 仅限营销文件夹
- 工程文档实例→ 仅限技术规格文件夹
- 财务实例→ 仅限财务报告文件夹
多账户支持
为不同的Google帐户部署单独的实例:
- 个人Gmail帐户
- 工作谷歌工作区帐户
- 客户特定账户
配置
每个部署都可以配置:
# scaleway-function-config.yaml
environment:
ALLOWED_FOLDERS: "folder_id1,folder_id2" # Optional: restrict access
OAUTH_CLIENT_ID: "from_google_console"
OAUTH_CLIENT_SECRET: "@secret:oauth_secret"
ALLOWED_ORIGINS: "https://claude.ai,https://claude-chat.example.com"
RATE_LIMIT: "100" # requests per minute per user安全考虑
- OAuth2令牌安全地存储在Scaleway密钥管理器中
- 代码或环境变量中没有凭据
- 限制每用户费率以防止滥用
- 可选IP分配
- 所有操作的审核日志记录
- 自动令牌刷新处理
发展路线图
第一阶段:核心迁移
- \[\]从fly_agile_gdrive_mcp中适配核心逻辑
- \[\]实现OAuth2流
- \[\]创建HTTP端点处理程序
- \[\]添加Scaleway部署配置
第二阶段:多租户功能
- \[\]用户隔离和会话管理
- \[\]文件夹范围的访问限制
- \[\]每个部署配置
- \[\]自定义域支持
第三阶段:高级功能
- \[\]实现缓存层
- \[\]添加批处理操作支持
- \[\]WebSocket支持实时更新
- \[\]从第2阶段待办事项列表中高级搜索
许可证
麻省理工学院
致谢
基于 fly_agile_gdrive_mcp -本地MCP服务器实现。
