项目简介
'isaacphi_mcp-gdrive' 是一个基于 Model Context Protocol (MCP) 的服务器实现,它允许 LLM 客户端通过标准化的 MCP 协议访问和操作 Google Drive 与 Google Sheets 中的数据。该服务器提供了一系列工具,使 LLM 能够搜索、读取 Google Drive 文件,以及读取、更新 Google Sheets 的数据,从而扩展 LLM 的上下文信息来源和功能。
主要功能点
- 资源访问 (Resources):
- 将 Google Drive 文件作为 MCP 资源进行管理,支持通过 'gdrive:///文件ID' 的 URI 访问文件内容。
- 支持多种文件类型,包括 Google Workspace 文件(Docs, Sheets, Presentations, Drawings)和其他常见文件格式。
- Google Workspace 文件会被自动转换为常用格式,例如:
- Docs → Markdown
- Sheets → CSV
- Presentations → 纯文本
- Drawings → PNG
- 工具 (Tools): 提供以下工具,扩展 LLM 的能力:
- 'gdrive_search': 在 Google Drive 中搜索文件。
- 'gdrive_read_file': 读取 Google Drive 文件的内容。
- 'gsheets_read': 读取 Google Sheets 电子表格的数据,支持指定范围和工作表。
- 'gsheets_update_cell': 更新 Google Sheets 电子表格中单元格的值。
安装步骤
- 创建 Google Cloud 项目: 访问 Google Cloud Console 并创建一个新的项目。
- 启用 Google Drive API 和 Google Sheets API: 在 Google Cloud 项目中,导航到 "API 和服务" -> "已启用的 API 和服务",点击 "启用 API 和服务",搜索并启用 "Google Drive API" 和 "Google Sheets API"。
- 配置 OAuth 同意屏幕: 在 "API 和服务" -> "OAuth 同意屏幕" 中配置 OAuth 同意屏幕。对于测试目的,选择 "外部" 或 "内部" 均可。
- 添加 OAuth 范围: 在 OAuth 同意屏幕配置中,添加以下 OAuth 范围:
- 'https://www.googleapis.com/auth/drive.readonly' (用于只读访问 Google Drive 文件)
- 'https://www.googleapis.com/auth/spreadsheets' (用于访问 Google Sheets)
- 创建 OAuth 客户端 ID: 在 "API 和服务" -> "凭据" 中,点击 "创建凭据" -> "OAuth 客户端 ID"。选择 "桌面应用" 作为应用程序类型。
- 下载 OAuth 密钥 JSON 文件: 创建完成后,下载客户端的 OAuth 密钥 JSON 文件。
- 重命名密钥文件并放置到配置目录: 将下载的 JSON 文件重命名为 'gcp-oauth.keys.json',并放置到您指定的配置目录中。配置目录路径将通过环境变量 'GDRIVE_CREDS_DIR' 指定,例如 '/Users/username/.config/mcp-gdrive'。
- 设置环境变量: 记下您的 OAuth 客户端 ID 和客户端密钥。您需要将它们设置为环境变量 'CLIENT_ID' 和 'CLIENT_SECRET',同时设置 'GDRIVE_CREDS_DIR' 指向您的配置目录。
- 构建服务器: 在项目根目录下运行 'npm run build' 或 'npm run watch' 构建服务器。
服务器配置 (MCP 客户端配置)
为了将此 MCP 服务器集成到 MCP 客户端应用程序中,您需要在客户端的服务器配置中添加以下 JSON 配置。请替换 '<CLIENT_ID>'、'<CLIENT_SECRET>' 和 '/path/to/config/directory' 为您的实际值。
{ "mcpServers": { "gdrive": { // 服务器名称,客户端使用此名称引用 "command": "npx", // 启动服务器的命令,这里使用 npx 运行 npm 包 "args": [ "-y", "@isaacphi/mcp-gdrive" // 要运行的 npm 包名称,确保已安装 @isaacphi/mcp-gdrive ], "env": { "CLIENT_ID": "<CLIENT_ID>", // 您的 OAuth 客户端 ID "CLIENT_SECRET": "<CLIENT_SECRET>", // 您的 OAuth 客户端密钥 "GDRIVE_CREDS_DIR": "/path/to/config/directory" // 您存放 gcp-oauth.keys.json 文件的配置目录路径 } } } }
基本使用方法
- 启动服务器: MCP 客户端根据上述配置启动 'gdrive' MCP 服务器。
- 客户端请求: 客户端可以使用 MCP 协议发送请求到 'gdrive' 服务器。
- 列出 Google Drive 文件资源: 客户端可以发送 'ListResourcesRequest' 请求到 'gdrive' 服务器,以获取 Google Drive 文件列表。
- 读取 Google Drive 文件内容: 客户端可以发送 'ReadResourceRequest' 请求,并指定 'gdrive:///文件ID' 格式的 URI 来读取特定文件的内容。
- 调用工具: 客户端可以发送 'CallToolRequest' 请求,调用 'gdrive_search', 'gdrive_read_file', 'gsheets_read', 'gsheets_update_cell' 等工具,并传递相应的参数以执行特定操作。
注意: 首次使用时,服务器会启动浏览器进行 OAuth 身份验证。您需要使用与您的 Google Cloud 项目关联的 Google 账户进行身份验证。
信息
分类
数据库与文件