googlebigquery-automation
npx skills add https://github.com/composiohq/awesome-claude-skills --skill googlebigquery-automation
Agent 安装分布
Skill 文档
Google BigQuery Automation via Rube MCP
Run SQL queries, explore database schemas, and analyze datasets through the Metabase integration using Rube MCP (Composio).
Toolkit docs: composio.dev/toolkits/googlebigquery
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active connection via
RUBE_MANAGE_CONNECTIONSwith toolkitmetabase - A Metabase instance connected to your BigQuery data source
- Always call
RUBE_SEARCH_TOOLSfirst to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed â just add the endpoint and it works.
- Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLSresponds - Call
RUBE_MANAGE_CONNECTIONSwith toolkitmetabase - If connection is not ACTIVE, follow the returned auth link to complete setup
- Confirm connection status shows ACTIVE before running any workflows
Note: BigQuery data is accessed through Metabase, a business intelligence tool that connects to BigQuery as a data source. The tools below execute queries and retrieve metadata through Metabase’s API.
Core Workflows
1. Run a Native SQL Query
Use METABASE_POST_API_DATASET with type native to execute raw SQL queries against your BigQuery database.
Tool: METABASE_POST_API_DATASET
Parameters:
- database (required): Metabase database ID (integer)
- type (required): "native" for SQL queries
- native (required): Object with "query" string
- query: Raw SQL string (e.g., "SELECT * FROM users LIMIT 10")
- template_tags: Parameterized query variables (optional)
- constraints: { "max-results": 1000 } (optional)
2. Run a Structured MBQL Query
Use METABASE_POST_API_DATASET with type query for Metabase Query Language queries with built-in aggregation and filtering.
Tool: METABASE_POST_API_DATASET
Parameters:
- database (required): Metabase database ID
- type (required): "query" for MBQL
- query (required): Object with:
- source-table: Table ID (integer)
- aggregation: e.g., [["count"]] or [["sum", ["field", 5, null]]]
- breakout: Group-by fields
- filter: Filter conditions
- limit: Max rows
- order-by: Sort fields
3. Get Query Metadata
Use METABASE_POST_API_DATASET_QUERY_METADATA to retrieve metadata about databases, tables, and fields available for querying.
Tool: METABASE_POST_API_DATASET_QUERY_METADATA
Parameters:
- database (required): Metabase database ID
- type (required): "query" or "native"
- query (required): Query object (e.g., {"source-table": 1})
4. Convert Query to Native SQL
Use METABASE_POST_API_DATASET_NATIVE to convert an MBQL query into its native SQL representation.
Tool: METABASE_POST_API_DATASET_NATIVE
Parameters:
- database (required): Metabase database ID
- type (required): "native"
- native (required): Object with "query" and optional "template_tags"
- parameters: Query parameter values (optional)
5. List Available Databases
Use METABASE_GET_API_DATABASE to discover all database connections configured in Metabase.
Tool: METABASE_GET_API_DATABASE
Description: Retrieves a list of all Database instances configured in Metabase.
Note: Call RUBE_SEARCH_TOOLS to get the full schema for this tool.
6. Get Database Schema Metadata
Use METABASE_GET_API_DATABASE_ID_METADATA to retrieve complete table and field information for a specific database.
Tool: METABASE_GET_API_DATABASE_ID_METADATA
Description: Retrieves complete metadata for a specific database including
all tables and fields.
Note: Call RUBE_SEARCH_TOOLS to get the full schema for this tool.
Common Patterns
- Discover then query: Use
METABASE_GET_API_DATABASEto find database IDs, thenMETABASE_GET_API_DATABASE_ID_METADATAto explore tables and fields, thenMETABASE_POST_API_DATASETto run queries. - SQL-first approach: Use
METABASE_POST_API_DATASETwithtype: "native"and write standard SQL queries for maximum flexibility. - Parameterized queries: Use
template_tagsin native queries for safe parameterization (e.g.,SELECT * FROM users WHERE id = {{user_id}}). - Schema exploration: Use
METABASE_POST_API_DATASET_QUERY_METADATAto understand table structures before building complex queries. - Get parameter values: Use
METABASE_POST_API_DATASET_PARAMETER_VALUESto retrieve possible values for filter dropdowns.
Known Pitfalls
- The
databaseparameter is a Metabase-internal integer ID, not the BigQuery project or dataset name. UseMETABASE_GET_API_DATABASEto find valid database IDs first. source-tablein MBQL queries is also a Metabase-internal integer, not the BigQuery table name. Discover table IDs via metadata tools.- Native SQL queries use BigQuery SQL dialect (Standard SQL). Ensure your syntax is BigQuery-compatible.
max-resultsin constraints defaults can limit returned rows. Set explicitly for large result sets.- Responses from
METABASE_POST_API_DATASETcontain results nested underdata— parse carefully as the structure may be deeply nested. - Metabase field IDs used in MBQL
aggregation,breakout, andfilterarrays must be integers obtained from metadata responses.
Quick Reference
| Action | Tool | Key Parameters |
|---|---|---|
| Run SQL query | METABASE_POST_API_DATASET |
database, type: "native", native.query |
| Run MBQL query | METABASE_POST_API_DATASET |
database, type: "query", query |
| Get query metadata | METABASE_POST_API_DATASET_QUERY_METADATA |
database, type, query |
| Convert to SQL | METABASE_POST_API_DATASET_NATIVE |
database, type, native |
| Get parameter values | METABASE_POST_API_DATASET_PARAMETER_VALUES |
parameter, field_ids |
| List databases | METABASE_GET_API_DATABASE |
(see full schema via RUBE_SEARCH_TOOLS) |
| Get database metadata | METABASE_GET_API_DATABASE_ID_METADATA |
(see full schema via RUBE_SEARCH_TOOLS) |
Powered by Composio