Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Automate Google BigQuery tasks via Rube MCP (Composio): run SQL queries, explore datasets and metadata, execute MBQL queries via Metabase integration. Always search tools first for current schemas.
.claude/skills/composiohq-googlebigquery-automation/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 110% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 116% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 172% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 79% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 67% | 0% |
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 metabase> 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.
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 fieldsUse 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
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 6,173 | 5,063 | -18% | 1 | 1 | 0% | 1,182 | 1,924 | +63% | 0 | 0 | — |
case-02 | fail→fail | 5,080 | 5,834 | +15% | 1 | 1 | 0% | 477 | 2,041 | +328% | 0 | 0 | — |
case-03 | fail→fail | 5,240 | 4,993 | -5% | 1 | 1 | 0% | 943 | 1,982 | +110% | 0 | 0 | — |
case-04 | pass→pass | 9,272 | 6,945 | -25% | 1 | 1 | 0% | 1,836 | 3,112 | +69% | 0 | 0 | — |
case-05 | pass→pass | 13,354 | 10,880 | -19% | 1 | 1 | 0% | 2,665 | 3,902 | +46% | 0 | 0 | — |
case-06 | pass→pass | 10,587 | 7,456 | -30% | 1 | 1 | 0% | 2,022 | 3,285 | +62% | 0 | 0 | — |
case-07 | fail→pass | 6,692 | 6,454 | -4% | 1 | 1 | 0% | 1,430 | 3,002 | +110% | 0 | 0 | — |
case-08 | pass→pass | 7,289 | 3,972 | -46% | 1 | 1 | 0% | 1,396 | 2,514 | +80% | 0 | 0 | — |
case-09 | pass→pass | 7,061 | 3,215 | -54% | 1 | 1 | 0% | 1,404 | 2,360 | +68% | 0 | 0 | — |
case-10 | pass→pass | 7,857 | 4,742 | -40% | 1 | 1 | 0% | 1,631 | 2,686 | +65% | 0 | 0 | — |
case-11 | fail→pass | 5,322 | 2,228 | -58% | 1 | 1 | 0% | 950 | 2,049 | +116% | 0 | 0 | — |
case-12 | fail→pass | 4,680 | 2,378 | -49% | 1 | 1 | 0% | 793 | 2,157 | +172% | 0 | 0 | — |
case-13 | fail→pass | 7,545 | 3,470 | -54% | 1 | 1 | 0% | 1,298 | 2,323 | +79% | 0 | 0 | — |
case-14 | fail→pass | 6,737 | 6,467 | -4% | 1 | 1 | 0% | 1,313 | 2,193 | +67% | 0 | 0 | — |
case-15 | pass→pass | 5,212 | 3,450 | -34% | 1 | 1 | 0% | 1,105 | 2,395 | +117% | 0 | 0 | — |
case-16 | fail→pass | 8,798 | 2,698 | -69% | 1 | 1 | 0% | 1,835 | 2,209 | +20% | 0 | 0 | — |
case-17 | pass→pass | 10,349 | 4,254 | -59% | 1 | 1 | 0% | 1,983 | 2,430 | +23% | 0 | 0 | — |
case-18 | pass→pass | 5,238 | 3,153 | -40% | 1 | 1 | 0% | 1,017 | 2,243 | +121% | 0 | 0 | — |
case-19 | fail→fail | 6,663 | 6,061 | -9% | 1 | 1 | 0% | 1,180 | 2,646 | +124% | 0 | 0 | — |
case-20 | pass→pass | 2,920 | 1,750 | -40% | 1 | 1 | 0% | 510 | 1,999 | +292% | 0 | 0 | — |
case-21 | pass→pass | 5,857 | 2,587 | -56% | 1 | 1 | 0% | 956 | 2,069 | +116% | 0 | 0 | — |
case-22 | pass→pass | 4,857 | 4,086 | -16% | 1 | 1 | 0% | 1,033 | 2,514 | +143% | 0 | 0 | — |
case-23 | fail→pass | 8,960 | 4,960 | -45% | 1 | 1 | 0% | 1,465 | 2,453 | +67% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 21 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +30 percentage points is the difference between those two pass rates over the 21 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.