Metabase MCP logo

Metabase MCP

by @serdnaley

Connects AI agents to Metabase through 187 query, administration, and reporting tools over stdio or authenticated HTTP.

Install Metabase MCP

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "serdnaley-metabase-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@serdnaley/metabase-mcp"
      ],
      "env": {
        "METABASE_URL": "YOUR_VALUE_HERE",
        "METABASE_API_KEY": "YOUR_VALUE_HERE",
        "METABASE_EMAIL": "YOUR_VALUE_HERE",
        "METABASE_PASSWORD": "YOUR_VALUE_HERE"
      }
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Values are written into the snippet above so you can paste it as is. They never leave your browser.

Install not yet sandbox-tested— we haven't run this command through our automated sandbox yet. Not a red flag; we're working through the catalog.

Overview

@serdnaley/metabase-mcp connects AI agents and applications to Metabase through API-key or email/password authentication, without OAuth. It exposes 187 tools covering queries, dashboards, collections, users, permissions, databases, exports, alerts, and other Metabase operations over stdio or Streamable HTTP. Toolsets, per-tool filters, read-only mode, paging, and response limits help control model context and write access. Reach for it when Metabase must be accessed from desktop clients, CI, containers, shared services, or custom agent applications.

Use cases

  • Query Metabase data from an AI coding or desktop client
  • Browse dashboards, cards, collections, and database metadata
  • Automate Metabase administration from CI or a server
  • Expose selected Metabase tools through a shared HTTP service

Key features

  • 187 tools across 34 Metabase toolsets
  • API-key or email/password authentication
  • stdio and bearer-authenticated Streamable HTTP transports
  • Tool filtering and read-only mode
  • Query row and response-size limits
  • MCP resources and workflow prompts

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

npm downloads170kPackage downloads in the last 30 days.
Last commitTodayMost recent push to the default branch.

How Metabase MCP works

What @serdnaley/metabase-mcp does

@serdnaley/metabase-mcp exposes Metabase functionality through the Model Context Protocol. It supports both analytics and administration, with 187 tools organized into 34 toolsets. These cover searching, databases, tables, saved questions, dashboards, collections, actions, datasets, users, groups, permissions, segments, settings, alerts, subscriptions, glossary content, documents, snippets, caching, persistence, uploads, metrics, measures, transforms, exports, embedding, tasks, logs, and explorations.

The server is intended for headless environments as well as local desktop use. Authentication can use a Metabase API key or a session created from an email address and password. It works with Metabase OSS and paid editions, while paid-only capabilities depend on the features enabled by the connected instance.

How it works

Run the package through npx in stdio mode for a local MCP client, or start it in Streamable HTTP mode for a shared or server deployment. In HTTP mode, clients authenticate with a bearer token. Metabase credentials remain with the MCP server rather than being passed through each client interaction.

Toolsets can be selected with an environment variable, and individual tools can be added or excluded using names or glob patterns. Every tool includes read-only, destructive, and idempotent hints where applicable, allowing compatible clients to distinguish safer reads from operations that change data or configuration.

Query output is controlled with row and response-size limits, and query results can be compacted and paged. Resources and prompts are also available for browsing databases, cards, dashboards, and collections and for using prepared workflows.

Setup and configuration

The minimum connection settings are METABASE_URL plus either METABASE_API_KEY or both METABASE_EMAIL and METABASE_PASSWORD. The API key route is recommended for headless operation. Local clients can launch the package with npx -y @serdnaley/metabase-mcp and pass these values as environment variables.

Set MCP_TRANSPORT=http or use the HTTP command-line option for a service deployment. MCP_HTTP_HOST and MCP_HTTP_PORT control the bind address and port; the default is loopback on port 3333. HTTP deployments use MCP_HTTP_TOKEN, which must be at least 16 characters. Running without HTTP authentication is available only when explicitly enabled on a loopback host.

METABASE_READ_ONLY_MODE=true hides write tools. METABASE_TOOLSETS selects toolsets or presets, while METABASE_TOOLS_ENABLE and METABASE_TOOLS_DISABLE refine the selection. METABASE_MAX_ROWS and METABASE_MAX_RESPONSE_CHARS limit output size. Additional request headers can be supplied as a JSON object through METABASE_CUSTOM_HEADERS, which is useful when a proxy requires its own headers.

Tools and capabilities

  • Query Metabase data and inspect databases, tables, cards, dashboards, and collections.
  • Manage users, groups, permissions, settings, database connections, transforms, alerts, subscriptions, and other administrative resources.
  • Create or operate on exports, actions, uploads, metrics, measures, snippets, embedding settings, and persistence features where the Metabase instance supports them.
  • Load only selected toolsets and annotate tools for safer client approval behavior.
  • Browse supported Metabase resources through MCP resources and use included prompts for common workflows.

Limitations and notes

Compatibility is tested against Metabase 0.59 and 0.64. Features tied to paid Metabase editions require those features to be available on the target instance. HTTP clients must support Streamable HTTP and send the configured bearer token unless unauthenticated loopback mode is enabled. Write operations remain available unless read-only mode or tool filtering removes them, so deployments should choose credentials and enabled tools according to the intended level of access.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Metabase MCP

@serdnaley/metabase-mcp is an MCP server that connects AI agents and applications to Metabase using an API key or email/password authentication. Its main tools query data and manage dashboards, questions, collections, users, groups, permissions, databases, exports, alerts, settings, and other Metabase resources over stdio or Streamable HTTP.

Install it by running `npx -y @serdnaley/metabase-mcp` from an MCP client configuration. Set `METABASE_URL` and either `METABASE_API_KEY` or both `METABASE_EMAIL` and `METABASE_PASSWORD`. Claude Desktop also provides a release bundle that can be opened without Node.js setup or manual JSON editing.

Yes, @serdnaley/metabase-mcp works with Cursor through its MCP configuration. Add the package as an `npx` command and provide `METABASE_URL` plus the chosen Metabase authentication variables, then restart Cursor.

Run it with `MCP_TRANSPORT=http` or the HTTP command-line option, then configure the host, port, and `MCP_HTTP_TOKEN`. Clients connect to the Streamable HTTP endpoint and send the token as a bearer authorization header.

Set `METABASE_READ_ONLY_MODE=true` to hide every write tool. You can also restrict the exposed surface with `METABASE_TOOLSETS`, `METABASE_TOOLS_ENABLE`, and `METABASE_TOOLS_DISABLE`.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewMetabase MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/serdnaley-metabase-mcp?style=directory)](https://allmcps.com/mcp/serdnaley-metabase-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/serdnaley-metabase-mcp"><img src="https://allmcps.com/api/badge/serdnaley-metabase-mcp?style=directory" alt="Metabase MCP on AllMCPs" /></a>