Google Drive 命令行工具

通过命令行界面和MCP服务器访问和操作Google Drive、Docs和Sheets,支持文件搜索、元数据获取、文档读取和创建等功能。

  • by abanka27
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 abanka27/mcp-google-drive

使用说明

Google Drive命令行界面和MCP服务器

通过两个共享的界面读取对Google云端硬盘、文档和表格的访问权限 一个实现:a gdrive 命令行界面 (主表面,为外壳而建 管道和人工智能代理)和 MCP服务器 (stdio)。两者都通过以下方式进行身份验证 OAuth2和调用成为传输无关 core/ 层。

需要 Node.js>=24.

该项目包括最初由Anthropic,PBC开发的代码,根据MIT许可证从 此回购,以及来自的额外工作 isaacphi/mcp gdrive.

命令行界面

构建(npm run build),然后调用 node dist/bin/gdrive.js <command>.对于a 赤裸的 gdrive 命令,符号链接 dist/bin/gdrive.js 进入您的任何目录 路径。每个命令都接受一个驱动器文件ID或谷歌URL。

gdrive search <query> [--type docs|sheets] [--page-size N] [--page-token TOKEN]
gdrive meta   <fileId|url>
gdrive docs read     <fileId|url> [--section "Heading"] [--json] [--no-images]
gdrive docs headings <fileId|url> [--min N] [--max N]
gdrive docs comments <fileId|url> [--include-resolved]
gdrive docs create   --name "Title" [--from FILE]    (or pipe markdown on stdin)
gdrive docs update   <fileId|url> [--from FILE]       (or pipe markdown on stdin)
gdrive sheets read   <fileId|url> [--range A1:B10] [--csv|--tsv|--json]
gdrive files read    <fileId|url>

docs create/update 通过Drive的原生转换器导入Markdown。更新 是 全身更换:文本和结构(标题、列表、表格、, 链接)转换,但确实如此 不 保留嵌入图像或锚定 评论。本地图像参考(![](./x.png))在进口前被剥离 (他们使Drive的进口商失败);保留并嵌入公共图像URL。

内容被写入 标准输出 所以你可以用管道或重定向它;结构化的 输出可通过以下方式获得 --json,以及辅助注释(例如嵌入的图像 清单)转到stderr。交互式终端拒绝二进制内容-- 重定向它(gdrive files read <id> > out.pdf).使用以下命令运行任何命令 --help 为了它的旗帜。

示例:

gdrive docs read <id> > prd.md                  # whole doc as Markdown
gdrive docs read <id> --section "2. Context"    # just one section
gdrive sheets read <id> --range "'Sheet2'!A1:C9" --tsv
gdrive search "quarterly" --type docs

MCP组件

工具

  • gdrive_search

    • 描述:在Google Drive中搜索文件。
    • 输入:
      • query (string):搜索查询。
      • pageToken (字符串,可选):下一页结果的标记。
      • pageSize (数字,可选):每页结果数(最多100个)。
    • 输出:默认情况下返回带文件元数据的结构化JSON。集 MCP_GDRIVE_OUTPUT_FORMAT=text 返回纯文本列表。
  • gdrive_read_file

    • 描述:从Google云端硬盘读取文件内容的便利工具(保留传统行为)。
    • 输入:
      • fileId (string):要读取的文件的ID。
      • url (字符串,可选):带标题锚点的Google Docs/Drive URL(用于节提取)。
      • sectionHeading (字符串,可选):提取章节的标题文本。
    • 输出:默认情况下返回带文件元数据和内容的结构化JSON,或返回带 MCP_GDRIVE_OUTPUT_FORMAT=text.
  • gdrive_parse_link

    • 描述:解析Google Docs URL并提取标识符。
    • 输入:
      • url (string):要解析的Google文档URL。
    • 输出:退货 fileId,可选 headingId,以及 docType.
  • gdrive_get-metadata

    • 描述:获取Google文档的文件元数据和可选标题。
    • 输入:
      • fileId (string):要检查的文件的ID。
      • includeHeadings (布尔值,可选):当文件是谷歌文档时,包括标题。
    • 输出:返回文件元数据,可选 docType,以及可选标题列表。
  • gdrive_list_标题

    • 描述:列出Google文档的标题。
    • 输入:
      • fileId (string):要检查的Google文档的ID。
      • minLevel (数字,可选):要包括的最低标题级别(例如。, 2 对于H2+)。
      • maxLevel (数字,可选):要包括的最大航向级别(例如。, 3 高达H3)。
    • 输出:返回标题列表(带级别)和文件元数据。
  • gdrive_read_content

    • 描述:按模式显式读取内容(full 或 section).
    • 输入:
      • fileId (string):要读取的文件的ID。
      • mode (字符串,可选): full (默认)或 section.
      • sectionHeading (字符串,可选):当 mode="section".
    • 输出:返回文件元数据和内容,或在请求时返回特定部分。
  • gdrive_下载

    • 描述:将内容下载到本地文件,返回本地分页的字节偏移量。
    • 输入:
      • fileId (string):要读取的文件的ID。
      • mode (字符串,可选): full (默认)或 section.
      • sectionHeading (字符串,可选):当 mode="section".
      • destinationPath (字符串,可选):下载的输出路径或目录。
      • chunkSizeBytes (number,可选):偏移量的块大小(以字节为单位)。
    • 输出:返回本地分页的文件元数据、下载路径和字节偏移量。

下载目录

默认下载目录可以通过以下方式配置 GDRIVE_DOWNLOAD_DIR。如果未设置,下载将转到:

~/.mcp-gdrive/downloads

输出格式

工具输出格式通过环境变量全局配置:

MCP_GDRIVE_OUTPUT_FORMAT=json   # default
MCP_GDRIVE_OUTPUT_FORMAT=text

代理工作流(文档链接)

  1. 解析 链接与 gdrive_parse_link 得到 fileId 和 headingId.
  2. 列表标题 和 gdrive_list_headings (使用 gdrive_get_metadata 用于文件元数据)。
  3. 阅读 和 gdrive_read_content 使用 mode="section" 按标题(避免大文档的完整阅读)。

提示

服务器公开提示模板,以指导代理完成常见的工作流程:

  • outline_doc (参数: url,可选 minLevel, maxLevel)
  • read_section_by_heading (参数: url, sectionHeading)

表格

MCP服务器通过通用读取工具将电子表格读取为CSV。对于 range和tab-aware读取(Sheets值API),使用CLI gdrive sheets read写入操作(创建/更新文档或表格)包括 这两种表面都没有实现。

资源

服务器当前未公开任何 gdrive:/// 资源。访问驱动器 通过工具获取内容。

设置

三步,约3分钟。你从不编辑 .env --从以下位置读取凭据 你从谷歌下载的文件。

1.安装

git clone https://github.com/abanka27/mcp-google-drive.git
cd mcp-google-drive
npm install        # builds automatically (requires Node >= 24)

2.获取谷歌凭据(一次性,约2分钟)

每个人都需要自己的OAuth客户端——凭据不能共享。点击 通过这些确切的页面:

  1. 创建或选择项目: https://console.cloud.google.com/projectcreate
  2. 启用三个API --点击 启用 在每个:
    • 开车https://console.cloud.google.com/apis/library/drive.googleapis.com
    • 文件--https://console.cloud.google.com/apis/library/docs.googleapis.com
    • 床单--https://console.cloud.google.com/apis/library/sheets.googleapis.com
  3. OAuth同意屏幕: https://console.cloud.google.com/apis/credentials/consent 挑选 内部的 如果你的账户提供它 外部 应用程序中 “测试”登录每7天过期一次——将自己添加为测试用户,或 发表)
  4. 创建凭据→ OAuth 客户端ID,应用程序类型 桌面应用程序: https://console.cloud.google.com/apis/credentials/oauthclient
  5. 下载JSON。 你只需要一个文件。

3.运行安装程序

npm run setup

这将查找您刚刚下载的文件(在当前目录或 ~/Downloads),存储它,打开浏览器登录一次,并链接 gdrive 在你的路径上。如果找不到文件,请显式传递路径:

node dist/bin/gdrive.js setup ~/Downloads/client_secret_XXXX.json

完成--试试看:

gdrive search "" --page-size 3

凭据和保存的令牌实时存在 ~/.config/mcp-gdrive ($XDG_CONFIG_HOME/mcp-gdrive),或设置 GDRIVE_CREDS_DIR 以覆盖。这 浏览器提示仅在首次运行时出现;之后,令牌刷新 默默地。

与AI代理一起使用(Claude Code技能)

此回购提供了一项技能 .claude/skills/gdrive/ 它教导代理人 命令以及何时伸手去拿。当您运行Claude时,它会自动加载 此仓库内的代码。要从任何目录使用它,请将其复制到您的用户中 技能:

cp -r .claude/skills/gdrive ~/.claude/skills/gdrive

然后让你的代理人阅读、搜索或更新谷歌文档/表格,它会 驾驶 gdrive 为你。

许可证

此MCP服务器根据MIT许可证获得许可。这意味着您可以根据MIT许可证的条款和条件自由使用、修改和分发软件。有关更多详细信息,请参阅项目存储库中的LICENSE文件。