Google BigQuery Automation via Rube MCP
Rube MCP(Composio)を使用して、Metabase統合を介したSQLクエリの実行、データベーススキーマの探索、データセットの分析を行います。
ツールキットドキュメント: composio.dev/toolkits/googlebigquery
前提条件
- Rube MCPが接続されていること(
RUBE_SEARCH_TOOLSが利用可能であること) - ツールキット
metabaseを使用したRUBE_MANAGE_CONNECTIONSによるアクティブな接続 - BigQueryデータソースに接続されたMetabaseインスタンス
- 常に最初に
RUBE_SEARCH_TOOLSを呼び出して、現在のツールスキーマを取得してください。
セットアップ
Rube MCPの入手: https://rube.app/mcpをクライアント設定でMCPサーバーとして追加します。APIキーは不要で、エンドポイントを追加するだけで動作します。
RUBE_SEARCH_TOOLSが応答することを確認して、Rube MCPが利用可能であることを確認します。- ツールキット
metabaseを使用してRUBE_MANAGE_CONNECTIONSを呼び出します。 - 接続がACTIVEでない場合は、返された認証リンクに従ってセットアップを完了します。
- ワークフローを実行する前に、接続ステータスがACTIVEであることを確認します。
注: BigQueryデータは、BigQueryをデータソースとして接続するビジネスインテリジェンスツールであるMetabaseを介してアクセスされます。以下のツールは、MetabaseのAPIを通じてクエリを実行し、メタデータを取得します。
コアワークフロー
1. ネイティブSQLクエリの実行
METABASE_POST_API_DATASETをtype nativeで使用して、BigQueryデータベースに対して生のSQLクエリを実行します。
Tool: METABASE_POST_API_DATASET
Parameters:
- database (required): MetabaseデータベースID(整数)
- type (required): SQLクエリの場合は "native"
- native (required): "query"文字列を含むオブジェクト
- query: 生のSQL文字列(例: "SELECT * FROM users LIMIT 10")
- template_tags: パラメータ化されたクエリ変数(省略可能)
- constraints: { "max-results": 1000 }(省略可能)
2. 構造化MBQLクエリの実行
METABASE_POST_API_DATASETをtype queryで使用して、組み込みの集計とフィルタリングを備えたMetabaseクエリ言語(MBQL)クエリを実行します。
Tool: METABASE_POST_API_DATASET
Parameters:
- database (required): MetabaseデータベースID
- type (required): MBQLの場合は "query"
- query (required): 以下のフィールドを含むオブジェクト:
- source-table: テーブルID(整数)
- aggregation: 例: [["count"]] または [["sum", ["field", 5, null]]]
- breakout: グループ化フィールド
- filter: フィルタ条件
- limit: 最大行数
- order-by: ソートフィールド
3. クエリメタデータの取得
METABASE_POST_API_DATASET_QUERY_METADATAを使用して、クエリ可能なデータベース、テーブル、フィールドに関するメタデータを取得します。
Tool: METABASE_POST_API_DATASET_QUERY_METADATA
Parameters:
- database (required): MetabaseデータベースID
- type (required): "query" または "native"
- query (required): クエリオブジェクト(例: {"source-table": 1})
4. クエリをネイティブSQLに変換
METABASE_POST_API_DATASET_NATIVEを使用して、MBQLクエリを対応するネイティブSQL表現に変換します。
Tool: METABASE_POST_API_DATASET_NATIVE
Parameters:
- database (required): MetabaseデータベースID
- type (required): "native"
- native (required): "query"とオプションの"template_tags"を含むオブジェクト
- parameters: クエリパラメータ値(省略可能)
5. 利用可能なデータベースの一覧表示
METABASE_GET_API_DATABASEを使用して、Metabaseに設定されているすべてのデータベース接続を検出します。
Tool: METABASE_GET_API_DATABASE
Description: Metabaseに設定されているすべてのデータベースインスタンスのリストを取得します。
Note: このツールの完全なスキーマを取得するには、RUBE_SEARCH_TOOLSを呼び出してください。
6. データベーススキーマメタデータの取得
METABASE_GET_API_DATABASE_ID_METADATAを使用して、特定のデータベースの完全なテーブルとフィールド情報を取得します。
Tool: METABASE_GET_API_DATABASE_ID_METADATA
Description: 特定のデータベースの完全なメタデータを取得します。これには、
すべてのテーブルとフィールドが含まれます。
Note: このツールの完全なスキーマを取得するには、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