From superpowers
Automate Google BigQuery tasks: run SQL queries, explore datasets and metadata, execute MBQL queries via Metabase integration.
How this skill is triggered — by the user, by Claude, or both
Slash command
/superpowers:googlebigquery-automationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Run SQL queries, explore database schemas, and analyze datasets through the Metabase integration using Rube MCP (Composio).
Run SQL queries, explore database schemas, and analyze datasets through the Metabase integration using Rube MCP (Composio).
Toolkit docs: composio.dev/toolkits/googlebigquery
RUBE_MANAGE_CONNECTIONS with toolkit metabaseRUBE_SEARCH_TOOLS first to get current tool schemasGet 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.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit metabaseNote: 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.
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)
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
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})
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)
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.
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.
METABASE_GET_API_DATABASE to find database IDs, then METABASE_GET_API_DATABASE_ID_METADATA to explore tables and fields, then METABASE_POST_API_DATASET to run queries.METABASE_POST_API_DATASET with type: "native" and write standard SQL queries for maximum flexibility.template_tags in native queries for safe parameterization (e.g., SELECT * FROM users WHERE id = {{user_id}}).METABASE_POST_API_DATASET_QUERY_METADATA to understand table structures before building complex queries.METABASE_POST_API_DATASET_PARAMETER_VALUES to retrieve possible values for filter dropdowns.database parameter is a Metabase-internal integer ID, not the BigQuery project or dataset name. Use METABASE_GET_API_DATABASE to find valid database IDs first.source-table in MBQL queries is also a Metabase-internal integer, not the BigQuery table name. Discover table IDs via metadata tools.max-results in constraints defaults can limit returned rows. Set explicitly for large result sets.METABASE_POST_API_DATASET contain results nested under data -- parse carefully as the structure may be deeply nested.aggregation, breakout, and filter arrays must be integers obtained from metadata responses.| 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
npx claudepluginhub lunartech-x/superpowers --plugin superpowersGuides BigQuery engineering with bq CLI for queries, table ops, data load/export; GoogleSQL syntax, functions, window funcs; partitioning, clustering, optimization.
Generates optimized BigQuery SQL from natural language descriptions, converts queries from other SQL dialects to BigQuery syntax, and applies best practices like avoiding SELECT * and using ARRAY_AGG for latest records.
Generates optimized SQL queries from natural language for BigQuery, PostgreSQL, MySQL, Snowflake, SQL Server. Reads schemas from uploaded files, diagrams, docs for reporting, analysis, exploration.