Dataproc MCP Server について
Google Cloud Dataprocのクラスター、ジョブ、プロファイル、分析を扱うMCPサーバーです。RooやClaudeなどのMCPクライアント向けに、パラメーターのデフォルト設定、セマンティック検索、複数の認証方式を備えています。
主な機能
- 01Dataproc管理ツール22種類
- 02クラスターのプロファイルとデフォルト値
- 03ジョブの送信と状態監視
- 04Qdrant対応のセマンティック検索
- 05複数の認証方式
- 06HTTP、OAuth、WebSocket対応
活用シーン
- 01プロファイルやYAMLからクラスターを作成
- 02SparkまたはHiveジョブを送信・監視
- 03保存済みのクラスターやジョブ情報を検索
- 04HTTPSトンネル経由でClaude.aiに接続
MCP 対応
クラスター、ジョブ、プロファイル、クエリ操作など、Dataproc管理・分析ツールをMCPクライアントに提供します。クライアント設定による起動に加え、Claude.ai向けのHTTP/OAuth構成にも対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Dataproc MCP サーバー
Google Cloud Dataproc の操作に対応した、本番環境対応の Model Context Protocol(MCP)サーバーです。インテリジェントなパラメーター注入、エンタープライズグレードのセキュリティ、包括的なツールを備えています。**Roo(VS Code)**とのシームレスな統合を想定して設計されています。
🚀 クイックスタート
推奨:Roo(VS Code)との統合
以下を Roo の MCP 設定に追加します。
{
"mcpServers": {
"dataproc": {
"command": "npx",
"args": ["@dipseth/dataproc-mcp-server@latest"],
"env": {
"LOG_LEVEL": "info"
}
}
}
}
カスタム設定ファイルを使用する場合
{
"mcpServers": {
"dataproc": {
"command": "npx",
"args": ["@dipseth/dataproc-mcp-server@latest"],
"env": {
"LOG_LEVEL": "info",
"DATAPROC_CONFIG_PATH": "/path/to/your/config.json"
}
}
}
}
別の方法:グローバルインストール
# Install globally
npm install -g @dipseth/dataproc-mcp-server
# Start the server
dataproc-mcp-server
# Or run directly
npx @dipseth/dataproc-mcp-server@latest
5 分でセットアップ
-
パッケージをインストールします:
npm install -g @dipseth/dataproc-mcp-server@latest -
セットアップを実行します:
dataproc-mcp --setup -
認証を設定します:
# Edit the generated config file nano config/server.json -
サーバーを起動します:
dataproc-mcp
🌐 Claude.ai ウェブアプリとの互換性
✅ 本番環境対応:HTTPS トンネリングと OAuth による完全な Claude.ai 統合
Dataproc MCP サーバーは、22 個すべての MCP ツールを利用できる、動作確認済みのソリューションにより、Claude.ai ウェブアプリとの完全な互換性を提供するようになりました。
動作するソリューション(テスト・検証済み)
ターミナル 1 — MCP サーバーを起動:
DATAPROC_CONFIG_PATH=config/github-oauth-server.json npm start -- --http --oauth --port 8080
ターミナル 2 — Cloudflare トンネルを起動:
cloudflared tunnel --url https://localhost:8443 --origin-server-name localhost --no-tls-verify
結果:Claude.ai ですべてのツールを問題なく表示し、使用できます!🎉
主な機能:
- ✅ すべてのツールにアクセス — Claude.ai で 22 個すべての MCP ツールを利用可能
- ✅ HTTPS トンネリング — 安全な外部アクセスを実現する Cloudflare トンネル
- ✅ OAuth 認証 — 安全な認証のための GitHub OAuth
- ✅ 信頼された証明書 — ブラウザーの警告や接続の問題がありません
- ✅ WebSocket サポート — Claude.ai との完全な WebSocket 互換性
- ✅ 本番環境対応 — 動作確認済みのソリューション
クイックセットアップ:
- GitHub OAuth を設定(5 分)
- SSL 証明書を生成:
npm run ssl:generate - サービスを起動(上記のとおり 2 つのターミナルを使用)
- Claude.ai をトンネル URL に接続
📖 完全ガイド: 詳細なセットアップ手順、トラブルシューティング、高度な機能については、
docs/claude-ai-integration.mdを参照してください。
📖 証明書のセットアップ: SSL 証明書の設定については、
docs/trusted-certificates.mdを参照してください。
✨ 機能
🎯 主な機能
- 本番環境対応の MCP ツール 22 種 - Dataproc 管理の包括的なツールセット
- 🧠 ナレッジベースのセマンティック検索 - Qdrant との連携をオプションで利用できる自然言語クエリ
- 🚀 レスポンスの最適化 - Qdrant ストレージを使用してトークンを 60~96%削減
- 🔄 汎用型変換システム - 自動で型安全なデータ変換
- パラメーターを 60~80%削減 - インテリジェントなデフォルト値の注入
- 複数環境のサポート - 開発/ステージング/本番環境の構成
- サービスアカウントの偽装 - エンタープライズ認証
- リアルタイムのジョブ監視 - 包括的なステータス追跡
🚀 レスポンスの最適化
- トークンを 96.2%削減 -
list_clusters:7,651 → 292 トークン - Qdrant への自動保存 - すべてのデータを保持し、検索可能
- リソース URI へのアクセス -
dataproc://responses/clusters/list/abc123 - フォールバック処理 - Qdrant がなくても動作し、完全なレスポンスにフォールバック
- 処理時間 9.95ms - 1MB 未満のメモリ使用量で超高速に最適化
🔄 汎用型変換システム
- コードを 75%削減 - サービス全体の手動変換ロジックを排除
- 型安全な変換 - フィールドの検出とマッピングを自動化
- インテリジェントな圧縮 - 設定可能なしきい値によるフィールド単位の圧縮
- 変換時間 0.50ms - 圧縮率 100%で超高速に処理
- 設定不要 - 既存の TypeScript 型で自動的に動作
- 後方互換性 - 既存機能にシームレスに統合
� エンタープライズセキュリティ
- 入力検証 - 16 個すべてのツールに Zod スキーマを使用
- レート制限 - 設定可能な不正利用防止機能
- 認証情報の管理 - 安全な取り扱いとローテーション
- 監査ログ - セキュリティイベントを包括的に追跡
- 脅威の検出 - インジェクション攻撃を防止
📊 品質保証
- テストカバレッジ 90%以上 - 包括的なテストスイート
- パフォーマンス監視 - しきい値を設定可能
- 複数環境でのテスト - クロスプラットフォーム検証
- 品質ゲートの自動化 - CI/CD との統合
- セキュリティスキャン - 脆弱性管理
🚀 開発者エクスペリエンス
- 5 分でセットアップ - クイックスタートガイド
- インタラクティブなドキュメント - サンプル付き HTML ドキュメント
- 充実したサンプル - 複数環境の構成
- トラブルシューティングガイド - よくある問題と解決策
- IDE との統合 - TypeScript のサポート
🛠️ MCP ツールの完全なセット(22 種)
🔄 汎用型変換で強化:すべてのツールで、インテリジェントな圧縮とフィールドマッピングを備えた、自動かつ型安全なデータ変換を利用できます。
🚀 クラスター管理(8 種)
| ツール | 説明 | スマートデフォルト | 主な機能 |
|---|---|---|---|
start_dataproc_cluster | 新しいクラスターを作成して起動 | ✅ パラメーターを 80%削減 | プロファイルベース、自動構成 |
create_cluster_from_yaml | YAML 構成から作成 | ✅ プロジェクト/リージョンを注入 | テンプレート駆動のセットアップ |
create_cluster_from_profile | 定義済みプロファイルを使用して作成 | ✅ パラメーターを 85%削減 | 組み込みプロファイル 8 種 |
list_clusters | フィルタリングしてすべてのクラスターを一覧表示 | ✅ パラメーター不要 | セマンティッククエリ、ページネーション |
list_tracked_clusters | MCP が作成したクラスターを一覧表示 | ✅ プロファイルでフィルタリング | 作成状況を追跡 |
get_cluster | クラスターの詳細情報を取得 | ✅ パラメーターを 75%削減 | セマンティックなデータ抽出 |
delete_cluster | 既存のクラスターを削除 | ✅ プロジェクト/リージョンのデフォルト値 | 安全な削除 |
get_zeppelin_url | Zeppelin ノートブックの URL を取得 | ✅ 自動検出 | ウェブインターフェースへのアクセス |
💼 ジョブ管理(7 ツール)
| ツール | 説明 | スマートデフォルト | 主な機能 |
|---|---|---|---|
submit_hive_query | クラスターに Hive クエリを送信します | ✅ パラメーターを70%削減 | 非同期処理のサポート、タイムアウト |
submit_dataproc_job | Spark/PySpark/Presto ジョブを送信します | ✅ パラメーターを75%削減 | 複数エンジンのサポート、ローカルファイルのステージング |
cancel_dataproc_job | 実行中または保留中のジョブをキャンセルします | ✅ JobID のみが必要 | 緊急キャンセル、コスト管理 |
get_job_status | ジョブの実行ステータスを取得します | ✅ JobID のみが必要 | リアルタイム監視 |
get_job_results | ジョブの出力と結果を取得します | ✅ ページネーションを自動実行 | 結果のフォーマット |
get_query_status | Hive クエリのステータスを取得します | ✅ 最小限のパラメーター | クエリの追跡 |
get_query_results | Hive クエリの結果を取得します | ✅ スマートページネーション | 非同期処理の強化 |
📋 設定とプロファイル(3 ツール)
| ツール | 説明 | スマートデフォルト | 主な機能 |
|---|---|---|---|
list_profiles | 利用可能なクラスターのプロファイルを一覧表示します | ✅ カテゴリーによるフィルタリング | 8つの本番環境向けプロファイル |
get_profile | プロファイル設定の詳細を取得します | ✅ プロファイル ID のみ | テンプレートへのアクセス |
query_cluster_data | 保存されたクラスターのデータを検索します | ✅ 自然言語 | セマンティック検索 |
📊 分析とインサイト(4 ツール)
| ツール | 説明 | スマートデフォルト | 主な機能 |
|---|---|---|---|
check_active_jobs | すべてのアクティブなジョブのステータスをすばやく確認します | ✅ パラメーター不要 | 複数プロジェクトの表示 |
get_cluster_insights | クラスターの包括的な分析情報を取得します | ✅ 自動検出 | マシンタイプ、コンポーネント |
get_job_analytics | ジョブのパフォーマンスを分析します | ✅ 成功率 | エラーパターン、メトリクス |
query_knowledge | 包括的なナレッジベースを検索します | ✅ 自然言語 | クラスター、ジョブ、エラー |
🎯 主な機能
- 🧠 セマンティック検索:Qdrant との統合による自然言語クエリ
- ⚡ スマートデフォルト:インテリジェントな値の自動設定により、パラメーターを60~80%削減
- 📊 レスポンスの最適化:データを完全に保持しながら、トークン数を96%削減
- 🔄 非同期処理のサポート:ブロッキングなしのジョブ送信と監視
- 🏷️ プロファイルシステム:本番環境ですぐに使える8つのクラスター用テンプレート
- 📈 分析:包括的なインサイトとパフォーマンスの追跡
📋 設定
プロジェクトベースの設定
このサーバーは、プロジェクトベースの設定形式に対応しています。
# profiles/@analytics-workloads.yaml
my-company-analytics-prod-1234:
region: us-central1
tags:
- DataProc
- analytics
- production
labels:
service: analytics-service
owner: data-team
environment: production
cluster_config:
# ... cluster configuration
認証方法
- サービスアカウントの偽装(推奨)
- サービスアカウントキーの直接指定
- アプリケーションのデフォルト認証情報
- フォールバック付きハイブリッド認証
📚 ドキュメント
- クイックスタートガイド - 5分で使い始める
- ナレッジベースのセマンティック検索 - 自然言語クエリとセットアップ
- 汎用型変換システム - アーキテクチャ設計と実装
- 汎用型変換ツールの移行ガイド - 手動変換からの移行
- API リファレンス - ツールの完全なドキュメント
- 設定例 - 実際の設定例
- セキュリティガイド - ベストプラクティスとコンプライアンス
- インストールガイド - 詳細なセットアップ手順
🔧 MCP クライアントとの連携
Claude Desktop
{
"mcpServers": {
"dataproc": {
"command": "npx",
"args": ["@dataproc/mcp-server"],
"env": {
"LOG_LEVEL": "info"
}
}
}
}
Roo(VS Code)
{
"mcpServers": {
"dataproc-server": {
"command": "npx",
"args": ["@dataproc/mcp-server"],
"disabled": false,
"alwaysAllow": [
"list_clusters",
"get_cluster",
"list_profiles"
]
}
}
}
🏗️ アーキテクチャ
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ MCP Client │────│ Dataproc MCP │────│ Google Cloud │
│ (Claude/Roo) │ │ Server │ │ Dataproc │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
┌──────┴──────┐
│ Features │
├─────────────┤
│ • Security │
│ • Profiles │
│ • Validation│
│ • Monitoring│
│ • Generic │
│ Converter │
└─────────────┘
🔄 汎用型変換システムのアーキテクチャ
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Source Types │────│ Generic Converter │────│ Qdrant Payloads │
│ • ClusterData │ │ System │ │ • Compressed │
│ • QueryResults │ │ │ │ • Type-Safe │
│ • JobData │ │ ┌──────────────┐ │ │ • Optimized │
└─────────────────┘ │ │Field Analyzer│ │ └─────────────────┘
│ │Transformation│ │
│ │Engine │ │
│ │Compression │ │
│ │Service │ │
│ └──────────────┘ │
└──────────────────┘
🚦 パフォーマンス
応答時間の達成状況
- スキーマ検証:約2ms(目標:<5ms)✅
- パラメーターの注入:約1ms(目標:<2ms)✅
- 汎用型の変換:約0.50ms(目標:<2ms)✅
- 認証情報の検証:約25ms(目標:<50ms)✅
- MCP ツール呼び出し:約50ms(目標:<100ms)✅
スループットの達成状況
- スキーマ検証:約2000 ops/sec ✅
- パラメーターの注入:約5000 ops/sec ✅
- 汎用型の変換:約2000 ops/sec ✅
- 認証情報の検証:約200 ops/sec ✅
- MCP ツール呼び出し:約100 ops/sec ✅
圧縮の達成状況
- フィールドレベルの圧縮:圧縮率最大100% ✅
- メモリの最適化:メモリ使用量を30~60%削減 ✅
- 型安全性:自動検証により実行時の型エラーはゼロ ✅
🧪 テスト
# Run all tests
npm test
# Run specific test suites
npm run test:unit
npm run test:integration
npm run test:performance
# Run with coverage
npm run test:coverage
🤝 コントリビューション
皆さまからのコントリビューションを歓迎します!詳細はコントリビューションガイドをご覧ください。
開発環境のセットアップ
# Clone the repository
git clone https://github.com/dipseth/dataproc-mcp.git
cd dataproc-mcp
# Install dependencies
npm install
# Build the project
npm run build
# Run tests
npm test
# Start development server
npm run dev
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細はLICENSEファイルをご覧ください。
🆘 サポート
- GitHub Issues:バグの報告や機能のリクエスト
- ドキュメント:ドキュメント一式
- NPM パッケージ:パッケージ情報
🏆 謝辞
- Model Context Protocol - これを可能にするプロトコル
- Google Cloud Dataproc - 統合対象のサービス
- Qdrant - セマンティック検索とナレッジのインデックス作成を支える、高性能なベクトルデータベース
- TypeScript - 型安全性と開発者体験を実現する言語
MCP と Google Cloud のコミュニティに ❤️ を込めて
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。