home / mcp / metabase mcp server

Metabase MCP Server

Provides an MCP server that enables AI assistants to interact with Metabase for live analytics and BI access.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "easecloudio-mcp-metabase-server": {
      "command": "npx",
      "args": [
        "@easecloudio/mcp-metabase-server"
      ],
      "env": {
        "METABASE_URL": "https://your-metabase-instance.com",
        "METABASE_API_KEY": "your_metabase_api_key",
        "METABASE_PASSWORD": "your_password",
        "METABASE_USERNAME": "your_username"
      }
    }
  }
}

You set up an MCP server that bridges Metabase with AI assistants, enabling live analytics access and comprehensive BI capabilities through a standardized MCP interface. This server supports dashboard, card, database, user, and governance operations, empowering you to perform analytics tasks from natural language or programmatic MCP calls.

How to use

To use the Metabase MCP Server, run it as an MCP endpoint and connect your MCP client or Claude Desktop to it. You can start with the recommended method using npx, which avoids local installations and uses the published package directly. Once running, you can call a wide range of tools to list dashboards, execute cards, manage collections, export data, and monitor usage.

How to install

Prerequisites: You need Node.js installed (version recommended by your project) and access to a Metabase instance. If you prefer not to install locally, you can run the server via containerized or networked approaches described below.

Step 1. Install or prepare your environment if you want to run locally. You will install dependencies and build if you choose to run from source.

Step 2. Choose a run method from the options shown in the usage guide: npx, Node.js start from a built distribution, or Docker. Each method requires you to provide Metabase connection credentials.

Configuration and usage notes

Environment variables control authentication and target Metabase access. The server supports two methods: API key authentication or fallback username/password authentication. You should provide at least one of these methods to start the server.

Recommended minimum: set METABASE_URL and METABASE_API_KEY for API key authentication. If you use username/password, provide METABASE_URL, METABASE_USERNAME, and METABASE_PASSWORD.

Starting with API key authentication is preferred for simplicity and automation.

Troubleshooting and debugging

Debugging MCP servers that communicate over stdio can be challenging. Use the MCP Inspector tool to access debugging utilities in your browser. Run the inspector script to obtain a debugging URL. Check startup logs for authentication method usage and any errors related to Metabase API access.

Security considerations

Protect your Metabase credentials and API keys. Do not expose keys in client configurations or shared repositories. Use secure environment management and rotate credentials periodically.

Notes on deployment options

You can run the server using several methods, including npx, direct Node.js execution after building, or Docker. Each method requires you to provide the correct environment variables and, when applicable, ensure the Metabase instance is reachable from the host running the MCP server.

Support and contact

If you need expert help deploying, customizing, or scaling Metabase integration with MCP, consider reaching out to the EaseCloud team for consulting, automation, and managed support.

Available tools

list_dashboards

List all dashboards available in Metabase so you can view and reference them from your MCP client.

create_dashboard

Create a new dashboard within Metabase to organize cards and data visuals.

update_dashboard

Update properties or layout of an existing dashboard.

delete_dashboard

Delete or archive a dashboard from Metabase.

get_dashboard_cards

Retrieve all cards associated with a specific dashboard.

list_cards

List all questions or cards present in Metabase.

create_card

Create a new question/card in Metabase.

update_card

Update details of an existing card.

delete_card

Delete or archive a card.

execute_card

Run a card and fetch its results.

list_databases

List all databases connected to Metabase.

execute_query

Execute a SQL query against a selected database.

list_collections

List all collections in Metabase.

create_collection

Create a new collection to organize items.

update_collection

Update properties of an existing collection.

delete_collection

Delete a collection.

get_collection_items

Get all items contained in a collection.

move_to_collection

Move items between collections.

list_users

List all Metabase users.

create_user

Create a new Metabase user.

update_user

Update user details.

delete_user

Deactivate a user.

list_permissions

List all permission groups and permissions.

list_permission_groups

List all permission groups.

create_permission_group

Create a new permission group.

update_permission_group

Update a permission group.

delete_permission_group

Delete a permission group.

add_user_to_group

Add a user to a permission group.

remove_user_from_group

Remove a user from a permission group.

export_card_results

Export card results to CSV/JSON/Excel.

export_dashboard_data

Export dashboard data to various formats.

bookmark_card

Bookmark a card for quick access.

unbookmark_card

Remove a card bookmark.

bookmark_dashboard

Bookmark a dashboard.

unbookmark_dashboard

Remove a dashboard bookmark.

list_bookmarked_items

List all bookmarked items.

create_public_link

Create a public sharing link for content.

disable_public_link

Disable an existing public sharing link.

get_public_link

Get information about a public link.

get_database_schema

Get the schema information for a database.

get_database_tables

List all tables in a database.

get_table_metadata

Get metadata for a specific table.

get_table_fields

List all fields in a table.

get_field_values

Fetch values for a specific field.

get_field_summary

Get summary statistics for a field.

analyze_field_values

Analyze the distribution of values in a field.

search_content

Search across Metabase content.

get_recent_items

Get recently viewed items.

get_popular_items

Get most popular cards and dashboards.

get_user_activity

Retrieve user activity and usage statistics.

get_content_usage

Get usage statistics for cards and dashboards.

get_system_usage_stats

Get system-wide usage statistics.

get_system_health

Get system health status.