谷歌云端硬盘服务器
此MCP服务器与Google Drive集成,允许列出、读取和搜索文件。
组件
工具
- 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代理工作流(文档链接)
- 解析 链接与
gdrive_parse_link得到fileId和headingId. - 列表标题 随着
gdrive_list_headings(使用gdrive_get_metadata用于文件元数据)。 - 阅读 随着
gdrive_read_content使用mode="section"按标题(避免大文档的完整阅读)。
提示
服务器公开提示模板,以指导代理完成常见的工作流程:
outline_doc(参数:url,可选minLevel,maxLevel)read_section_by_heading(参数:url,sectionHeading)
计划工具(此处尚未实施)
- gsheets_read
- 描述:从谷歌电子表格中读取数据,范围和格式选项灵活。 - 输入: - spreadsheetId (string):要读取的电子表格的ID。 - ranges (字符串数组,可选):A1表示法范围的可选数组(例如。, ['Sheet1!A1:B10']).如果没有提供,请读取整张表。 - sheetId (数字,可选):要读取的特定纸张ID。如果没有提供范围,则读取第一页。 - 输出:从电子表格中返回指定的数据。
- gsheets_update_cell
- 描述:更新Google电子表格中的单元格值。 - 输入: - fileId (string):电子表格的ID。 - range (string):A1表示法中的单元格范围(例如。, 'Sheet1!A1'). - value (string):新单元格值。 - 输出:确认指定单元格中的更新值。
资源
服务器当前未公开任何 gdrive:/// 资源。访问驱动器 通过工具获取内容。
入门
- 创建新的Google Cloud项目
- 启用Google Drive API
- 配置OAuth同意屏幕 (“内部”适合测试)
- 添加OAuth作用域
https://www.googleapis.com/auth/drive.readonly,https://www.googleapis.com/auth/spreadsheets - 为了允许与工作表和文档进行交互,您还需要启用 谷歌网页API 和 谷歌文档API 在您的工作区启用API和服务部分。
- 创建OAuth客户端ID 适用于应用程序类型“桌面应用程序”
- 下载客户端OAuth密钥的JSON文件
- 将密钥文件重命名为
gcp-oauth.keys.json并放置到您指定的路径中GDRIVE_CREDS_DIR(即。/Users/username/.config/mcp-gdrive) - 记下您的OAuth客户端ID和客户端密码。它们必须作为环境变量与配置目录一起提供。
- 您还需要在项目中设置一个.env文件,其中包含以下字段。您可以在Google Cloud控制台的凭据部分找到客户端ID和客户端密码。
GDRIVE_CREDS_DIR=/path/to/config/directory
CLIENT_ID=
CLIENT_SECRET=
MCP_GDRIVE_OUTPUT_FORMAT=json确保使用以下任一方法构建服务器 npm run build 或 npm run watch.
认证
启动服务器(node ./dist/index.js)如果不存在有效凭据,则触发身份验证步骤
系统将提示您使用浏览器进行身份验证。您必须使用与您的Google Cloud项目所在组织相同的帐户进行身份验证。
您的OAuth令牌保存在由 GDRIVE_CREDS_DIR 环境变量。

使用桌面应用程序
要将此服务器与桌面应用程序集成,请将配置指向您的本地版本:
{
"mcpServers": {
"gdrive": {
"command": "node",
"args": ["/absolute/path/to/mcp-google-drive/dist/index.js"],
"env": {
"CLIENT_ID": "",
"CLIENT_SECRET": "",
"GDRIVE_CREDS_DIR": "/path/to/config/directory",
"MCP_GDRIVE_OUTPUT_FORMAT": "json"
}
}
}
}
## License
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.