Skip to main content
Glama
voducdan

metabase-mcp

by voducdan

Metabase MCPサーバー - AIアシスタントをMetabase分析に接続

PyPI version Python 3.12+ License: MIT FastMCP

Metabase用の高性能なModel Context Protocol (MCP) サーバーです。ClaudeCursorなどのAIアシスタントやその他のMCPクライアントが、Metabaseインスタンスとシームレスに連携できるようになります。AIを活用したデータベース操作を通じて、自然言語でデータベースのクエリ、SQLの実行、ダッシュボードの管理、分析ワークフローの自動化を実現します。

対象ユーザー: データアナリスト、開発者、およびAIアシスタントをMetabaseビジネスインテリジェンスプラットフォームと統合し、SQLクエリの自動化、ダッシュボード管理、データ探索を行いたいチーム。

主な機能

データベース操作

  • データベース一覧: 設定済みのすべてのMetabaseデータベースを閲覧

  • テーブル探索: メタデータや説明付きでテーブルを探索

  • フィールド検査: スマートなページネーションを備えた詳細なフィールド/カラム情報の取得

クエリと分析

  • SQL実行: パラメータサポートとテンプレート機能を備えたネイティブSQLクエリの実行

  • MongoDBサポート: 集計パイプライン用の自動JSON変換機能を備えたネイティブMongoDBクエリの実行

  • カード管理: Metabaseの質問/カード(SQLおよびMongoDB)の実行、作成、管理

  • コレクション整理: 整理を効率化するためのコレクションの作成と管理

  • 自然言語クエリ: AIアシスタントに質問をSQLまたはMongoDBクエリに変換させる機能

認証とセキュリティ

  • APIキーサポート: Metabase APIキーによる安全な認証(推奨)

  • セッションベース認証: メールアドレス/パスワードによる代替認証

  • 環境変数: .envファイルによる安全な認証情報管理

AIアシスタント統合

  • Claude Desktop: AnthropicのClaude AIとのネイティブ統合

  • Cursor IDE: AI支援開発のためのシームレスな統合

  • MCPクライアント: すべてのModel Context Protocolクライアントと互換性あり

パフォーマンスと信頼性の向上

  • コンテキスト認識ログ: AIクライアントから確認可能なデバッグ、情報、警告、エラーレベルのリアルタイムログ

  • 適切なエラーハンドリング: より良いエラーメッセージとデバッグのためのFastMCP ToolError 例外

  • ミドルウェアスタック: 本番環境での信頼性を高めるためのエラーハンドリングおよびログ記録ミドルウェアを内蔵

  • ベストプラクティス: 重複防止とクリーンな設定を備えた最新のFastMCPパターンに従っています

  • モダンPython: 型安全性を高めるためにPython 3.12+の型ヒント(| 構文)を使用

クイックスタート

前提条件

  • Python 3.12+

  • APIアクセスが可能なMetabaseインスタンス

  • uvx または uv パッケージマネージャー

インストール

オプション 1: uvxを使用(最も簡単 - インストール不要)

# 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

オプション 2: PyPIからインストール

# Install globally
uv tool install metabase-mcp

# Or with pip
pip install metabase-mcp

# Then run
metabase-mcp

オプション 3: 開発セットアップ(ソースから)

# 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

設定

Metabaseの認証情報を含む .env ファイルを作成します:

cp .env.example .env

設定オプション

オプション 1: APIキー認証(推奨)

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

オプション 2: メールアドレス/パスワード認証

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

オプション: Metabase API HTTPタイムアウト

METABASE_HTTP_TIMEOUT=30.0  # Default: 30.0 seconds

オプション: SSE/HTTP用のカスタムホスト/ポート

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

使用方法

サーバーの実行

クイックスタート(設定不要)

# 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

ソースから実行(開発用)

# 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との統合

Cursorの設定を編集することで、手動で設定できます。

SSEトランスポートの場合: Cursorを使用する前にサーバーを起動する必要があります:

uv run python server.py --sse

Claude Desktopとの統合

オプション 1: uvxを使用(推奨)

~/Library/Application Support/Claude/claude_desktop_config.json に以下を追加します:

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

オプション 2: ローカルインストールを使用

リポジトリをクローンした場合:

{
    "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"
            }
        }
    }
}

オプション 3: FastMCP CLIを使用

fastmcp install server.py -n "Metabase MCP"

利用可能なツール

データベース操作

ツール

説明

list_databases

Metabaseで設定されたすべてのデータベースを一覧表示

list_tables

特定のデータベース内のすべてのテーブルをメタデータ付きで取得

get_table_fields

テーブルのフィールド/カラム情報を取得

クエリ操作

ツール

説明

execute_query

パラメータサポート付きでネイティブSQLクエリを実行

execute_mongodb_query

集計パイプライン用の自動JSON変換機能を備えたネイティブMongoDBクエリを実行

execute_card

保存されたMetabaseの質問/カードを実行

カード管理

ツール

説明

list_cards

保存されたすべての質問/カードを一覧表示

create_card

SQLクエリを使用して新しい質問/カードを作成

create_mongodb_card

ネイティブクエリサポートを使用して新しいMongoDBの質問/カードを作成

コレクション管理

ツール

説明

list_collections

すべてのコレクションを閲覧

create_collection

整理用の新しいコレクションを作成

トランスポート方式

サーバーは複数のトランスポート方式をサポートしています:

  • STDIO (デフォルト): IDE統合用 (Cursor, Claude Desktop)

  • SSE: Webアプリケーション用のServer-Sent Events

  • HTTP: APIアクセス用の標準HTTP

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

開発

開発環境のセットアップ

# Install with dev dependencies
uv sync --group dev

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

コード品質

# Run linting
uv run ruff check .

# Format code
uv run ruff format .

# Type checking
uv run mypy server.py

使用例

クエリの例

# 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
)

プロジェクト構造

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

コントリビューション

コントリビューションを歓迎します!お気軽にプルリクエストを送信してください。

ライセンス

MITライセンス - 詳細はLICENSEファイルを参照してください

リソース

キーワードとトピック

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

スターの履歴

このプロジェクトが役に立った場合は、ぜひスターを付けてください!他の人がこのツールを見つける助けになります。

ユースケース

  • 自然言語データベースクエリ: Claudeに平易な英語でMetabaseデータベースをクエリするよう依頼

  • 自動レポート生成: AIを使用してMetabaseのカードやコレクションを作成・管理

  • データ探索: AIアシスタントにデータから洞察を見つける手助けをさせる

  • SQLクエリ支援: AIを通じてSQLクエリの作成や最適化のサポートを受ける

  • ダッシュボード管理: Metabaseダッシュボードの作成と整理を自動化

  • データ分析ワークフロー: AIを活用した分析を開発ワークフローに統合

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