📊 Metabase MCP Server

Backend integration layer that connects your Metabase instance with AI assistants using the Model Context Protocol (MCP)

Local serverstdioPython

What is the 📊 Metabase MCP server?

Backend integration layer that connects your Metabase instance with AI assistants using the Model Context Protocol (MCP). The 📊 metabase mcp server wraps that behind the Model Context Protocol, so an assistant can use it through 14 defined tools rather than through you.

What it actually does

Instead of navigating through menus or constructing SQL queries manually, you can:

Its toolset

Everything the assistant can do here goes through one of these:

  • Function — Description
  • get_metabase_collection — Get a collection by ID
  • create_metabase_collection — Create a new collection
  • update_metabase_collection — Update collection metadata
  • delete_metabase_collection — Delete a collection
  • get_metabase_cards — List all charts
  • get_card_query_results — Get results from a chart query
  • create_metabase_card — Create a new chart
  • update_metabase_card — Update an existing chart
  • delete_metabase_card — Delete a chart
  • get_metabase_dashboards — List all dashboards
  • get_dashboard_by_id — Get a dashboard by ID

Configuration

You will need 7 environment variables: METABASE_URL, METABASE_API_KEY, HOST, TRANSPORT, LOG_LEVEL, YOUR_API_KEY, FULL_PATH. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.

First, install Node.js if you haven't already: - Download from: nodejs.org - Or install via package manager:

Adding it to your client

Installation goes through your MCP client rather than a global install: point it at @modelcontextprotocol/inspector on npm and it is fetched when the client starts. The copy-paste blocks for Claude Desktop, Claude Code and Cursor are further down this page.

When to reach for it

Plenty of developer tooling servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. 📊 Metabase's toolset — Function, get_metabase_collection, create_metabase_collection and 11 more — is a fair guide to whether it matches your workflow. It is maintained by CW-Codewalnut; worth a glance at recent repository activity before you build anything load-bearing on it.

SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.

Caveats

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • With 14 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch 📊 Metabase.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • MCP clients confirm each tool call by default. Leave that on until you have watched what the 📊 metabase mcp server does with a few real requests.

Available tools

ToolWhat it does
FunctionDescription
get_metabase_collectionGet a collection by ID
create_metabase_collectionCreate a new collection
update_metabase_collectionUpdate collection metadata
delete_metabase_collectionDelete a collection
get_metabase_cardsList all charts
get_card_query_resultsGet results from a chart query
create_metabase_cardCreate a new chart
update_metabase_cardUpdate an existing chart
delete_metabase_cardDelete a chart
get_metabase_dashboardsList all dashboards
get_dashboard_by_idGet a dashboard by ID
get_dashboard_cardsGet cards in a dashboard
get_dashboard_itemsGet all dashboard items

How to install the 📊 Metabase MCP server

Mac:

```json
{
  "mcpServers": {
    "metabase": {
      "type": "stdio",
      "command": "/Users/YourName/Projects/metabase-mcp-server/.venv/bin/python",
      "args": [
        "/Users/YourName/Projects/metabase-mcp-server/src/metabase_mcp_server.py"
      ]
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Configuration

First, install Node.js if you haven't already: - Download from: nodejs.org - Or install via package manager:

VariableDescriptionRequired
METABASE_URLEndpoint or connection string the server talks to.Yes
METABASE_API_KEYCredential the server authenticates with.Yes
HOSTEndpoint or connection string the server talks to.Optional
TRANSPORTConfiguration value read at startup.Optional
LOG_LEVELConfiguration value read at startup.Optional
YOUR_API_KEYCredential the server authenticates with.Yes
FULL_PATHFilesystem location the server is allowed to use.Optional

Example prompts to try

  • Use 📊 Metabase to Function.
  • Use 📊 Metabase to get metabase collection.
  • Use 📊 Metabase to create metabase collection.

Frequently asked questions

It connects 📊 Metabase to MCP-compatible AI assistants such as Claude and Cursor, exposing 14 tools (Function, get_metabase_collection, create_metabase_collection, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with 📊 Metabase directly.