metabase-mcp
Metabase MCP 服务器 - 将 AI 助手连接到您的 Metabase 分析平台
这是一个用于 Metabase 的高性能 模型上下文协议 (MCP) 服务器,使 Claude、Cursor 等 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 实例
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 设置手动配置 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 查询 |
| 执行原生 MongoDB 查询,并自动将 JSON 转换为聚合管道 |
| 运行已保存的 Metabase 问题/卡片 |
卡片管理
工具 | 描述 |
| 列出所有已保存的问题/卡片 |
| 使用 SQL 查询创建新的问题/卡片 |
| 使用原生查询支持创建新的 MongoDB 问题/卡片 |
集合管理
工具 | 描述 |
| 浏览所有集合 |
| 创建新的集合以进行组织 |
传输方式
服务器支持多种传输方式:
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 驱动的分析集成到您的开发工作流中
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