Skip to main content
Glama
voducdan

metabase-mcp

by voducdan

Metabase MCP-Server – Verbinden Sie KI-Assistenten mit Ihrer Metabase-Analyse

PyPI version Python 3.12+ License: MIT FastMCP

Ein leistungsstarker Model Context Protocol (MCP)-Server für Metabase, der es KI-Assistenten wie Claude, Cursor und anderen MCP-Clients ermöglicht, nahtlos mit Ihrer Metabase-Instanz zu interagieren. Fragen Sie Datenbanken ab, führen Sie SQL aus, verwalten Sie Dashboards und automatisieren Sie Analyse-Workflows mit natürlicher Sprache durch KI-gestützte Datenbankoperationen.

Ideal für: Datenanalysten, Entwickler und Teams, die KI-Assistenten in ihre Metabase Business-Intelligence-Plattform integrieren möchten, um SQL-Abfragen, Dashboard-Verwaltung und Datenexploration zu automatisieren.

Hauptfunktionen

Datenbankoperationen

  • Datenbanken auflisten: Durchsuchen Sie alle konfigurierten Metabase-Datenbanken

  • Tabellen entdecken: Erkunden Sie Tabellen mit Metadaten und Beschreibungen

  • Feldinspektion: Erhalten Sie detaillierte Feld-/Spalteninformationen mit intelligenter Paginierung

Abfragen & Analysen

  • SQL-Ausführung: Führen Sie native SQL-Abfragen mit Parameterunterstützung und Templating aus

  • MongoDB-Unterstützung: Führen Sie native MongoDB-Abfragen mit automatischer JSON-Konvertierung für Aggregations-Pipelines aus

  • Kartenverwaltung: Führen Sie Metabase-Fragen/Karten (SQL und MongoDB) aus, erstellen und verwalten Sie diese

  • Sammlungsorganisation: Erstellen und verwalten Sie Sammlungen für eine bessere Organisation

  • Abfragen in natürlicher Sprache: Lassen Sie KI-Assistenten Fragen in SQL- oder MongoDB-Abfragen übersetzen

Authentifizierung & Sicherheit

  • API-Schlüssel-Unterstützung: Sichere Authentifizierung über Metabase-API-Schlüssel (empfohlen)

  • Sitzungsbasierte Authentifizierung: Alternative E-Mail/Passwort-Authentifizierung

  • Umgebungsvariablen: Sichere Verwaltung von Anmeldedaten über .env-Dateien

KI-Assistenten-Integration

  • Claude Desktop: Native Integration mit Anthropic's Claude AI

  • Cursor IDE: Nahtlose Integration für KI-gestützte Entwicklung

  • Jeder MCP-Client: Kompatibel mit allen Model Context Protocol-Clients

Verbesserte Leistung & Zuverlässigkeit

  • Kontextbezogenes Logging: Echtzeit-Logging mit Debug-, Info-, Warn- und Fehlerstufen, die für KI-Clients sichtbar sind

  • Korrekte Fehlerbehandlung: FastMCP ToolError-Ausnahmen für bessere Fehlermeldungen und Debugging

  • Middleware-Stack: Integrierte Fehlerbehandlungs- und Logging-Middleware für Zuverlässigkeit in der Produktion

  • Best Practices: Befolgt die neuesten FastMCP-Muster mit Duplikatsvermeidung und sauberer Konfiguration

  • Modernes Python: Verwendet Python 3.12+ Typ-Hinweise (|-Syntax) für bessere Typsicherheit

Schnellstart

Voraussetzungen

  • Python 3.12+

  • Metabase-Instanz mit API-Zugriff

  • uvx oder uv Paketmanager

Installation

Option 1: Verwendung von uvx (Am einfachsten – keine Installation erforderlich)

# Run directly without installing (like npx for Python)
uvx metabase-mcp

# With environment variables
METABASE_URL=https://your-instance.com METABASE_API_KEY=your-key uvx metabase-mcp

Option 2: Installation von PyPI

# Install globally
uv tool install metabase-mcp

# Or with pip
pip install metabase-mcp

# Then run
metabase-mcp

Option 3: Entwicklungseinrichtung (Aus dem Quellcode)

# Clone the repository
git clone https://github.com/cheukyin175/metabase-mcp.git
cd metabase-mcp

# Install dependencies
uv sync

# Run the server
uv run python server.py

Konfiguration

Erstellen Sie eine .env-Datei mit Ihren Metabase-Anmeldedaten:

cp .env.example .env

Konfigurationsoptionen

Option 1: API-Schlüssel-Authentifizierung (Empfohlen)

METABASE_URL=https://your-metabase-instance.com
METABASE_API_KEY=your-api-key-here

Option 2: E-Mail/Passwort-Authentifizierung

METABASE_URL=https://your-metabase-instance.com
METABASE_USER_EMAIL=your-email@example.com
METABASE_PASSWORD=your-password

Optional: Metabase API HTTP-Timeout

METABASE_HTTP_TIMEOUT=30.0  # Default: 30.0 seconds

Optional: Benutzerdefinierter Host/Port für SSE/HTTP

HOST=localhost  # Default: 0.0.0.0
PORT=9000      # Default: 8000

Verwendung

Server starten

Schnellstart (Keine Einrichtung erforderlich)

# Run directly with uvx
uvx metabase-mcp

# With custom Metabase instance
METABASE_URL=https://your-instance.com METABASE_API_KEY=your-key uvx metabase-mcp

Aus dem Quellcode (Entwicklung)

# STDIO transport (default)
uv run python server.py

# SSE transport (uses HOST=0.0.0.0, PORT=8000 by default)
uv run python server.py --sse

# HTTP transport (uses HOST=0.0.0.0, PORT=8000 by default)
uv run python server.py --http

# Custom host and port via environment variables
HOST=localhost PORT=9000 uv run python server.py --sse
HOST=192.168.1.100 PORT=8080 uv run python server.py --http

Cursor-Integration

Sie können Cursor manuell konfigurieren, indem Sie Ihre Cursor-Einstellungen bearbeiten.

Für SSE-Transport: Sie müssen den Server starten, bevor Sie Cursor verwenden:

uv run python server.py --sse

Claude Desktop-Integration

Option 1: Verwendung von uvx (Empfohlen)

Fügen Sie dies zu ~/Library/Application Support/Claude/claude_desktop_config.json hinzu:

{
    "mcpServers": {
        "metabase-mcp": {
            "command": "uvx",
            "args": ["metabase-mcp"],
            "env": {
                "METABASE_URL": "https://your-metabase-instance.com",
                "METABASE_API_KEY": "your-api-key-here"
            }
        }
    }
}

Option 2: Verwendung einer lokalen Installation

Wenn Sie das Repository geklont haben:

{
    "mcpServers": {
        "metabase-mcp": {
            "command": "uv",
            "args": [
                "run",
                "--directory",
                "/absolute/path/to/metabase-mcp",
                "python",
                "server.py"
            ],
            "env": {
                "METABASE_URL": "https://your-metabase-instance.com",
                "METABASE_API_KEY": "your-api-key-here"
            }
        }
    }
}

Option 3: Verwendung der FastMCP CLI

fastmcp install server.py -n "Metabase MCP"

Verfügbare Tools

Datenbankoperationen

Tool

Beschreibung

list_databases

Alle konfigurierten Datenbanken in Metabase auflisten

list_tables

Alle Tabellen in einer bestimmten Datenbank mit Metadaten abrufen

get_table_fields

Feld-/Spalteninformationen für eine Tabelle abrufen

Abfrageoperationen

Tool

Beschreibung

execute_query

Native SQL-Abfragen mit Parameterunterstützung ausführen

execute_mongodb_query

Native MongoDB-Abfragen mit automatischer JSON-Konvertierung für Aggregations-Pipelines ausführen

execute_card

Gespeicherte Metabase-Fragen/Karten ausführen

Kartenverwaltung

Tool

Beschreibung

list_cards

Alle gespeicherten Fragen/Karten auflisten

create_card

Neue Fragen/Karten mit SQL-Abfragen erstellen

create_mongodb_card

Neue MongoDB-Fragen/Karten mit nativer Abfrageunterstützung erstellen

Sammlungsverwaltung

Tool

Beschreibung

list_collections

Alle Sammlungen durchsuchen

create_collection

Neue Sammlungen zur Organisation erstellen

Transportmethoden

Der Server unterstützt mehrere Transportmethoden:

  • STDIO (Standard): Für IDE-Integration (Cursor, Claude Desktop)

  • SSE: Server-Sent Events für Webanwendungen

  • HTTP: Standard-HTTP für API-Zugriff

uv run python server.py                        # STDIO (default)
uv run python server.py --sse                  # SSE (HOST=0.0.0.0, PORT=8000)
uv run python server.py --http                 # HTTP (HOST=0.0.0.0, PORT=8000)
HOST=localhost PORT=9000 uv run python server.py --sse   # Custom host/port

Entwicklung

Entwicklungsumgebung einrichten

# Install with dev dependencies
uv sync --group dev

# Or with pip
pip install -r requirements-dev.txt

Code-Qualität

# Run linting
uv run ruff check .

# Format code
uv run ruff format .

# Type checking
uv run mypy server.py

Anwendungsbeispiele

Abfragebeispiele

# List all databases
databases = await list_databases()

# Execute a SQL query
result = await execute_query(
    database_id=1,
    query="SELECT * FROM users LIMIT 10"
)

# Create and run a card
card = await create_card(
    name="Active Users Report",
    database_id=1,
    query="SELECT COUNT(*) FROM users WHERE active = true",
    collection_id=2
)

Projektstruktur

metabase-mcp/
├── server.py                 # Main MCP server implementation
├── pyproject.toml           # Project configuration and dependencies
└── .env.example             # Environment variables template

Mitwirken

Beiträge sind willkommen! Bitte fühlen Sie sich frei, einen Pull Request einzureichen.

Lizenz

MIT-Lizenz – siehe LICENSE-Datei für Details

Ressourcen

Schlüsselwörter & Themen

metabase mcp model-context-protocol claude cursor ai-assistant fastmcp sql database analytics business-intelligence bi data-analysis anthropic llm python automation api data-science query-builder natural-language-sql

Star-Verlauf

Wenn Sie dieses Projekt nützlich finden, ziehen Sie bitte in Betracht, ihm einen Stern zu geben! Es hilft anderen, dieses Tool zu entdecken.

Anwendungsfälle

  • Datenbankabfragen in natürlicher Sprache: Bitten Sie Claude, Ihre Metabase-Datenbanken in einfachem Englisch abzufragen

  • Automatisierte Berichterstellung: Nutzen Sie KI, um Metabase-Karten und -Sammlungen zu erstellen und zu verwalten

  • Datenexploration: Lassen Sie sich von KI-Assistenten helfen, Erkenntnisse aus Ihren Daten zu gewinnen

  • SQL-Abfrageunterstützung: Erhalten Sie Hilfe beim Schreiben und Optimieren von SQL-Abfragen durch KI

  • Dashboard-Verwaltung: Automatisieren Sie die Erstellung und Organisation von Metabase-Dashboards

  • Datenanalyse-Workflows: Integrieren Sie KI-gestützte Analysen in Ihren Entwicklungsworkflow

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/voducdan/matebase-mcp'

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