Google Drive API集成工具

一个通过VSCode和Copilot连接Google Drive API的工具,用于个人开发中的文件管理和任务自动化,支持未来的服务扩展和异常检测功能。

  • by mabotofu06
  • 本地部署
  • 更新于
在 GitHub 查看 mabotofu06/indie-dev-mcp

使用说明

关于Indie-Dev-MCP

0.前提与展望

将VSCode与Copilot的代理模式以及本MCP服务器连接起来,通过外部API服务连接个人开发时的工作(如文件管理、任务管理等)以提高效率

同时,我们计划将其扩展为具备高度灵活性的系统,能够基于已发布服务的错误监控、用户咨询和需求来发布任务和问题,从而实现从运营监控到修改的全过程

1. 目的(当前构想)

  • 提供可从VSCode、Copilot等开发环境操作Google Drive的API
  • 提高个人开发任务的效率及实现资料和代码管理的自动化
  • 构建可扩展至未来与其他服务的联动以及运营管理和异常检测功能的基础

2. 功能需求

2.1 开发作业支持

  • Google Drive文件操作API

    设想通过VSCode Copilot进行操作

    • 获取文件列表
    • 文件创建
    • 文件更新
    • (将来可删除/搜索/指定文件夹)

2.2 认证与权限管理

  • 个人开发用的服务账户认证
  • 在本地保存并使用JSON键
  • 未来也可支持OAuth2流程

2.3 开发与运用支持

  • API服务器的日志记录(Fastify logger)
  • 正在开发中的自动重载(nodemon)
  • 使用TypeScript进行类型安全的API设计

2.4 扩展功能(未来)

  • 与其他服务如GitHub、Discord、Notion等的协作
  • MCP服务器集成仪表板
  • 异常检测和任务进度管理
  • AI辅助的自动任务生成
  • 基于任务自主收集所需资料并进行修改等的代理

3. 非功能需求

  • 语言·框架
    • Node.js 20多个版本
    • Fastify(原生支持TypeScript)
  • 表现
    • 轻量级、高速的API响应
  • 开发效率
    • 使用TypeScript实现的类型安全
    • 通过nodemon实现自动重载
  • 安全
    • 仅使用服务账户进行个人开发
    • JSON键的本地管理

4. 系统构成(概要)

%% MCPサーバ コンポーネント図
graph TD
    VSCode[VSCode Copilot]
    Fastify[Fastify APIサーバ]
    Drive[Google Drive API]

    VSCode -->|HTTPリクエスト| Fastify
    Fastify -->|Google Drive API呼び出し| Drive
%% MCPサーバ シーケンス図
sequenceDiagram
    participant Copilot as VSCode Copilot
    participant Fastify as Fastify APIサーバ
    participant Drive as Google Drive API

    Copilot->>Fastify: ファイル一覧取得
    Fastify->>Drive: listFiles()
    Drive-->>Fastify: ファイル一覧
    Fastify-->>Copilot: ファイル一覧レスポンス

    Copilot->>Fastify: ファイル作成(name, content)
    Fastify->>Drive: createFile()
    Drive-->>Fastify: 作成ファイル情報
    Fastify-->>Copilot: 作成結果
  • Fastify API服务器封装提供Google Drive操作
  • 使用VSCode通过fetch/axios调用进行文件操作
  • 将来可与MCP服务器整合,实现与其他服务的统一管理

5. API设计与实现状况

方法 路径 功能 输入 输出 状态
GET (可译为:“获取”或“请求”) / 健康检查 - 服务器信息 ✅
GET (GET 请求) /api/files 获取文件列表 pageSize?, pageToken? 文件列表 ✅
POST (通常翻译为“帖子”或根据上下文可能翻译为“发布”、“提交”等,但在此直接保留原英文形式以符合表格或特定语境中的使用) /api/file 创建文件 name, content, mimeType?, parentId? 创建的文件信息 ✅
PUT (注:PUT是HTTP协议中的一个方法,用于向服务器发送数据,通常用于更新资源,但在此处作为独立词汇时,可直接翻译为“PUT”或根据上下文保持原样) /api/file/:id 文件更新 内容 更新文件信息 ✅
GET (中文可译为“获取”或保持为“GET”以表示HTTP方法) /api/file/:id/content 获取文件内容 - 文件内容 ✅
删除 /api/file/:id 删除文件 - 删除结果 ✅
GET /api/files/search 文件搜索 query 文件列表 📋 计划

API响应格式

interface ApiResponse<T> {
  success: boolean;
  data?: T;
  error?: string;
}

6. 开发进度与进展

阶段 内容 期限 状态
(无对应中文翻译,原表头格式保持) ------ ------ ----------
** 2 集成Google Drive API(浏览·创建·更新) 2天
** 3 从VSCode Copilot进行操作确认 1天
4 API扩展(删除·搜索·指定文件夹) 2天 📋 计划中

| 5 | 未来的MCP整合与仪表盘准备 | 待定 | 📋 计划中 |

  • ✅ 已完成功能
  • 构建TypeScript项目结构
  • Fastify API服务器框架
  • Google Drive API集成(CRUD操作全面实现)
  • 类型安全的API设计
  • 认证·设置管理系统

错误处理

7. 设置与开发步骤

# 1. 依存関係のインストール
npm install

# 2. 環境変数の設定
cp .env.example .env
# 必要に応じて .env を編集(ポート番号など)

7.1 环境搭建

  1. 7.2 Google Drive API认证设置

  2. 创建新项目

    • 启用Drive API
    • API与服务 > 库
  3. 搜索并启用Google Drive API

    • 创建服务账户
    • API和服务 > 认证信息
    • 创建认证信息 > 服务帐户
  4. 创建并下载JSON密钥

    # ダウンロードしたJSONファイルを配置
    mv ~/Downloads/service-account-xxxxx.json ./credentials/service-account.json
    

认证文件配置

# 開発モード(自動リロード)
npm run dev

# ビルド後実行
npm run build
npm start

7.3 启动开发服务器

# ヘルスチェック
curl http://localhost:3000/

# ファイル一覧取得
curl http://localhost:3000/api/files

# ファイル作成テスト
curl -X POST http://localhost:3000/api/file \
  -H "Content-Type: application/json" \
  -d '{"name": "test.txt", "content": "Hello from API!"}'

7.4 API功能验证

indie-dev-mcp/
├── src/
│   ├── index.ts          # メインサーバー
│   ├── routes/files.ts   # APIエンドポイント
│   ├── services/googleDrive.ts # Google Drive操作
│   ├── types/index.ts    # 型定義
│   └── config/index.ts   # 設定管理
├── credentials/          # 認証ファイル(gitignore)
├── dist/                # ビルド出力
├── package.json
├── tsconfig.json
└── .env.example

7.5 项目结构

  • 8. 注意事项
  • 仅限个人开发使用,访问权限仅限自己
  • 服务帐户JSON需作为机密信息进行管理