Skip to main content
Glama
voducdan

metabase-mcp

by voducdan

Metabase MCP 서버 - AI 어시스턴트를 Metabase 분석에 연결

PyPI version Python 3.12+ License: MIT FastMCP

Metabase를 위한 고성능 MCP(Model Context Protocol) 서버로, Claude, Cursor 및 기타 MCP 클라이언트와 같은 AI 어시스턴트가 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: 웹 애플리케이션용 서버 전송 이벤트

  • 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

기여

기여를 환영합니다! 자유롭게 Pull Request를 제출해 주세요.

라이선스

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

Star 기록

이 프로젝트가 유용하다면 별표를 눌러주세요! 다른 사람들이 이 도구를 발견하는 데 도움이 됩니다.

사용 사례

  • 자연어 데이터베이스 쿼리: 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