Metabase MCP server

CommunityCognition57Config last verified Jun 1, 2026

A maintained Metabase MCP server from Cognition that lets an agent run questions, build dashboards, and query databases across your Metabase instance.

This Metabase MCP server, maintained by Cognition, connects an AI agent to a Metabase business-intelligence instance through the Metabase REST API. It exposes a broad tool surface — over 80 tools across dashboards, cards (saved questions), databases, tables, and collections — so an agent can list and execute existing questions, run ad-hoc SQL with execute_query, create and update dashboards and cards, manage public and embeddable links, and organize content into collections. Because it speaks the same API a human analyst uses, the agent works within your existing Metabase models, permissions, and connected data sources.

To keep the tool surface manageable for a model, it ships selectable modes: the default --essential loads a curated core set, --read exposes only read-only tools, --write exposes modification tools, and --all loads the full inventory. It runs locally over stdio, launches with npx, and authenticates with METABASE_URL plus an API key (METABASE_API_KEY) or a username and password against your Metabase instance. That makes it a practical way to let an agent answer questions from your dashboards, prototype new charts, and automate BI chores conversationally.

Quick install

Copy-paste configs are provided for all 8 supported clients. Pick your client below.

Add to ~/.claude.json

~/.claude.json
json
{
  "mcpServers": {
    "metabase": {
      "command": "npx",
      "args": [
        "-y",
        "@cognitionai/metabase-mcp-server"
      ],
      "env": {
        "METABASE_URL": "<METABASE_URL>",
        "METABASE_API_KEY": "<METABASE_API_KEY>"
      }
    }
  }
}
Or via CLI
bash
claude mcp add metabase -- npx -y @cognitionai/metabase-mcp-server

Available tools

ToolDescription
list_dashboardsList all dashboards in the instance.
get_dashboardGet a dashboard's details.
create_dashboardCreate a new dashboard.
update_dashboardUpdate an existing dashboard.
delete_dashboardDelete a dashboard.
copy_dashboardCopy an existing dashboard.
get_dashboard_cardsList the cards placed on a dashboard.
add_card_to_dashboardAdd a card to a dashboard.
remove_card_from_dashboardRemove a card from a dashboard.
update_dashboard_cardUpdate a card's placement or settings on a dashboard.
execute_dashboard_cardExecute a single card on a dashboard.
create_public_linkCreate a public sharing link for a dashboard.
delete_public_linkDelete a dashboard's public sharing link.
list_public_dashboardsList dashboards with public links enabled.
list_embeddable_dashboardsList dashboards enabled for embedding.
get_dashboard_param_valuesGet the available values for a dashboard parameter.
search_dashboard_param_valuesSearch the values for a dashboard parameter.
get_dashboard_param_remappingGet the value remapping for a dashboard parameter.
execute_dashboard_queryExecute the query behind a dashboard.
get_dashboard_relatedGet entities related to a dashboard.
get_dashboard_query_metadataGet query metadata for a dashboard.
update_dashboard_cardsUpdate multiple cards on a dashboard at once.
save_dashboardSave changes to a dashboard.
list_cardsList all saved questions (cards).
get_cardGet a card's details.
create_cardCreate a new card (saved question), including SQL questions.
update_cardUpdate an existing card.
delete_cardDelete a card.
copy_cardCopy an existing card.
execute_cardRun a saved card and return its results.
execute_card_query_with_formatRun a card's query and return results in a specified export format.
execute_pivot_card_queryRun a card's query as a pivot table.
get_card_query_metadataGet query metadata for a card.
move_cardsMove multiple cards.
move_cards_to_collectionMove cards into a collection.
get_card_dashboardsList the dashboards a card appears on.
get_card_seriesGet the series compatible with a card for combination charts.
get_card_param_valuesGet the available values for a card parameter.
search_card_param_valuesSearch the values for a card parameter.
get_card_param_remappingGet the value remapping for a card parameter.
create_card_public_linkCreate a public sharing link for a card.
delete_card_public_linkDelete a card's public sharing link.
get_public_cardsList cards with public links enabled.
get_embeddable_cardsList cards enabled for embedding.
list_databasesList all connected databases.
get_databaseGet a database's details.
create_databaseAdd a new database connection.
update_databaseUpdate a database connection.
delete_databaseRemove a database connection.
get_database_schema_tablesList the tables in a database schema.
get_database_schemasList the schemas in a database.
get_database_metadataGet a database's metadata.
sync_database_schemaTrigger a schema sync for a database.
execute_queryRun an ad-hoc native SQL query against a database.
execute_query_exportRun a query and export the results.
get_database_usage_infoGet usage information for a database.
rescan_database_field_valuesRescan cached field values for a database.
list_tablesList tables.
get_tableGet a table's details.
update_tableUpdate a table's metadata.
update_tablesUpdate metadata for multiple tables.
get_table_dataGet the data in a table.
append_csv_to_tableAppend rows from a CSV to a table.
replace_table_csvReplace a table's contents from a CSV.
get_table_query_metadataGet query metadata for a table.
get_table_fksGet a table's foreign keys.
get_table_relatedGet entities related to a table.
sync_table_schemaTrigger a schema sync for a table.
reorder_table_fieldsReorder the fields of a table.
rescan_table_field_valuesRescan cached field values for a table.
discard_table_field_valuesDiscard cached field values for a table.
get_card_table_fksGet the foreign keys for a card's underlying table.
get_card_table_query_metadataGet query metadata for a card's underlying table.
list_collectionsList collections.
create_collectionCreate a collection to organize content.
update_collectionUpdate a collection.
delete_collectionDelete a collection.
get_collection_itemsList the items in a collection.
search_contentSearch across dashboards, cards, and other content.
get_recent_viewsGet the user's recently viewed items.
get_popular_itemsGet the most popular items in the instance.
get_metabase_playground_linkGet a link to open content in the Metabase query playground.

Required configuration

  • METABASE_URLRequired

    Base URL of your Metabase instance.

  • METABASE_API_KEYOptional

    Metabase API key (preferred authentication).

  • METABASE_USERNAMEOptional

    Username for session-based authentication (used with METABASE_PASSWORD).

  • METABASE_PASSWORDOptional

    Password for session-based authentication (used with METABASE_USERNAME).

What you can do with it

Answer questions from your dashboards

The agent searches your saved questions and dashboards, executes the relevant cards, and explains the numbers without anyone opening Metabase.

Prototype charts and run ad-hoc SQL

Using execute_query and create_card, the agent writes a native query, validates it, and saves it as a new card or pins it to a dashboard.

FAQ

Is it free?
Yes. This Metabase MCP server is open source under the MIT license and free to run; you only need a Metabase instance (which itself has a free open-source edition) for it to connect to.
Does it support remote/OAuth?
It runs as a local stdio server launched with npx and authenticates with a Metabase API key (or username and password) against your instance. There is no hosted OAuth endpoint; it acts on the API token's permissions.
There are 80+ tools — is that too many for an agent?
Use the mode flags to scope the surface: --essential (the default) loads a curated core set, --read exposes only read-only tools, --write exposes modification tools, and --all loads everything.
← Browse all data-analytics servers