Metabase

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.
  • javascript

0

GitHub Stars

javascript

Language

7 months ago

First Indexed

3 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "ryanmaule-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": {
        "METABASE_URL": "https://your-metabase-instance.com",
        "METABASE_API_KEY": "your_api_key",
        "METABASE_PASSWORD": "your_password",
        "METABASE_USER_EMAIL": "user@example.com"
      }
    }
  }
}

Metabase MCP Server connects AI assistants to Metabase analytics, providing direct access to dashboards, cards, databases, and queries through a structured MCP interface. It acts as a bridge so you can ask questions, run saved analyses, and retrieve results from Metabase inside your conversational flows.

How to use

You use an MCP client to interact with Metabase through the Metabase MCP Server. You can browse resources via intuitive metabase:// URIs and perform actions such as listing dashboards, cards, databases, and collections, as well as running saved questions or custom SQL. Responses are returned in JSON for easy consumption by AI assistants. Authentication supports both API keys (recommended for production) and username/password, and you can enable thorough logging for debugging and monitoring.

Typical use patterns include: - List all dashboards to understand your available analytics surfaces. - Retrieve all saved questions/cards to see what analyses exist. - Execute a saved card or a custom query to fetch live data for a chat or assistant response. - Create, update, or delete dashboards and cards as part of building analytics-driven conversations. - Organize dashboards with collections for easier navigation.

How to install

Prerequisites: install Node.js (LTS) and ensure you have access to a Metabase instance. You will deploy an MCP server that exposes the Metabase capabilities to your AI assistants.

  1. Prepare the deployment by forking the MCP server repository to your GitHub account. Then use Smithery to deploy the MCP server from your fork.

  2. Use the Smithery deployment flow to connect with your GitHub account and publish the forked repository as an MCP server. Follow Smithery’s interface to complete the deployment steps.

  3. If you are integrating with Claude Desktop, point Claude Desktop at the Smithery-hosted MCP server configuration. You will configure a metabase-mcp server entry that runs via npx and Smithery’s CLI with your chosen configuration.

  4. Example runtime command structure shown for Claude Desktop integration: the MCP server is started with npx and a Smithery CLI run command, passing a JSON config containing your Metabase URL and credentials. The exact command appears in the deployment guide as shown in the integration snippet below.

{
  "mcpServers": {
    "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\":\"\"}"
      ]
    }
  }
}

Security considerations

For production, prefer API key authentication for Metabase access. Keep all credentials secure and avoid embedding them directly in code. Consider using environment variables to supply sensitive values and restrict network access to your Metabase instance.

Configuration

Two authentication methods are supported for connecting to Metabase from the MCP server: a username/password flow and API key authentication. The URL of your Metabase instance is required in both cases, along with either an API key or a user email/password combination.

Environment variables you will typically provide when configuring the MCP server include METABASE_URL and one of METABASE_API_KEY or METABASE_PASSWORD and METABASE_USER_EMAIL, depending on which authentication method you use.

Troubleshooting and notes

  • Ensure your Metabase instance is reachable from the MCP server network. - Verify authentication details are correct and that the API key has the needed permissions. - Enable detailed logging to help trace issues during integration with AI assistants.

Tools and capabilities overview

The server exposes a range of data access, execution, and management tools to support AI-driven analytics interactions. You can list resources, run saved questions, execute SQL, and manage dashboards, cards, and collections. The tools are designed to return structured JSON for easy consumption by your AI assistants.

Notes on deployment and usage

The MCP server is designed to be deployed via your preferred MCP runner (for example, through Smithery using a standard CLI run pattern). You will supply a configuration that includes the Metabase endpoint and credentials, and the MCP client will communicate with Metabase to fulfill requests from your AI assistants.

Available tools

list_dashboards

Retrieve all available dashboards in your Metabase instance

list_cards

Get all saved questions/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 results with optional parameters

execute_query

Execute custom SQL queries 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 card with an SQL query

update_card_visualization

Update visualization settings for a card

create_collection

Create a new collection to organize dashboards and questions

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational