AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified MIT Self-run

Metabase Mcp

mcp-naveen-chava-metabase-mcp · by Naveen-chava

Metabase MCP server for AI Agents. Authenticate with a browser session cookie, no API key required.

No reviews yet
0 installs
47 views
0.0% view→install

Install

$ agentstack add mcp-naveen-chava-metabase-mcp

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-naveen-chava-metabase-mcp)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Metabase Mcp? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

metabase-mcp

Query your Metabase with AI agents. No API key. No admin begging. Just vibes and a cookie.


The problem

The official Metabase MCP wants an API key or your username/password. Cool in theory. Not so cool if your company won't give you one.

But you can log into Metabase in a browser. Which means you have a session cookie. Which means you have everything you need.

That's this.

Wait, should you even use this?

Honest answer: if you have an API key or username/password, just use the official Metabase MCP. It's proper, supported, and won't expire on you mid-conversation. Newer versions of Metabase also support Google login natively via the official MCP.

This project is for the rest of us: the people whose company guards API keys like they're nuclear launch codes and treats every Metabase upgrade request like a 6-month procurement process.

You'll love this if:

  • Your org controls Metabase and you don't have credentials beyond your browser login
  • Your Metabase version doesn't support the official MCP's Google login yet
  • You'd rather fish a cookie out of DevTools than write another Jira ticket
  • You want to query data with AI and get on with your life

You should know:

| The good | The not-so-good | |---|---| | Works with just a browser login | Cookies expire, you'll re-paste it occasionally | | Inherits your exact Metabase permissions | If using a session file, the token is stored in plaintext on disk (optional, you can pass it inline instead) | | Zero setup on the Metabase side | If your session logs out, so does the MCP |

What it can do

| Tool | What it does | |---|---| | list_databases | List all connected databases | | list_collections | List all collections (folders) | | list_collection_items | List questions, dashboards, and sub-collections inside a collection | | list_cards | List all saved questions | | get_card | Get details of a specific question | | create_card | Create a new saved question in a collection | | run_card | Execute a saved question and return results | | list_dashboards | List all dashboards | | get_dashboard | Get a dashboard with its card layout | | list_tables | List tables, optionally filtered by database | | search | Search across questions, dashboards, collections, and tables | | execute_query | Run an ad-hoc query against any connected database |

Prerequisites

  • Go 1.25.5+
  • A Metabase instance you can log into

Install

go install github.com/Naveen-chava/metabase-mcp@latest

This puts the binary in ~/go/bin/. Make sure that's in your $PATH:

export PATH="$PATH:$(go env GOPATH)/bin"

Or build from source:

git clone https://github.com/Naveen-chava/metabase-mcp
cd metabase-mcp
go install .

Getting your session cookie

This is the one slightly sneaky step.

  1. Open Metabase in your browser and log in
  2. Open DevTools → ApplicationCookies → select your Metabase domain
  3. Find metabase.SESSION and copy its value

That's your cookie. Treat it like a password; it grants the same access as your login session.

> If the MCP starts throwing 401s, your session expired. Grab a fresh cookie and you're back.

Configuration

| Variable | Required | Description | |---|---|---| | METABASE_URL | Yes | Base URL of your Metabase instance | | METABASE_SESSION | One of these two | Session cookie value, read once at startup | | METABASE_SESSION_FILE | One of these two | Path to a file containing the cookie, read on every request so rotating is just overwriting the file |

Inline (quick start):

METABASE_URL=https://metabase.company.com \
METABASE_SESSION=your-cookie \
./metabase-mcp

Via file (recommended, no restart when your cookie expires):

echo "your-cookie" > ~/.metabase-session

METABASE_URL=https://metabase.company.com \
METABASE_SESSION_FILE=~/.metabase-session \
./metabase-mcp

To rotate a stale cookie, just overwrite the file. No restart needed; the next request picks it up automatically.

> The server expands ~ and $HOME in the session file path, so ~/.metabase-session works everywhere.

Claude Desktop

Add this to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "metabase": {
      "command": "metabase-mcp",
      "env": {
        "METABASE_URL": "https://metabase.company.com",
        "METABASE_SESSION_FILE": "~/.metabase-session"
      }
    }
  }
}

Restart Claude Desktop. Done.

Claude Code

claude mcp add metabase metabase-mcp -s user -e METABASE_URL=https://metabase.company.com -e METABASE_SESSION_FILE=~/.metabase-session

> Run as a single line. Backslash continuations can introduce invisible characters when copied from some terminals or browsers.

Cursor

Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project-level):

{
  "mcpServers": {
    "metabase": {
      "command": "metabase-mcp",
      "env": {
        "METABASE_URL": "https://metabase.company.com",
        "METABASE_SESSION_FILE": "~/.metabase-session"
      }
    }
  }
}

Restart Cursor and verify the server is connected under Settings → MCP.

Example prompts

  • "What databases are connected to Metabase?"
  • "Show me all tables in the Analytics DB"
  • "What's in my personal collection?"
  • "Run the 'Daily Active Users' question"
  • "Search for anything related to revenue"
  • "Run this SQL on the Analytics DB: SELECT count(\*) FROM orders WHERE created\at > now() - interval 7 day"_
  • "Query the orders collection in MongoDB and group revenue by category"
  • "Create a saved question that shows top customers by spend"

Project structure

metabase-mcp/
├── main.go                    # Startup, env vars, wires everything together
└── internal/
    ├── metabase/              # Metabase API client
    │   ├── client.go          # HTTP client with cookie auth
    │   ├── types.go           # API types
    │   ├── databases.go
    │   ├── collections.go
    │   ├── cards.go
    │   ├── dashboards.go
    │   ├── tables.go
    │   ├── search.go
    │   ├── query.go
    │   └── tests/             # HTTP-level tests (package metabase_test)
    └── tools/                 # MCP tool handlers
        ├── client.go          # MetabaseClient interface
        ├── register.go        # One place to add/remove tools
        ├── helpers.go         # Shared utilities
        ├── databases.go
        ├── collections.go
        ├── cards.go
        ├── dashboards.go
        ├── tables.go
        ├── search.go
        ├── query.go
        └── tests/             # Handler tests with mock client (package tools_test)

Running tests

go test ./...

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.