云盘文件管理 MCP 服务

一个为 Google Drive 和 OneDrive 提供文件管理能力的 MCP 服务,支持文件列表、搜索、读取、下载、上传、分享及文件夹操作,便于 AI 助手和开发者高效管理云盘资源。

  • by henrysouchien
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 henrysouchien/drive-mcp

使用说明

drive-mcp

MCP server for Google Drive and OneDrive operations.

Tools

Tool Description
gdrive_list_folder List files in a Google Drive folder by name or folder_id
gdrive_list_folder_recursive Recursively list files in a folder and subfolders
gdrive_list_shared_drives List Shared Drives visible to the account
gdrive_search Search Google Drive by filename (includes Shared Drives)
gdrive_read_file Read file contents from Google Drive
gdrive_download_file Download a Drive file (or export Docs/Sheets/Slides) to a local path
gdrive_write_file Create/overwrite a text file in Google Drive
gdrive_create_doc Create a Google Doc (optionally seeded with text)
gdrive_create_folder Create a Google Drive folder (optional parent, dry-run, undo)
gdrive_rename Rename a Google Drive file
gdrive_move Move a Google Drive file to another folder
gdrive_copy Copy a Google Drive file
gdrive_trash Move a Google Drive file/folder to trash
gdrive_share Share a file/folder with a user email (reader/commenter/writer)
gdrive_undo Undo a prior mutating gdrive_* operation via restore token
onedrive_list_root List items in OneDrive root
onedrive_list_folder List items in a OneDrive folder by path
onedrive_search Search OneDrive by filename
onedrive_read_file Read file contents from OneDrive

Most mutating Google Drive tools accept optional file_id / folder_id arguments (preferred when known) and support dry_run=True previews. Successful mutations that can be reversed return a restore_token for gdrive_undo.

Setup

Prerequisites

  • Python 3.10+
  • Google account with Drive API enabled
  • Microsoft account with Graph API access

Installation

git clone https://github.com/<your-user>/drive-mcp.git
cd drive-mcp
"$(uv python find --system --managed-python 3.13.15)" -m venv --copies venv
venv/bin/python -m pip install -e .

Authentication

  • Google Drive credentials: place OAuth desktop client JSON at drive_credentials.json.
  • OneDrive credentials: defaults in src/onedrive.py use a public device-flow app registration.
  • Bootstrap auth once:
venv/bin/python -c "from src import google_drive; google_drive.authenticate()"
venv/bin/python -c "from src import onedrive; onedrive.authenticate()"

Claude Code Configuration

Add to ~/.claude.json:

{
  "mcpServers": {
    "drive-mcp": {
      "type": "stdio",
      "command": "/path/to/drive-mcp/venv/bin/python",
      "args": ["/path/to/drive-mcp/run_server.py"]
    }
  }
}

Development

venv/bin/python -c "from src.server import mcp; print([t.name for t in mcp._tool_manager._tools.values()])"
venv/bin/python run_server.py

License

MIT