Rube MCP による Google BigQuery 自動化
Rube MCP (Composio) を使用して、Metabase 統合を通じて SQL クエリの実行、データベーススキーマの探索、データセットの分析を行います。
ツールキットドキュメント: composio.dev/toolkits/googlebigquery
前提条件
- Rube MCP が接続されていること (
RUBE_SEARCH_TOOLSが利用可能) RUBE_MANAGE_CONNECTIONSを使用して、ツールキットmetabaseでアクティブな接続が確立されていること- Metabase インスタンスが BigQuery データソースに接続されていること
- 常に最初に
RUBE_SEARCH_TOOLSを呼び出して、現在のツールスキーマを取得してください
セットアップ
Rube MCP の取得: クライアント設定に MCP サーバーとして https://rube.app/mcp を追加します。API キーは不要です。エンドポイントを追加するだけで動作します。
RUBE_SEARCH_TOOLSが応答することを確認して、Rube MCP が利用可能であることを確認します- ツールキット
metabaseを指定してRUBE_MANAGE_CONNECTIONSを呼び出します - 接続が ACTIVE でない場合は、返された認証リンクに従ってセットアップを完了します
- ワークフローを実行する前に、接続ステータスが ACTIVE であることを確認します
注: BigQuery データは Metabase を介してアクセスされます。Metabase は BigQuery をデータソースとして接続するビジネスインテリジェンスツールです。以下のツールは、Metabase の API を通じてクエリを実行し、メタデータを取得します。
コアワークフロー
1. ネイティブ SQL クエリの実行
METABASE_POST_API_DATASET を type native で使用して、BigQuery データベースに対して生の SQL クエリを実行します。
ツール: METABASE_POST_API_DATASET
パラメータ:
- database (必須): Metabase データベース ID (整数)
- type (必須): SQL クエリの場合は "native"
- native (必須): "query" 文字列を含むオブジェクト
- query: 生の SQL 文字列 (例: "SELECT * FROM users LIMIT 10")
- template_tags: パラメータ化されたクエリ変数 (任意)
- constraints: { "max-results": 1000 } (任意)
2. 構造化 MBQL クエリの実行
METABASE_POST_API_DATASET を type query で使用して、組み込みの集計とフィルタリングを備えた Metabase Query Language クエリを実行します。
ツール: METABASE_POST_API_DATASET
パラメータ:
- database (必須): Metabase データベース ID
- type (必須): MBQL の場合は "query"
- query (必須): 以下の内容を含むオブジェクト:
- source-table: テーブル ID (整数)
- aggregation: 例: [["count"]] または [["sum", ["field", 5, null]]]
- breakout: グループ化フィールド
- filter: フィルター条件
- limit: 最大行数
- order-by: ソートフィールド
3. クエリメタデータの取得
METABASE_POST_API_DATASET_QUERY_METADATA を使用して、クエリ可能なデータベース、テーブル、フィールドに関するメタデータを取得します。
ツール: METABASE_POST_API_DATASET_QUERY_METADATA
パラメータ:
- database (必須): Metabase データベース ID
- type (必須): "query" または "native"
- query (必須): クエリオブジェクト (例: {"source-table": 1})
4. クエリをネイティブ SQL に変換
METABASE_POST_API_DATASET_NATIVE を使用して、MBQL クエリを対応するネイティブ SQL 表現に変換します。
ツール: METABASE_POST_API_DATASET_NATIVE
パラメータ:
- database (必須): Metabase データベース ID
- type (必須): "native"
- native (必須): "query" と任意の "template_tags" を含むオブジェクト
- parameters: クエリパラメータ値 (任意)
5. 利用可能なデータベースの一覧表示
METABASE_GET_API_DATABASE を使用して、Metabase に設定されているすべてのデータベース接続を検出します。
ツール: METABASE_GET_API_DATABASE
説明: Metabase に設定されているすべての Database インスタンスのリストを取得します。
注: RUBE_SEARCH_TOOLS を呼び出して、このツールの完全なスキーマを取得してください。
6. データベーススキーマメタデータの取得
METABASE_GET_API_DATABASE_ID_METADATA を使用して、特定のデータベースの完全なテーブルとフィールド情報を取得します。
ツール: METABASE_GET_API_DATABASE_ID_METADATA
説明: 特定のデータベースの完全なメタデータ(すべてのテーブルとフィールドを含む)を取得します。
注: RUBE_SEARCH_TOOLS を呼び出して、このツールの完全なスキーマを取得してください。
一般的なパターン
- 発見してからクエリ:
METABASE_GET_API_DATABASEを使用してデータベース ID を見つけ、次にMETABASE_GET_API_DATABASE_ID_METADATAを使用してテーブルとフィールドを探索し、最後にMETABASE_POST_API_DATASETを使用してクエリを実行します。 - SQL ファーストアプローチ:
METABASE_POST_API_DATASETをtype: "native"で使用し、標準 SQL クエリを記述して最大の柔軟性を実現します。 - パラメータ化クエリ: ネイティブクエリで
template_tagsを使用して安全にパラメータ化します(例:SELECT * FROM users WHERE id = {{user_id}})。 - スキーマ探索:
METABASE_POST_API_DATASET_QUERY_METADATAを使用して、複雑なクエリを構築する前にテーブル構造を理解します。 - パラメータ値の取得:
METABASE_POST_API_DATASET_PARAMETER_VALUESを使用して、フィルタードロップダウンの可能な値を取得します。
既知の落とし穴
databaseパラメータは Metabase 内部の 整数 ID であり、BigQuery のプロジェクト名やデータセット名ではありません。まずMETABASE_GET_API_DATABASEを使用して有効なデータベース ID を見つけてください。- MBQL クエリの
source-tableも Metabase 内部の整数であり、BigQuery のテーブル名ではありません。メタデータツールを使用してテーブル ID を特定してください。 - ネイティブ SQL クエリは BigQuery SQL 方言(標準 SQL)を使用します。構文が BigQuery 互換であることを確認してください。
- constraints の
max-resultsのデフォルト値は、返される行数を制限する場合があります。大きな結果セットの場合は明示的に設定してください。 METABASE_POST_API_DATASETからの応答には、dataの下にネストされた結果が含まれています。構造が深くネストされている可能性があるため、注意して解析してください。- MBQL の
aggregation、breakout、filter配列で使用される Metabase フィールド ID は、メタデータ応答から取得した整数でなければなりません。
クイックリファレンス
| アクション | ツール | 主なパラメータ |
|---|---|---|
| SQL クエリの実行 | METABASE_POST_API_DATASET | database, type: "native", native.query |
| MBQL クエリの実行 | METABASE_POST_API_DATASET | database, type: "query", query |
| クエリメタデータの取得 | METABASE_POST_API_DATASET_QUERY_METADATA | database, type, query |
| SQL への変換 | METABASE_POST_API_DATASET_NATIVE | database, type, native |
| パラメータ値の取得 | METABASE_POST_API_DATASET_PARAMETER_VALUES | parameter, field_ids |
| データベース一覧 | METABASE_GET_API_DATABASE | (RUBE_SEARCH_TOOLS で完全なスキーマを確認) |
| データベースメタデータの取得 | METABASE_GET_API_DATABASE_ID_METADATA | (RUBE_SEARCH_TOOLS で完全なスキーマを確認) |
Powered by Composio