Skip to main content
Glama
voducdan

metabase-mcp

by voducdan

Metabase MCP 服务器 - 将 AI 助手连接到您的 Metabase 分析平台

PyPI version Python 3.12+ License: MIT FastMCP

这是一个用于 Metabase 的高性能 模型上下文协议 (MCP) 服务器,使 ClaudeCursor 等 AI 助手及其他 MCP 客户端能够与您的 Metabase 实例无缝交互。通过 AI 驱动的数据库操作,以自然语言查询数据库、执行 SQL、管理仪表板并自动化分析工作流。

适用人群: 数据分析师、开发人员以及希望将 AI 助手集成到 Metabase 商业智能平台,以实现自动化 SQL 查询、仪表板管理和数据探索的团队。

主要功能

数据库操作

  • 列出数据库:浏览所有已配置的 Metabase 数据库

  • 表发现:通过元数据和描述探索数据表

  • 字段检查:获取带有智能分页功能的详细字段/列信息

查询与分析

  • SQL 执行:运行支持参数和模板的原生 SQL 查询

  • MongoDB 支持:执行原生 MongoDB 查询,并自动将 JSON 转换为聚合管道

  • 卡片管理:执行、创建和管理 Metabase 问题/卡片(SQL 和 MongoDB)

  • 集合组织:创建和管理集合以实现更好的组织

  • 自然语言查询:让 AI 助手将问题转换为 SQL 或 MongoDB 查询

身份验证与安全

  • API 密钥支持:通过 Metabase API 密钥进行安全身份验证(推荐)

  • 基于会话的身份验证:备用的电子邮件/密码身份验证

  • 环境变量:通过 .env 文件进行安全凭据管理

AI 助手集成

  • Claude Desktop:与 Anthropic 的 Claude AI 原生集成

  • Cursor IDE:为 AI 辅助开发提供无缝集成

  • 任何 MCP 客户端:兼容所有模型上下文协议客户端

增强的性能与可靠性

  • 上下文感知日志记录:实时日志记录,AI 客户端可见调试、信息、警告和错误级别

  • 正确的错误处理:使用 FastMCP ToolError 异常以获得更好的错误消息和调试信息

  • 中间件堆栈:内置错误处理和日志记录中间件,确保生产环境的可靠性

  • 最佳实践:遵循最新的 FastMCP 模式,防止重复并保持配置整洁

  • 现代 Python:使用 Python 3.12+ 类型提示(| 语法)以提高类型安全性

快速入门

前置要求

  • Python 3.12+

  • 具有 API 访问权限的 Metabase 实例

  • uvxuv 包管理器

安装

选项 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 设置手动配置 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

执行原生 MongoDB 查询,并自动将 JSON 转换为聚合管道

execute_card

运行已保存的 Metabase 问题/卡片

卡片管理

工具

描述

list_cards

列出所有已保存的问题/卡片

create_card

使用 SQL 查询创建新的问题/卡片

create_mongodb_card

使用原生查询支持创建新的 MongoDB 问题/卡片

集合管理

工具

描述

list_collections

浏览所有集合

create_collection

创建新的集合以进行组织

传输方式

服务器支持多种传输方式:

  • STDIO(默认):用于 IDE 集成(Cursor、Claude Desktop)

  • SSE:用于 Web 应用程序的服务器发送事件

  • 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 历史

如果您觉得这个项目有用,请考虑给它一个 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