mcp-gdrive-workspace
v0.1.0
Published
MCP server for Google Drive, Sheets, Docs, Slides, and Markdown with full access control
Maintainers
Readme
mcp-gdrive-workspace
Google Drive, Sheets, Docs, Slides, Markdown の読み書きを提供する MCP (Model Context Protocol) サーバー。
Claude Code / Claude Desktop などのMCPクライアントから Google Workspace を操作できます。
特徴
- 54ツール — Drive / Sheets / Docs / Slides / Markdown の包括的な操作
- Markdownからスライド一括生成 — テーマ付きプレゼンテーションをワンコマンドで作成
- アクセス制御 — フォルダ制限、名前パターンフィルタ、読み取り専用モード
- 3つの認証方式 — OAuth 2.0 / サービスアカウント / 直接トークン
インストール
npx mcp-gdrive-workspaceグローバルインストール:
npm install -g mcp-gdrive-workspaceセットアップ
1. Google Cloud Consoleの設定
- Google Cloud Console でプロジェクトを作成
- 以下のAPIを有効化:
- Google Drive API
- Google Sheets API
- Google Docs API
- Google Slides API
- 認証情報 > OAuth 2.0 クライアントID を作成
- アプリケーションの種類: デスクトップアプリ
- クライアントID とクライアントシークレットを控える
2. MCPクライアントの設定
Claude Code
~/.claude/settings.json に追加:
{
"mcpServers": {
"gdrive": {
"command": "npx",
"args": ["mcp-gdrive-workspace"],
"env": {
"GOOGLE_CLIENT_ID": "your-client-id.apps.googleusercontent.com",
"GOOGLE_CLIENT_SECRET": "your-client-secret"
}
}
}
}Claude Desktop
claude_desktop_config.json に追加:
{
"mcpServers": {
"gdrive": {
"command": "npx",
"args": ["mcp-gdrive-workspace"],
"env": {
"GOOGLE_CLIENT_ID": "your-client-id.apps.googleusercontent.com",
"GOOGLE_CLIENT_SECRET": "your-client-secret"
}
}
}
}3. 初回認証
初回起動時にブラウザが開きGoogleの認証画面が表示されます。許可するとトークンが ~/.mcp-gdrive/credentials.json に保存され、以降は自動的にリフレッシュされます。
認証方式
3つの方式を優先順位で自動判定します。
OAuth 2.0(推奨)
個人ユーザー向け。初回のみブラウザ認証が必要。
GOOGLE_CLIENT_ID=your-client-id
GOOGLE_CLIENT_SECRET=your-client-secret
GOOGLE_REDIRECT_PORT=3000 # (任意、デフォルト: 3000)サービスアカウント
サーバー間通信向け。共有ドライブへのアクセスに最適。
GOOGLE_SERVICE_ACCOUNT_KEY=/path/to/service-account-key.json直接トークン
テスト・デバッグ用。
GOOGLE_ACCESS_TOKEN=ya29.xxxツール一覧
Google Drive (10ツール)
| ツール | 説明 |
|--------|------|
| gdrive_list_files | ファイル一覧取得 |
| gdrive_search_files | ファイル検索 |
| gdrive_read_file | ファイル読み取り |
| gdrive_create_file | ファイル作成 |
| gdrive_update_file | ファイル更新 |
| gdrive_delete_file | ファイル削除(ゴミ箱 or 完全削除) |
| gdrive_create_folder | フォルダ作成 |
| gdrive_move_file | ファイル移動 |
| gdrive_get_file_metadata | メタデータ取得 |
| gdrive_upload_image | 画像アップロード(base64/URL) |
Google Sheets (9ツール)
| ツール | 説明 |
|--------|------|
| gsheets_read | セル範囲読み取り(raw / ヘッダー付き) |
| gsheets_write | セル範囲書き込み |
| gsheets_append | 行追加 |
| gsheets_create | スプレッドシート作成 |
| gsheets_list_sheets | シート一覧 |
| gsheets_add_sheet | シート追加 |
| gsheets_delete_sheet | シート削除 |
| gsheets_clear | 範囲クリア |
| gsheets_batch_update | バッチ更新 |
Google Docs (6ツール)
| ツール | 説明 |
|--------|------|
| gdocs_read | ドキュメント読み取り(text / markdown / json) |
| gdocs_create | ドキュメント作成(Markdown入力対応) |
| gdocs_insert_text | テキスト挿入 |
| gdocs_replace_text | テキスト置換 |
| gdocs_append_text | テキスト追加 |
| gdocs_batch_update | バッチ更新 |
Google Slides (24ツール)
基本操作
| ツール | 説明 |
|--------|------|
| gslides_read | プレゼンテーション読み取り |
| gslides_create | プレゼンテーション作成 |
| gslides_add_slide | スライド追加 |
| gslides_delete_slide | スライド削除 |
| gslides_duplicate_slide | スライド複製 |
| gslides_reorder_slides | スライド並べ替え |
| gslides_batch_update | バッチ更新 |
テキスト・スタイリング
| ツール | 説明 |
|--------|------|
| gslides_create_textbox | テキストボックス作成(位置・フォント・色指定) |
| gslides_insert_text | テキスト挿入 |
| gslides_update_text_style | テキストスタイル変更(フォント・色・太字等) |
| gslides_update_paragraph_style | 段落スタイル変更(配置・行間・箇条書き) |
図形・テーブル・画像
| ツール | 説明 |
|--------|------|
| gslides_create_shape | 図形作成(矩形・円・矢印等 + スタイル) |
| gslides_update_shape_style | 図形スタイル変更 |
| gslides_create_line | 線・コネクタ作成 |
| gslides_create_table | テーブル作成(データ・ヘッダースタイル付き) |
| gslides_update_table_cell | テーブルセル編集 |
| gslides_update_table_style | テーブルスタイル変更 |
| gslides_insert_image | 画像挿入(URL) |
| gslides_insert_image_from_drive | 画像挿入(Driveファイル) |
| gslides_insert_sheets_chart | Sheetsチャート挿入 |
デザイン・高レベル
| ツール | 説明 |
|--------|------|
| gslides_set_background | 背景設定(単色 / グラデーション / 画像) |
| gslides_set_page_size | ページサイズ設定 |
| gslides_create_from_markdown | Markdownからスライド一括生成 |
| gslides_apply_theme | テーマ一括適用 |
Markdown (5ツール)
| ツール | 説明 |
|--------|------|
| gmd_read | Markdownファイル読み取り |
| gmd_write | Markdownファイル書き込み |
| gmd_create | Markdownファイル作成 |
| gmd_to_doc | Markdown → Google Docs 変換 |
| gmd_from_doc | Google Docs → Markdown 変換 |
Markdownからスライド生成
gslides_create_from_markdown を使うと、Markdownからデザイン済みのプレゼンテーションを一括生成できます。
Markdownフォーマット
# プレゼンテーションタイトル
## サブタイトル
---
# 今月の成果
- 機能Aの実装完了
- テストカバレッジ **80%** 達成
- パフォーマンス改善
> ポイント: チーム全体で品質に注力した結果
---
# データ比較
| 項目 | Q1 | Q2 | Q3 |
|------|-----|-----|-----|
| 売上 | 100 | 150 | 200 |
| 利益 | 20 | 35 | 50 |
---
# 構成図

<!-- speaker_notes: ここで質疑応答 -->プリセットテーマ
| テーマ | 説明 |
|--------|------|
| default | 白背景・シンプル |
| corporate_blue | 紺背景・ビジネス向け |
| corporate_dark | ダークグレー背景 |
| modern_gradient | グラデーション背景 |
| minimal_light | ライトグレー・余白重視 |
| bold_color | 鮮やかなアクセントカラー |
| nature_green | 緑基調 |
| warm_orange | オレンジ基調 |
カスタムテーマ
JSON文字列でカスタムテーマを指定可能:
{
"name": "my_brand",
"colors": {
"primary": "#1A73E8",
"secondary": "#EA4335",
"background": "#FFFFFF",
"surface": "#F8F9FA",
"text_primary": "#202124",
"text_secondary": "#5F6368",
"accent": "#FBBC04"
},
"fonts": {
"title": "Noto Sans JP",
"body": "Noto Sans JP",
"code": "Noto Sans Mono"
}
}アクセス制御
MCPサーバー側でGoogle Drive上のファイルへのアクセスを制限できます。
アクセスモード
| 環境変数 | モード | 許可される操作 |
|----------|--------|-------------|
| MCP_GDRIVE_ACCESS_MODE=read_only | 読み取り専用 | 一覧、検索、読み取り |
| MCP_GDRIVE_ACCESS_MODE=read_write | 読み書き(デフォルト) | 上記 + 作成、更新 |
| MCP_GDRIVE_ACCESS_MODE=full | 全操作 | 上記 + 削除、移動 |
フォルダ制限
特定のフォルダのみアクセスを許可:
{
"mcpServers": {
"gdrive": {
"command": "npx",
"args": ["mcp-gdrive-workspace"],
"env": {
"GOOGLE_CLIENT_ID": "xxx",
"GOOGLE_CLIENT_SECRET": "xxx",
"MCP_GDRIVE_ACCESS_MODE": "read_only",
"MCP_GDRIVE_ALLOWED_FOLDERS": "folder_id_1,folder_id_2"
}
}
}
}名前パターンによるブロック
機密ファイルを名前でブロック:
MCP_GDRIVE_DENIED_NAME_PATTERNS=confidential,社外秘,*.env,人事*3種類のパターンに対応:
- 部分一致:
confidential→ ファイル名に含む場合ブロック - ワイルドカード:
*.env,人事* - 正規表現:
/^\d{4}年.*給与/
設定ファイル
詳細な設定は ~/.mcp-gdrive/policy.json で管理:
{
"access_mode": "read_write",
"allowed_folders": [],
"denied_folders": ["confidential_folder_id"],
"denied_file_ids": [],
"denied_name_patterns": ["confidential", "社外秘", "*.credentials"],
"allowed_mime_types": [],
"max_file_size_mb": 10,
"enable_delete": false,
"enabled_tools": []
}環境変数一覧
| 環境変数 | 説明 | デフォルト |
|----------|------|-----------|
| MCP_GDRIVE_ACCESS_MODE | アクセスモード | read_write |
| MCP_GDRIVE_ALLOWED_FOLDERS | 許可フォルダID(カンマ区切り) | (なし) |
| MCP_GDRIVE_DENIED_FOLDERS | 禁止フォルダID(カンマ区切り) | (なし) |
| MCP_GDRIVE_DENIED_NAME_PATTERNS | 禁止名前パターン(カンマ区切り) | (なし) |
| MCP_GDRIVE_ENABLE_DELETE | 削除操作の許可 | false |
| MCP_GDRIVE_ENABLED_TOOLS | 有効ツール(カンマ区切り) | (全ツール) |
使い方の例
Claude Code での利用
> Driveのプロジェクトフォルダにあるファイル一覧を見せて
> スプレッドシート「売上管理」のA1:D10を読み取って
> 「月次報告」というGoogle Docsを作成して、今月の進捗をまとめて
> 以下の内容でプレゼンテーションを作成して(テーマ: corporate_blue)
# プロジェクト進捗報告
---
# 完了タスク
- 機能A実装
- テスト完了画像付きスライド作成フロー
- Claude Codeがチャート画像を生成
gdrive_upload_imageでDriveにアップロードgslides_insert_image_from_driveでスライドに挿入
開発
git clone https://github.com/fujiyama/mcp-gdrive-workspace.git
cd mcp-gdrive/typescript
npm install
npm run build開発モード(ファイル変更を監視):
npm run devライセンス
MIT
