使用说明
元数据库MCP服务器-将AI助手连接到元数据库分析
高性能 模型上下文协议(MCP)服务器 为了 元数据库,使AI助手能够像 克劳德, 光标,以及其他MCP客户端,以便与您的Metabase实例无缝交互。通过人工智能驱动的数据库操作,使用自然语言查询数据库、执行SQL、管理仪表板和自动化分析工作流程。
非常适合: 数据分析师、开发人员和团队希望将AI助手与其Metabase商业智能平台集成,以实现自动化SQL查询、仪表板管理和数据探索。
主要特点
数据库操作
- 列出数据库:浏览所有已配置的元数据库
- 表发现:使用元数据和描述浏览表
- 现场检查:通过智能分页获取详细的字段/列信息
查询和分析
- SQL执行:使用参数支持和模板运行本机SQL查询
- MongoDB支持:为聚合管道执行带有自动JSON转换的原生MongoDB查询
- 卡片管理:执行、创建和管理元数据库问题/卡片(SQL和MongoDB)
- 馆藏组织:创建和管理收藏,以更好地组织
- 自然语言查询:让AI助手将问题转换为SQL或MongoDB查询
身份验证和安全
- API关键支持:通过Metabase API密钥进行安全身份验证(推荐)
- 基于会话的身份验证:替代电子邮件/密码身份验证
- 环境变量:通过以下方式进行安全的凭据管理
.env文件
AI助手集成
- 克劳德桌面版:与Anthropic的Claude AI的原生集成
- 光标IDE:无缝集成人工智能辅助开发
- 任何MCP客户端:与所有模型上下文协议客户端兼容
增强的性能和可靠性
- 上下文感知日志记录:实时日志记录,调试、信息、警告和错误级别对AI客户端可见
- 正确的错误处理:FastMCP
ToolError用于更好的错误消息和调试的异常 - 中间件堆栈:内置错误处理和日志中间件,提高生产可靠性
- 最佳实践:遵循最新的FastMCP模式,具有防重复和干净的配置
- 现代Python:使用Python 3.12+类型提示(
|语法)以提高类型安全性
快速开始
先决条件
- Python 3.12+
- 具有API访问权限的元数据库实例
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
配置
创建一个 .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
可选:元数据库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
光标集成
您可以通过编辑光标设置手动配置光标。
对于SSE运输:在使用Cursor之前,必须启动服务器:
uv run python server.py --sse
Claude桌面集成
选项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 |
在元数据库中列出所有已配置的数据库 |
list_tables |
使用元数据获取特定数据库中的所有表 |
get_table_fields |
检索表的字段/列信息 |
查询操作
| 工具 | 说明 |
|---|---|
execute_query |
使用参数支持执行本机SQL查询 |
execute_mongodb_query |
使用聚合管道的自动JSON转换执行本机MongoDB查询 |
execute_card |
运行已保存的元数据库问题/卡片 |
卡片管理
| 工具 | 说明 |
|---|---|
list_cards |
列出所有已保存的问题/卡片 |
create_card |
使用SQL查询创建新问题/卡片 |
create_mongodb_card |
使用本机查询支持创建新的MongoDB问题/卡片 |
收集管理
| 工具 | 说明 |
|---|---|
list_collections |
浏览所有收藏 |
create_collection |
为组织创建新集合 |
运输方式
服务器支持多种传输方式:
- 工作室 (默认):用于IDE集成(光标、克劳德桌面)
- 上海证券交易所:web应用程序的服务器发送事件
- 超文本传输协议: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许可证-有关详细信息,请参阅许可证文件
资源
关键词和主题
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
明星历史
如果你觉得这个项目有用,请考虑给它一颗星!它帮助其他人发现这个工具。
用例
- 自然语言数据库查询:让克劳德用简单的英语查询你的元数据库
- 自动生成报告:使用AI创建和管理元数据库卡和集合
- 数据探索:让AI助手帮助您从数据中发现见解
- SQL查询辅助:通过AI获取编写和优化SQL查询的帮助
- 仪表板管理:自动创建和组织元数据库仪表板
- 数据分析工作流:将AI驱动的分析集成到您的开发工作流程中
