Google Drive MCP Server について
Google Drive MCP Server は、Google Drive のファイル管理、内容分析、整理状況の分析機能を MCP クライアントに提供します。AI ワークフローで Drive のファイルを扱うチーム向けで、OAuth 2.0 による接続に加え、検索、要約、分類、重複検出を行えます。
主な機能
- 01フィルターとページネーション付きのファイル一覧
- 02関連度スコア付き全文検索
- 03ファイル内容とメタデータの取得
- 04要約、分類、キーワード抽出
- 05重複検出とフォルダー構成の分析
- 06OAuth 2.0 認証
活用シーン
- 01種類やフォルダーで Drive ファイルを検索
- 02文書の内容を取得して要約
- 03重複ファイルを確認しフォルダー構成を整理
MCP 対応
ファイル一覧、内容取得、検索、内容分析、整理状況の分析ツールを MCP クライアントに公開します。Google Drive へのアクセスには Google OAuth 2.0 を使用します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Google Drive MCP サーバー
Model Context Protocol(MCP)を介した AI を活用した Google Drive 連携により、インテリジェントなファイル管理、コンテンツ分析、整理に関するインサイトを提供します。
🚀 特長
MCP の主要なツール
list_files- 高度なフィルタリングとページネーションを使用して、ファイルとフォルダーを一覧表示しますget_file_content- メタデータとともにファイルの内容を抽出・取得しますsearch_files- 関連度スコアリングとフィルタリングに対応した全文検索を行いますanalyze_content- 要約と分類を行う、AI を活用したコンテンツ分析を提供しますget_organization_insights- 実行可能な推奨事項を提示し、Drive の整理状況を分析します
主な機能
- 🔐 Google Drive API を使用した安全な OAuth2 認証
- 📊 コンテンツ分析 - AI を活用した要約、分類、キーワード抽出
- 🔍 高度な検索 - 関連度スコアリングとフィルタリングに対応した全文検索
- 📁 整理に関するインサイト - 重複の検出と構成の最適化
- ⚡ パフォーマンスの最適化 - インテリジェントなキャッシュとレート制限
- 🛡️ 本番環境対応 - 包括的なエラー処理とロギング
📋 前提条件
- Node.js 18.0.0 以降
- Drive API を有効にした Google Cloud プロジェクト
- Google Cloud Console から取得した OAuth2 認証情報
🛠️ インストール
1. クローンと依存関係のインストール
git clone <repository-url>
cd gdrive-sparc-mcp
npm install
2. Google Cloud の設定
-
Google Cloud プロジェクトを作成
- Google Cloud Console にアクセスします
- 新しいプロジェクトを作成するか、既存のプロジェクトを選択します
-
Google Drive API を有効化
# Using gcloud CLI gcloud services enable drive.googleapis.com -
OAuth2 認証情報を作成
- APIs & Services > Credentials に移動します
- 「Create Credentials」>「OAuth 2.0 Client IDs」をクリックします
- アプリケーションの種類:「Web application」
- 承認済みのリダイレクト URI を追加します:
http://localhost:3000/auth/callback - 認証情報の JSON をダウンロードします
3. 環境設定
テンプレートから .env ファイルを作成します:
cp .env.example .env
必要な環境変数を設定します:
# Google OAuth Configuration (Required)
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
GOOGLE_REDIRECT_URI=http://localhost:3000/auth/callback
# Session Configuration (Required)
SESSION_SECRET=your-secure-session-secret-at-least-32-characters
# Optional Configuration
NODE_ENV=production
LOG_LEVEL=info
CACHE_TTL=300
CACHE_MAX_SIZE=1000
RATE_LIMIT_WINDOW=60000
RATE_LIMIT_MAX_REQUESTS=100
4. ビルドと起動
# Build TypeScript
npm run build
# Start server
npm start
# Or for development
npm run dev
🔧 設定
環境変数
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
GOOGLE_CLIENT_ID | ✅ | - | Google OAuth2 クライアント ID |
GOOGLE_CLIENT_SECRET | ✅ | - | Google OAuth2 クライアントシークレット |
GOOGLE_REDIRECT_URI | ✅ | - | OAuth2 リダイレクト URI |
SESSION_SECRET | ✅ | - | セッション暗号化シークレット(32 文字以上) |
NODE_ENV | ❌ | development | 環境モード |
LOG_LEVEL | ❌ | info | ログレベル(error、warn、info、debug) |
CACHE_TTL | ❌ | 300 | キャッシュの TTL(秒) |
CACHE_MAX_SIZE | ❌ | 1000 | キャッシュエントリの最大数 |
RATE_LIMIT_WINDOW | ❌ | 60000 | レート制限の期間(ミリ秒) |
RATE_LIMIT_MAX_REQUESTS | ❌ | 100 | 期間あたりの最大リクエスト数 |
Google Drive API のスコープ
サーバーは次の OAuth2 スコープを要求します:
https://www.googleapis.com/auth/drive.readonly- Google Drive ファイルへの読み取りアクセスhttps://www.googleapis.com/auth/userinfo.profile- 基本的なプロフィール情報
📖 使用方法
MCP クライアントとの連携
MCP クライアントの設定に追加します:
{
"mcpServers": {
"gdrive-sparc-mcp": {
"command": "node",
"args": ["path/to/gdrive-sparc-mcp/dist/server.js"]
}
}
}
ツールの使用例
ファイルの一覧表示
{
"name": "list_files",
"arguments": {
"folderId": "optional-folder-id",
"recursive": true,
"maxResults": 50,
"orderBy": "modifiedTime"
}
}
ファイルの検索
{
"name": "search_files",
"arguments": {
"query": "project proposal",
"filters": {
"mimeTypes": ["application/pdf", "application/vnd.google-apps.document"]
},
"options": {
"maxResults": 20,
"includeSnippets": true
}
}
}
コンテンツの分析
{
"name": "analyze_content",
"arguments": {
"fileIds": ["file-id-1", "file-id-2"],
"analysisOptions": {
"enableSummarization": true,
"enableCategorization": true,
"enableKeywordExtraction": true
}
}
}
整理に関するインサイトの取得
{
"name": "get_organization_insights",
"arguments": {
"scope": {
"folderId": "optional-folder-id",
"includeSubfolders": true,
"fileLimit": 1000
},
"analysisOptions": {
"enableDuplicateDetection": true,
"enableStructureAnalysis": true
}
}
}
🧪 テスト
テストの実行
# Run all tests
npm test
# Run with coverage
npm run test:coverage
# Run specific test suite
npm test -- tests/auth/auth-service.test.ts
# Run integration tests
npm test -- tests/integration/
サーバーのテスト
MCP サーバーの機能をテストします:
# Test server startup and tool listing
node test-server.js
🚀 デプロイ
Docker によるデプロイ
-
Docker イメージをビルド
docker build -t gdrive-sparc-mcp . -
コンテナを実行
docker run -d \ --name gdrive-mcp \ -p 3000:3000 \ --env-file .env \ gdrive-sparc-mcp
本番環境へのデプロイ
-
環境設定
# Set production environment export NODE_ENV=production export LOG_LEVEL=warn # Configure production secrets export SESSION_SECRET="your-production-session-secret" export GOOGLE_CLIENT_ID="your-production-client-id" export GOOGLE_CLIENT_SECRET="your-production-client-secret" -
プロセス管理
# Using PM2 npm install -g pm2 pm2 start dist/server.js --name gdrive-mcp pm2 save pm2 startup -
ヘルスモニタリング
# Check server health curl -X POST http://localhost:3000 \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
🔍 モニタリングとロギング
ログレベル
- error - エラー状態のみ
- warn - 警告とエラーの状態
- info - 情報、警告、エラーのメッセージ(デフォルト)
- debug - デバッグ情報を含むすべてのメッセージ
パフォーマンス指標
- リクエスト/レスポンス時間
- キャッシュのヒット率/ミス率
- レート制限の統計
- 認証の成功率/失敗率
ヘルスチェック
- 設定の検証
- Google API への接続性
- キャッシュシステムの状態
- メモリおよびパフォーマンスの指標
🛡️ セキュリティ
認証
- Google との安全な OAuth2 フロー
- セッションベースの認証
- トークンの自動更新
- 認証情報の安全な保存
データ保護
- ユーザーデータを永続的に保存しません
- 暗号化されたセッション管理
- レート制限と不正利用の防止
- 入力の検証とサニタイズ
ベストプラクティス
- 定期的なセキュリティ更新
- 環境変数の保護
- 安全な通信(本番環境では HTTPS)
- セキュリティイベントの監査ログ記録
🐛 トラブルシューティング
よくある問題
設定エラー
# Check configuration validation
npm run build && node dist/server.js
認証の問題
- Google Cloud の認証情報を確認してください
- OAuth2 リダイレクト URI の設定を確認してください
- Drive API が有効になっていることを確認してください
パフォーマンスの問題
- キャッシュヒット率を監視してください
- レート制限の設定を確認してください
- ログレベルと出力を確認してください
接続の問題
- ネットワーク接続を確認してください
- ファイアウォールの設定を確認してください
- 環境変数を検証してください
デバッグモード
# Enable debug logging
export LOG_LEVEL=debug
npm start
サポート
- ドキュメントを確認してください
- トラブルシューティングガイドを確認してください
- GitHub で課題を報告してください
📚 ドキュメント
🤝 コントリビューション
- リポジトリをフォークします
- フィーチャーブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
📄 ライセンス
このプロジェクトは MIT ライセンスのもとでライセンスされています。詳細はLICENSEファイルを参照してください。
🙏 謝辞
- MCP 仕様についてはModel Context Protocolに感謝します
- ファイルアクセス機能についてはGoogle Drive APIに感謝します
- 開発手法についてはSPARC Development Teamに感謝します
バージョン: 1.0.0
最終更新日: 2025-01-30
メンテナー: SPARC Development Team
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。