Skip to main content
Glama
manish-coder-1007

metabase-mcp-navi

Metabase MCP Server

PyPI version License: MIT

A Model Context Protocol (MCP) server for Metabase - gives AI assistants direct access to dashboards, cards, and query execution.

Features

  • Three Authentication Methods: API Key, Session ID, or Username/Password

  • Dashboard Tools: List, search, get details, get cards from dashboards

  • Card Tools: List, search, get details, execute saved questions

  • Database Tools: List databases, tables, get metadata, sync

  • Query Tools: Execute SQL, test queries, get suggestions, explain queries

  • Image Export: Export cards and dashboards as PNG images

  • CRUD Operations: Create, update, delete cards, dashboards, and collections

Quick Start

Installation

# Install via pip
pip install metabase-mcp-navi

# Or via uvx (recommended for MCP)
uvx metabase-mcp-navi

Configuration

Set environment variables:

# Required
export METABASE_URL=https://your-metabase-instance.com

# Authentication (choose one):
export METABASE_API_KEY=your_api_key
# OR
export METABASE_SESSION_ID=your_session_id
# OR
export METABASE_USER_EMAIL=your_email
export METABASE_PASSWORD=your_password

# Optional
export METABASE_VERIFY_SSL=false  # Disable SSL verification
export METABASE_TIMEOUT=60        # Request timeout in seconds

Cursor MCP Configuration

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "metabase": {
      "command": "uvx",
      "args": ["metabase-mcp-navi"],
      "env": {
        "METABASE_URL": "https://your-metabase-instance.com",
        "METABASE_SESSION_ID": "your_session_id",
        "METABASE_VERIFY_SSL": "false"
      }
    }
  }
}

Claude Desktop Configuration

Add to your Claude Desktop config:

{
  "mcpServers": {
    "metabase": {
      "command": "uvx",
      "args": ["metabase-mcp-navi"],
      "env": {
        "METABASE_URL": "https://your-metabase-instance.com",
        "METABASE_SESSION_ID": "your_session_id"
      }
    }
  }
}

Available Tools

Dashboard Tools

Tool

Description

list_dashboards

List all accessible dashboards

get_dashboard

Get dashboard details

get_dashboard_cards

Get all cards from a dashboard

search_dashboards

Search dashboards by name

Card Tools

Tool

Description

list_cards

List saved questions

get_card

Get card details and SQL query

execute_card

Run a saved question

search_cards

Search cards by name

Database Tools

Tool

Description

list_databases

List connected databases

get_database

Get database details

list_tables

List tables in a database

get_table_metadata

Get table columns and types

sync_database

Trigger metadata sync

Query Tools

Tool

Description

execute_query

Execute native SQL

test_query

Test query with auto LIMIT

get_query_suggestions

Get suggested queries for a table

explain_query

Get query execution plan

Image Tools

Tool

Description

get_card_image

Get card as base64 PNG

download_card_image

Save card image to disk

get_dashboard_cards_as_images

Check exportable cards

download_all_dashboard_cards

Download all dashboard images

CRUD Tools

Tool

Description

create_collection

Create a new collection

create_card

Create a new card with SQL

create_dashboard

Create a new dashboard

add_card_to_dashboard

Add card to dashboard

update_card

Update card properties

delete_card

Delete a card

delete_dashboard

Delete a dashboard

Other Tools

Tool

Description

test_connection

Test Metabase connectivity

list_collections

List folders/collections

get_collection_items

Browse collection contents

Usage Examples

After configuring, you can ask your AI assistant:

  • "List all dashboards in Metabase"

  • "Get dashboard 3301 details"

  • "Execute card 12345"

  • "Run this SQL on database 104: SELECT * FROM users LIMIT 10"

  • "Search for dashboards about 'payments'"

  • "Create a new card with this query..."

  • "Download all images from dashboard 42"

Getting Session ID

  1. Open Metabase in your browser and log in

  2. Open Developer Tools (F12)

  3. Go to Application → Cookies

  4. Copy the value of metabase.SESSION

Project Structure

metabase-mcp-navi/
├── src/
│   └── metabase_mcp_navi/
│       ├── __init__.py       # Package initialization
│       ├── __main__.py       # Module entry point
│       ├── config.py         # Configuration management
│       ├── client.py         # Metabase API client
│       ├── models.py         # Data models
│       ├── server.py         # MCP server setup
│       └── tools/
│           ├── __init__.py   # Tools package
│           ├── dashboards.py # Dashboard tools
│           ├── cards.py      # Card/question tools
│           ├── databases.py  # Database tools
│           ├── queries.py    # Query execution tools
│           ├── images.py     # Image export tools
│           └── crud.py       # CRUD operations
├── pyproject.toml            # Package configuration
├── README.md
└── LICENSE

Development

# Clone the repository
git clone https://github.com/manish-coder-1007/metabase-mcp-navi.git
cd metabase-mcp-navi

# Install in development mode
pip install -e ".[dev]"

# Run tests
pytest

# Format code
black src/
ruff check src/

License

MIT License - see LICENSE for details.

Author

Manish Balot

Install Server
A
license - permissive license
A
quality
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/manish-coder-1007/metabase-mcp-navi'

If you have feedback or need assistance with the MCP directory API, please join our Discord server