LabscoMCP early access ↗
imlewcMCP SERVER

Metabase Server

Build and run Metabase from your client: execute a saved question or raw SQL, assemble a dashboard and wire its filters to card variables, and administer collections, groups and users.

by imlewc ↗Data Platform: Pipelines, Warehousing, BI & GovernanceCommunity

LABSCO SUMMARY

Dashboard plumbing that normally takes a dozen clicks collapses into one sequence of calls.

The valuable half is what the Metabase UI makes tedious: template-tags on a native query, filter parameters on a dashboard, and the mapping between the two, all reachable through get_card, update_card and update_dashboard_cards. The other half is administration — users, groups, the permissions graph — which puts real authority behind the API key or account you connect with. Deletes lean toward archiving by default, with hard_delete the flag you have to set on purpose.

What it is

A server over a Metabase instance's API covering questions, dashboards, collections, permission groups and users in 33 tools.

What you get

  • Cards read, run and rewritten — get_card returns the dataset_query including the template-tags that define each variable, and update_card writes them back
  • Raw SQL against any Metabase-registered database through execute_query, with native_parameters and a max_rows cap
  • Dashboard assembly end to end: create it, place cards at a row and column with a size, add filter parameters, then map those filters onto card variables with update_dashboard_cards
  • Collections created, re-parented and permissioned, with the collection permissions graph readable and settable per group
  • User administration that mirrors Metabase's own model — create, update, add to and remove from groups, and disable rather than delete
  • Archiving as the default retirement path on cards, dashboards and collections, with hard_delete as a separate explicit flag

Requirements

METABASE_URL plus a Metabase API key in METABASE_API_KEY — the method the project recommends and checks first. Without a key, it signs in with METABASE_USERNAME and METABASE_PASSWORD instead. Whatever that key or account can reach in Metabase is what these tools can reach, including create_user and update_collection_permissions.

Setup effort

One command plus a key — npx -y @imlewc/metabase-server, then supply credentials