home / mcp / metabase mcp server

Metabase MCP Server

Metabase MCP server provides integration with the Metabase API, enabling LLM with MCP capabilites to directly interact with your analytics data, this server acts as a bridge between your analytics platform and conversational AI.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "zsh52013148087-metabase-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@smithery/cli@latest",
        "run",
        "YOUR_GITHUB_USERNAME/metabase-mcp-server",
        "--config",
        "{\"metabaseUrl\":\"https://your-metabase-instance.com\",\"metabaseApiKey\":\"your_api_key\",\"metabasePassword\":\"\",\"metabaseUserEmail\":\"\"}"
      ],
      "env": {
        "LOG_LEVEL": "info",
        "METABASE_URL": "https://your-metabase-instance.com",
        "METABASE_API_KEY": "your_api_key",
        "METABASE_PASSWORD": "your_password",
        "METABASE_USER_EMAIL": "[email protected]"
      }
    }
  }
}

You can use the Metabase MCP Server to connect AI assistants to your Metabase analytics data. It exposes Metabase resources and actions through MCP, letting you browse dashboards, run saved questions, execute SQL against connected databases, manage dashboards and collections, and receive structured results suitable for AI workflows.

How to use

Use an MCP client to connect to the Metabase MCP Server. You can perform data access tasks such as listing dashboards, cards, databases, collections, and table fields; execute saved questions or custom SQL; and manage dashboards, cards, and collections. The server returns JSON-formatted data that is easy for AI assistants to consume. Start by configuring authentication (API key is recommended for production) and then invoke the available tools to retrieve data, run analyses, or assemble dashboards.

How to install

Prerequisites: Node.js and a package manager (npm or npx) installed on your machine.

Install and run the MCP server client using the provided Smithery integration commands. The server is deployed via an MCP runner that executes a CLI command to start the Metabase MCP server using a hosted builder.

# Start the MCP runner for API key authentication
# Replace YOUR_GITHUB_USERNAME with your GitHub username
npx -y @smithery/cli@latest run YOUR_GITHUB_USERNAME/metabase-mcp-server \
  --config "{\"metabaseUrl\":\"https://your-metabase-instance.com\",\"metabaseApiKey\":\"your_api_key\",\"metabasePassword\":\"\",\"metabaseUserEmail\":\"\"}"

# Start the MCP runner for username/password authentication
# Replace YOUR_GITHUB_USERNAME with your GitHub username
npx -y @smithery/cli@latest run YOUR_GITHUB_USERNAME/metabase-mcp-server \
  --config "{\"metabaseUrl\":\"https://your-metabase-instance.com\",\"metabaseApiKey\":\"\",\"metabasePassword\":\"your_password\",\"metabaseUserEmail\":\"[email protected]\"}"

Additional content

Configuration and security notes help you run the server safely and reliably. For production deployments, prefer API key authentication and keep all credentials secure. Use environment variables or secret management rather than embedding credentials in start commands. Monitor logs to diagnose issues and ensure your Metabase instance is reachable from the MCP server environment.

Available tools

list_dashboards

Retrieve all dashboards available in your Metabase instance.

list_cards

Get all saved questions or cards in Metabase.

list_databases

View all connected database sources.

list_collections

List all collections in Metabase.

list_tables

List all tables in a specific database.

get_table_fields

Get all fields/columns in a specific table.

execute_card

Run a saved card and retrieve its results, with optional parameters.

execute_query

Execute a custom SQL query against any connected database.

get_dashboard_cards

Extract all cards from a specific dashboard.

create_dashboard

Create a new dashboard with specified name and parameters.

update_dashboard

Update an existing dashboard's name, description, or parameters.

delete_dashboard

Delete a dashboard.

add_card_to_dashboard

Add or update cards in a dashboard with position specifications and optional tab assignment.

create_card

Create a new question/card with a SQL query.

update_card_visualization

Update visualization settings for a card.

create_collection

Create a new collection to organize dashboards and questions.