metabase-mcp
Metabase MCP 서버 - AI 어시스턴트를 Metabase 분석에 연결
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 --httpCursor 통합
Cursor 설정을 편집하여 수동으로 구성할 수 있습니다.
SSE 전송의 경우: Cursor를 사용하기 전에 서버를 시작해야 합니다:
uv run python server.py --sseClaude 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"사용 가능한 도구
데이터베이스 작업
도구 | 설명 |
| Metabase에 구성된 모든 데이터베이스 나열 |
| 메타데이터와 함께 특정 데이터베이스의 모든 테이블 가져오기 |
| 테이블에 대한 필드/열 정보 검색 |
쿼리 작업
도구 | 설명 |
| 매개변수 지원을 통해 네이티브 SQL 쿼리 실행 |
| 집계 파이프라인을 위한 자동 JSON 변환과 함께 네이티브 MongoDB 쿼리 실행 |
| 저장된 Metabase 질문/카드 실행 |
카드 관리
도구 | 설명 |
| 모든 저장된 질문/카드 나열 |
| SQL 쿼리로 새로운 질문/카드 생성 |
| 네이티브 쿼리 지원을 통해 새로운 MongoDB 질문/카드 생성 |
컬렉션 관리
도구 | 설명 |
| 모든 컬렉션 탐색 |
| 정리를 위한 새로운 컬렉션 생성 |
전송 방식
서버는 여러 전송 방식을 지원합니다:
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 기반 분석을 개발 워크플로우에 통합
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