metabase-mcp-python

metabase-mcp-python

A Python MCP server for Metabase that enables AI assistants to query databases, manage dashboards, and interact with your Metabase instance.

Category
Visit Server

README

Language: English | Portugues (BR)

metabase-mcp-python

A Python Model Context Protocol (MCP) server for Metabase, enabling AI assistants to query databases, manage dashboards, and interact with your Metabase instance.

Inspired by CognitionAI/metabase-mcp-server (TypeScript). See CREDITS.md for attribution.

Installation

With uv (recommended)

uv tool install metabase-mcp-python

With pip

pip install metabase-mcp-python

From source

git clone https://github.com/im-voracity/metabase-mcp-python.git
cd metabase-mcp-python
uv sync

Configuration

Set the following environment variables (or use a .env file):

Variable Required Description
METABASE_URL Yes Your Metabase instance URL (e.g., http://localhost:3000)
METABASE_API_KEY One of Metabase API key for authentication
METABASE_USERNAME One of Username for session-based authentication
METABASE_PASSWORD One of Password for session-based authentication

You must provide either METABASE_API_KEY or both METABASE_USERNAME and METABASE_PASSWORD.

Usage

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "metabase": {
      "command": "uv",
      "args": ["tool", "run", "metabase-mcp-python"],
      "env": {
        "METABASE_URL": "http://localhost:3000",
        "METABASE_API_KEY": "your-api-key"
      }
    }
  }
}

With session authentication:

{
  "mcpServers": {
    "metabase": {
      "command": "uv",
      "args": ["tool", "run", "metabase-mcp-python"],
      "env": {
        "METABASE_URL": "http://localhost:3000",
        "METABASE_USERNAME": "user@example.com",
        "METABASE_PASSWORD": "your-password"
      }
    }
  }
}

Claude CLI

{
  "mcpServers": {
    "metabase": {
      "command": "uv",
      "args": ["tool", "run", "metabase-mcp-python", "--write"],
      "env": {
        "METABASE_URL": "http://localhost:3000",
        "METABASE_API_KEY": "your-api-key"
      }
    }
  }
}

Running from source

{
  "mcpServers": {
    "metabase": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/metabase-mcp-python", "metabase-mcp"],
      "env": {
        "METABASE_URL": "http://localhost:3000",
        "METABASE_API_KEY": "your-api-key"
      }
    }
  }
}

Tool Filtering Modes

The server supports three modes to control which tools are exposed to the AI assistant:

Mode Flag Tools Description
Essential --essential (default) ~19 Core read operations for querying and exploring
Write --write ~59 Essential + create, update, and delete operations
All --all ~87 Every available tool including advanced operations

Examples:

metabase-mcp                # Essential mode (default)
metabase-mcp --write        # Essential + write tools
metabase-mcp --all          # All tools

The essential mode is the default to keep the tool list manageable and reduce the risk of unintended modifications. Use --write or --all when you need to create or modify Metabase resources.

Available Tools

Tools are organized into five categories:

  • Database (13 tools) -- List, inspect, create, and manage database connections; execute SQL queries
  • Table (17 tools) -- Browse tables, inspect schemas, manage field metadata, import/export CSV
  • Card (21 tools) -- CRUD for saved questions, execute queries, manage public links, move cards
  • Dashboard (27 tools) -- CRUD for dashboards, manage cards/layout, filters audit, public links
  • Additional (9 tools) -- Collections, search, users, playground links

See docs/tools-reference.md for the complete tool listing.

Development

Setup

git clone https://github.com/im-voracity/metabase-mcp-python.git
cd metabase-mcp-python
uv sync --group dev

Testing

uv run pytest
uv run pytest -m "not integration"    # Skip integration tests

Linting and type checking

uv run ruff check src tests
uv run ruff format --check src tests
uv run mypy src

Architecture

See docs/architecture.md for a detailed overview of the codebase structure, request flow, and authentication system.

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured