mcpField
M
Mcp Gdrive Cloudflare

Mcp Gdrive Cloudflare

リモート
github.com/brianmoneyクラウド・インフラ455 週間前に更新
リポジトリ

Mcp Gdrive Cloudflare について

Cloudflare Workers にデプロイする、Google Drive と Sheets 向けのリモート MCP サーバーです。OAuth 2.0 と PKCE に対応し、SSE 経由で MCP クライアントにファイルや表計算の操作を提供します。

主な機能

  1. 01Drive ファイルの検索と読み取り
  2. 02フォルダー作成、アップロード、移動
  3. 03ファイル共有権限の管理
  4. 04Sheets セルの読み取りと更新
  5. 05OAuth 2.0 と PKCE に対応
  6. 06SSE によるリモート接続

活用シーン

  1. 01Drive ファイルの検索とエクスポート
  2. 02フォルダーの整理とファイル移動
  3. 03ファイルの共有やアップロード
  4. 04スプレッドシート範囲の読み取りと行の追加

MCP 対応

SSE 経由で Google Drive と Sheets のツールを MCP クライアントに公開し、OAuth 2.0 認可サーバーと動的クライアント登録を備えています。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp-gdrive-cf.CFDOMAIN.workers.dev/sse
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

mcp-gdrive-cf

Cloudflare Workers 上で動作する、Google Drive と Sheets 向けのリモート MCP サーバー。OAuth 2.0 を完全にサポートします。

本番環境対応 ✅ | 11 個のツール | OAuth 2.0 | PKCE | グローバルエッジネットワーク

isaacphi/mcp-gdrive をベースに、完全な OAuth 2.0 認可サーバー機能を備えたリモート HTTP/SSE MCP サーバーとして、Cloudflare のエッジネットワーク上で動作するように変更されています。


🚀 クイックスタート

```bash

1. クローンしてインストール

git clone https://github.com/brianmoney/mcp-gdrive-cf.git cd mcp-gdrive-cf npm install

2. KV 名前空間を作成

wrangler kv:namespace create KV_TOKENS wrangler kv:namespace create KV_CLIENTS

3. 名前空間 ID を wrangler.toml に設定

4. Google OAuth 認証情報を設定

wrangler secret put GOOGLE_CLIENT_SECRET

5. デプロイ

wrangler deploy

6. MCP Inspector でテスト

npx @modelcontextprotocol/inspector https://your-worker.workers.dev/sse ```


✨ 機能

Drive の操作
  • 🔍 検索 - フィルター(MIME タイプ、オーナー、日付、共有ドライブ)を使った基本検索と詳細検索
  • 📄 読み取り - 22 種類以上のエクスポート形式(PDF、DOCX、XLSX、Markdown など)であらゆるファイルを読み取り
  • 📁 フォルダーの作成 - 入れ子になったフォルダー構造でファイルを整理
  • ⬆️ アップロード - 最大 5 MB のファイルをアップロード
  • 🗑️ 削除 - ファイルをゴミ箱に移動
  • 📦 移動 - フォルダー間でファイルを再整理
  • 🔐 共有 - 権限(閲覧者、編集者、コメント可、オーナー)を追加
Sheets の操作
  • 📊 読み取り - 複数の範囲を一括で読み取り
  • ✏️ 更新 - 個々のセルを更新
  • ➕ 追加 - スプレッドシートに行を追加
インフラストラクチャ
  • ☁️ グローバルエッジネットワーク - Cloudflare Workers 上で世界中から実行
  • 🔐 OAuth 2.0 サーバー - PKCE をサポートする完全な認可サーバー
  • 🔑 動的クライアント登録 - クライアントを自動でオンボーディング
  • 🔄 トークンの自動更新 - Google トークンをシームレスに更新
  • 📡 SSE トランスポート - リアルタイムの Server-Sent Events
  • 🛡️ セキュア - HTTPS のみを使用し、トークンを暗号化して保存

🎯 この実装の特徴

STDIO ベースの元の `mcp-gdrive` と異なり、この実装は次の特徴を備えています。

  1. Cloudflare Workers 上でリモート実行(ローカルプロセス不要)
  2. 完全な OAuth 2.0 認可サーバー(OAuth クライアントにとどまりません)
  3. 動的クライアント登録による複数クライアントのサポート
  4. パブリッククライアント向けのPKCE セキュリティ
  5. Drive ファイル向けの22 種類以上のエクスポート形式
  6. 書き込み操作(作成、削除、移動、共有、アップロード)
  7. 実際のワークロードで本番環境のテスト済み

📋 前提条件

必須
  • Workers が有効な Cloudflare アカウント(無料プランでも利用可能)
  • Drive API と Sheets API が有効な Google Cloud プロジェクト
  • Node.js LTS(v18 以降)
  • Wrangler CLI(`npm install -g wrangler`)
Google Cloud のセットアップ
  1. Google Cloud Console でプロジェクトを作成
  2. API を有効化:
    • Google Drive API
    • Google Sheets API
  3. OAuth 2.0 認証情報を作成:
  4. 必要な OAuth スコープ:

🔧 インストールとデプロイ

1. 依存関係をインストール

```bash npm install ```

2. KV 名前空間を作成

```bash

ユーザーセッショントークン用

wrangler kv:namespace create KV_TOKENS

OAuth クライアント登録用

wrangler kv:namespace create KV_CLIENTS ```

名前空間 ID を `wrangler.toml` にコピーします。

```toml [[kv_namespaces]] binding = "KV_TOKENS" id = "your-tokens-namespace-id"

[[kv_namespaces]] binding = "KV_CLIENTS" id = "your-clients-namespace-id" ```

3. 環境変数を設定

`wrangler.toml` に追加します。

```toml [vars] GOOGLE_CLIENT_ID = "your-client-id.apps.googleusercontent.com" ```

シークレットを設定します。

```bash

Google OAuth クライアントシークレット

wrangler secret put GOOGLE_CLIENT_SECRET ```

4. デプロイ
wrangler deploy

ワーカーは次の場所で利用できます:https://your-worker-name.your-account.workers.dev


🔐 OAuth 2.0 フロー

このサーバーは、MCP 仕様に準拠した完全な OAuth 2.0 認可サーバーを実装しています。

MCP Inspector の使用

OAuth フローをテストする最も簡単な方法です:

npx @modelcontextprotocol/inspector https://your-worker.workers.dev/sse
  1. 検出 - Inspector が OAuth エンドポイントを自動検出します
  2. 登録 - 「Guided Setup」をクリックすると、クライアントが自動的に登録されます
  3. 認可 - Google にリダイレクトされ、認証後に戻ります
  4. トークン交換 - 認可コードをアクセストークンに自動的に交換します
  5. ツールの使用 - 11 個すべてのツールが利用可能になります!
セキュリティ機能
  • ✅ PKCE(RFC 7636) - Proof Key for Code Exchange
  • ✅ State パラメーター - CSRF 保護
  • ✅ HTTPS のみ - Cloudflare Workers により強制
  • ✅ 安全なトークン保存 - Workers KV で暗号化
  • ✅ トークンの有効期限 - アクセストークンは 1 時間で期限切れになります
  • ✅ クライアントシークレットのハッシュ化 - SHA-256 でハッシュ化して保存
  • ✅ 認可コードの使い捨て - 交換後にコードを削除

🛠️ 利用可能なツール

Drive ツール
  • gdrive_search - すべてのファイルを対象とした基本検索
  • gdrive_search_advanced - フィルターを使用した高度な検索
  • gdrive_read_file - 22 種類以上のエクスポート形式でファイルを読み取る
  • gdrive_create_folder - フォルダーを作成
  • gdrive_upload_file - ファイルをアップロード(最大 5MB)
  • gdrive_delete_file - ファイルをゴミ箱に移動
  • gdrive_move_file - フォルダー間でファイルを移動
  • gdrive_add_permission - ファイルやフォルダーを共有
Sheets ツール
  • gsheets_read - 複数の範囲を読み取る
  • gsheets_update_cell - 単一セルを更新
  • gsheets_append_row - 行を追加

🔌 クライアントの設定

MCP Extension を使用する VS Code

.vscode/settings.json を作成します:

{
  "mcp.servers": {
    "gdrive": {
      "url": "https://your-worker.workers.dev/sse",
      "authorization": {
        "type": "oauth2"
      }
    }
  }
}
Claude Desktop / Cline

macOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\\Claude\\claude_desktop_config.json

{
  "mcpServers": {
    "gdrive": {
      "url": "https://your-worker.workers.dev/sse"
    }
  }
}

🧪 テスト

ローカル開発
npm start
# サーバーは http://localhost:8788 で利用できます
MCP Inspector でテスト
npx @modelcontextprotocol/inspector http://localhost:8788/sse
CloudFlare のログを確認
wrangler tail --format pretty

🐛 トラブルシューティング

「OAuth メタデータの検出に失敗しました」

解決方法:

  • /.well-known/oauth-authorization-server が有効な JSON を返すことを確認します
  • CORS ヘッダーが設定されていることを確認します
  • 最新バージョンがデプロイされていることを確認します:wrangler deploy
「トークン交換に失敗しました:HTTP 400」

解決方法:

  • code_verifier が元の code_challenge と一致することを確認します
  • redirect_uri が登録時の値と完全に一致することを確認します
  • クライアントの認証情報が正しいことを確認します
  • CloudFlare のログを確認します:wrangler tail
ツールが動作しない

解決方法:

  • Google OAuth のスコープに drive と spreadsheets が含まれていることを確認します
  • スコープを変更した場合は、/google/authorize にアクセスして再認証します
  • Worker に有効な Google アクセストークンがあることを確認します
  • wrangler.toml の KV 名前空間バインディングを確認します

📊 パフォーマンスと制限

リソース制限備考
リクエストのタイムアウト30 秒CloudFlare Workers の制限
ファイルのアップロード5 MBSimple upload API の制限
ファイルのエクスポート10 MBGoogle Drive のエクスポート制限
トークンの保存期間30 日自動クリーンアップ
認可コード10 分使い捨て
アクセストークン1 時間自動更新

🔒 セキュリティのベストプラクティス

  1. シークレットを絶対にコミットしない - `wrangler secret put` を使用します
  2. クライアントシークレットをローテーションする - OAuth 認証情報を定期的に再生成します
  3. アクセスを監視する - CloudFlare Analytics を使用して利用状況を追跡します
  4. OAuth スコープを制限する - 必要な Google の権限のみをリクエストします
  5. PKCE を使用する - パブリッククライアントでは常に PKCE を使用します
  6. リダイレクト URI を検証する - Google Console で正確な URI を許可リストに登録します
  7. 2FA を有効にする - CloudFlare と Google のアカウントを保護します

📄 ライセンス

MIT ライセンス


🙏 謝辞


☁️ を添えて Brian Money が作成

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。