项目简介

'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 电子表格中单元格的值。

安装步骤

  1. 创建 Google Cloud 项目: 访问 Google Cloud Console 并创建一个新的项目。
  2. 启用 Google Drive API 和 Google Sheets API: 在 Google Cloud 项目中,导航到 "API 和服务" -> "已启用的 API 和服务",点击 "启用 API 和服务",搜索并启用 "Google Drive API" 和 "Google Sheets API"。
  3. 配置 OAuth 同意屏幕: 在 "API 和服务" -> "OAuth 同意屏幕" 中配置 OAuth 同意屏幕。对于测试目的,选择 "外部" 或 "内部" 均可。
  4. 添加 OAuth 范围: 在 OAuth 同意屏幕配置中,添加以下 OAuth 范围:
    • 'https://www.googleapis.com/auth/drive.readonly' (用于只读访问 Google Drive 文件)
    • 'https://www.googleapis.com/auth/spreadsheets' (用于访问 Google Sheets)
  5. 创建 OAuth 客户端 ID: 在 "API 和服务" -> "凭据" 中,点击 "创建凭据" -> "OAuth 客户端 ID"。选择 "桌面应用" 作为应用程序类型。
  6. 下载 OAuth 密钥 JSON 文件: 创建完成后,下载客户端的 OAuth 密钥 JSON 文件。
  7. 重命名密钥文件并放置到配置目录: 将下载的 JSON 文件重命名为 'gcp-oauth.keys.json',并放置到您指定的配置目录中。配置目录路径将通过环境变量 'GDRIVE_CREDS_DIR' 指定,例如 '/Users/username/.config/mcp-gdrive'。
  8. 设置环境变量: 记下您的 OAuth 客户端 ID 和客户端密钥。您需要将它们设置为环境变量 'CLIENT_ID' 和 'CLIENT_SECRET',同时设置 'GDRIVE_CREDS_DIR' 指向您的配置目录。
  9. 构建服务器: 在项目根目录下运行 '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 文件的配置目录路径
      }
    }
  }
}

基本使用方法

  1. 启动服务器: MCP 客户端根据上述配置启动 'gdrive' MCP 服务器。
  2. 客户端请求: 客户端可以使用 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 账户进行身份验证。

信息

分类

数据库与文件