Google Drive MCP服务器

通过MCP协议将Google Drive操作暴露给AI客户端的服务器工具,支持文件管理、搜索和文档编辑等功能。

  • by m-tilab
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 m-tilab/gdrive-mcp-server

使用说明

gdrive mcp服务器

A. Google Drive MCP服务器 建于 Spring AI MCP服务器启动启动程序.

将Google Drive操作作为MCP工具公开,使您的Google Drive可供任何兼容MCP的AI客户端(Claude Desktop、GitHub Copilot、Cursor等)访问。


工具

工具 说明
list_files 列出文件/文件夹,可选择按父文件夹筛选
search_files 按名称或全文内容搜索
get_file_info 按ID获取特定文件的元数据
read_file 读取谷歌文档、表格或文本文件的内容;for Slides返回幻灯片内容+演讲者笔记
list_folders 列出父文件夹中的所有文件夹或子文件夹
create_document 创建一个新的空Google文档
create_spreadsheet 创建新的空Google表格
create_presentation 创建新的空白Google幻灯片演示文稿
create_folder 创建新文件夹
update_document 写入(替换)现有Google文档的文本内容
update_spreadsheet 使用CSV数据写入(替换)现有Google表格的内容
update_presentation 在谷歌幻灯片演示文稿中编写(替换)幻灯片;支持 --- 滑动分离器,以及 [notes] 演讲者笔记部分

先决条件

  • Java 21+
  • Maven 3.9+
  • Google Cloud项目 Google Drive API 和 谷歌幻灯片API 启用
  • OAuth2凭据存储在 ~/.config/google-drive-mcp/

正在获取OAuth2凭据文件

  1. 首选 谷歌云控制台 → API和服务 → 凭证
  2. 创建一个 OAuth 2.0客户端ID (桌面应用程序)并下载为 gcp-oauth.keys.json
  3. 把它放在 ~/.config/google-drive-mcp/gcp-oauth.keys.json
  4. 使用 OAuth 2.0游乐场 (或 gcloud auth)生成令牌并另存为 ~/.config/google-drive-mcp/tokens.json

这 tokens.json 文件必须包含:

{
  "client_id": "...",
  "client_secret": "...",
  "refresh_token": "...",
  "access_token": "...",
  "token_type": "Bearer"
}

配置

通过设置令牌文件的路径 GDRIVE_TOKENS_PATH 环境变量:

export GDRIVE_TOKENS_PATH=~/.config/google-drive-mcp/tokens.json

构建与运行

mvn clean package -DskipTests
java -jar target/gdrive-mcp-server-0.0.1-SNAPSHOT.jar

连接到MCP客户端

GitHub Copilot命令行界面

Copilot CLI将MCP服务器配置存储在 ~/.copilot/mcp-config.json.

选项A——互动式(推荐):

/mcp add

填写字段并按 Ctrl+S 为了拯救。

选项B——直接编辑配置文件:

添加 ~/.copilot/mcp-config.json:

{
  "mcpServers": {
    "google-drive": {
      "type": "stdio",
      "command": "java",
      "args": ["-jar", "/path/to/gdrive-mcp-server-0.0.1-SNAPSHOT.jar"],
      "env": {
        "GDRIVE_TOKENS_PATH": "~/.config/google-drive-mcp/tokens.json"
      },
      "tools": ["*"]
    }
  }
}

VS代码中的GitHub副本

添加 .vscode/mcp.json 在您的工作区(或用户级别 settings.json 在...之下 "mcp"):

{
  "servers": {
    "google-drive": {
      "type": "stdio",
      "command": "java",
      "args": ["-jar", "/path/to/gdrive-mcp-server-0.0.1-SNAPSHOT.jar"],
      "env": {
        "GDRIVE_TOKENS_PATH": "~/.config/google-drive-mcp/tokens.json"
      }
    }
  }
}

克劳德桌面

添加 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "google-drive": {
      "command": "java",
      "args": ["-jar", "/path/to/gdrive-mcp-server-0.0.1-SNAPSHOT.jar"],
      "env": {
        "GDRIVE_TOKENS_PATH": "~/.config/google-drive-mcp/tokens.json"
      }
    }
  }
}

光标

添加 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "google-drive": {
      "command": "java",
      "args": ["-jar", "/path/to/gdrive-mcp-server-0.0.1-SNAPSHOT.jar"],
      "env": {
        "GDRIVE_TOKENS_PATH": "~/.config/google-drive-mcp/tokens.json"
      }
    }
  }
}

演示文稿文本格式

这 update_presentation 该工具使用纯文本格式定义幻灯片内容:

  • 幻灯片由一条仅包含以下内容的线分隔 ---
  • 这 第一行 每个块的滑块 标题
  • 剩余的线条变成幻灯片 身体
  • 添加一个 [notes] 线开始 演讲者备注 该幻灯片的部分
Title of Slide 1
Body content for slide 1
Second line of body
[notes]
Speaker notes for slide 1 go here

---
Title of Slide 2
Body content for slide 2
[notes]
Speaker notes for slide 2

read_file 在Google幻灯片演示文稿上,返回相同格式的内容,包括 [notes] 部分。


src/main/java/io/github/mahditilab/gdrivemcp/
  GdriveMcpServerApplication.java   # Spring Boot entry point
  config/
    GoogleDriveConfig.java           # Google Drive API client setup (OAuth2)
  tools/
    GoogleDriveTools.java            # MCP tools (@Tool annotations)
src/main/resources/
  application.yml                    # MCP server config (STDIO transport)

技术栈

  • Java 21
  • 弹簧靴3.4
  • Spring AI MCP服务器启动启动程序 (spring-ai-starter-mcp-server)--STDIO传输
  • Google Drive API v3 (google-api-services-drive)
  • Google幻灯片API v1 (google-api-services-slides)
  • 谷歌认证库 (google-auth-library-oauth2-http)