使用说明
📊 元数据库MCP服务器
📚 目录
- 这个工具是关于什么的?
- 视频演练
- 架构图
- 入门指南
- 配置选项
- 获取您的Metabase API密钥
- DXT文件支持
- 如何创建自己的DXT文件
- 远程部署
- 使用MCP检查器进行调试
- 可用工具
- 示例提示尝试
- 联系我们
- 许可证
😊 这个工具是关于什么的?
元数据库MCP服务器 是一个后端集成层,连接您的 元数据库 实例与 AI助手 使用 模型上下文协议(MCP)。这允许业务领导者、产品经理和分析师使用以下工具与仪表板和图表等商业智能资产进行交互 自然语言--通过任何MCP客户端(例如Claude Desktop)。
您可以:
- 你可以问一个问题,并立即获得洞察力。
- 通过描述您想要的内容来生成仪表板和图表。
- 通过简单的说明管理用户访问和数据库连接。
这个项目使Metabase不仅仅是一个仪表板工具,而且是一个对话式的智能商务助理。
🎥 视频演练
观看此视频,了解Metabase MCP服务器的运行情况:
📐 架构图
🚀 入门指南
1.设置元数据库(如果您还没有)
遵循Metabase官方安装指南: 元数据库文档
2.安装uv包管理器
安装 uv 包括Python和包管理:
窗户:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
或者通过软件包管理器安装:
# macOS
brew install uv
# Windows (via Scoop)
scoop install uv
# Windows (via Chocolatey)
choco install uv
有关紫外线安装和使用的更多信息,请访问官方文档: https://docs.astral.sh/uv/getting-started/installation/
3.克隆或下载存储库
你需要把这个工具放到你的电脑上。您可以手动下载或使用Git。 打开计算机的终端(Mac)或命令提示符(Windows)。 导航到解压缩文件或要克隆项目的文件夹:
# Example (replace with your actual path):
cd ~/Downloads/metabase-mcp-server-dev
选项1:下载ZIP
-
点击绿色 “代码” 按钮
-
选择 “下载ZIP”
-
将下载的文件解压缩到类似您的位置 文件 文件夹
选项2:使用Git 如果您熟悉Git,请在终端中运行以下命令:
git clone git@github.com:amiralamox/mcp-metabase.git
cd mcp-metabase
4.安装依赖项
此命令将自动执行以下操作:
- 安装所需的Python版本(如果尚未可用)
- 为项目创建虚拟环境
- 安装所有必要的包和依赖项
uv sync
5.配置您的凭据
您有三个选项来配置MCP服务器的元数据库凭据:
选项1:使用 .env 文件(推荐)
创建一个 .env 项目根目录中的文件:
METABASE_URL=https://metabase.shippypro.admin
METABASE_API_KEY=YOUR_API_KEY
TRANSPORT=streamable-http
LOG_LEVEL=DEBUG
选项2:使用命令行参数 直接通过命令行传递配置:
uv run src/metabase_mcp_server.py --metabase-url http://localhost:3000 --metabase-api-key "YOUR_API_KEY" --port 3200 --host localhost --transport streamable-http --log-level DEBUG
选项3:在MCP客户端配置中使用环境变量
直接在MCP客户端中配置,无需 .env 文件(见下面的示例)。
{
"mcpServers": {
"metabase": {
"type": "stdio"
"command": "uv",
"args": ["run", "C:\\Users\\YourName\\Projects\\metabase-mcp-server\\src\\metabase_mcp_server.py"],
"env": {
METABASE_URL=http://localhost:3000
METABASE_API_KEY=mb_xxx_your_key
PORT=3200
HOST=localhost
TRANSPORT=streamable-http
LOG_LEVEL=DEBUG
}
}
}
}
6.连接到您的MCP客户端
选择您喜欢的MCP客户端,如Claude Desktop应用程序、Claude Code、Cursor、Windsurf等,并在各自的配置文件中添加Metabase MCP服务器。所有MCP客户端都遵循类似的配置模式。
配置示例
对于克劳德桌面/克劳德代码(推荐):
{
"mcpServers": {
"metabase": {
"type": "stdio",
"command": "uv",
"args": [
"run",
"--directory",
"/path/to/your/metabase-mcp-server",
"src/metabase_mcp_server.py",
"--transport",
"stdio"
]
}
}
}
替换 /path/to/your/metabase-mcp-server 使用项目目录的实际路径:
- 窗户:
C:\\Users\\YourName\\Projects\\metabase-mcp-server - macOS/Linux:
/Users/YourName/Projects/metabase-mcp-server
对于其他MCP客户端(stdio传输):
窗户:
{
"mcpServers": {
"metabase": {
"type": "stdio",
"command": "uv",
"args": ["run", "C:\\Users\\YourName\\Projects\\metabase-mcp-server\\src\\metabase_mcp_server.py"]
}
}
}
雨衣:
{
"mcpServers": {
"metabase": {
"type": "stdio",
"command": "uv",
"args": ["run", "/Users/YourName/Projects/metabase-mcp-server/src/metabase_mcp_server.py"]
}
}
}
主要区别:
- Windows使用 反斜杠
\\在路径 - macOS/Linux使用 正斜杠
/在路径 - Claude配置使用
--directory用于更好地处理项目路径的标志 - 确保根据您的操作系统匹配正确的格式,以避免错误
重要提示:
- 替换
FULL_PATH带有项目目录的实际绝对路径 - 在保存配置更改之后, 重新启动MCP客户端 应用新设置
- 对于Cursor中的项目特定工具,请创建
.cursor/mcp.json项目目录中的文件 - 对于Cursor中的全局工具,创建
~/.cursor/mcp.json主目录中的文件
对于可流式传输的http(建议用于远程MCP服务器):
{
"mcpServers": {
"metabase": {
"type": "streamable-http",
"url": "http://localhost:3200/mcp/"
}
}
}
兼容的MCP客户端
点击任何客户访问其官方MCP设置文档:
| 客户 | MCP官方文件 |
|---|---|
| Anthropic为Claude Desktop提供的官方MCP指南 | |
| 官方Claude Code MCP设置文档 | |
| Cursor的官方MCP配置指南 | |
| Windsurf官方MCP设置文档 | |
| Cline的官方MCP快速入门指南 | |
| VS代码副本MCP服务器配置 |
添加配置后,MCP服务器应在MCP客户端中可见。
🔧 配置选项
Metabase MCP Server支持通过环境变量、命令行参数或两者的组合进行灵活配置。
环境变量
| 变量 | 描述 | 默认值 | 示例 |
|---|---|---|---|
METABASE_URL |
您的元数据库实例URL | 必填 | http://127.0.0.1:3000 |
METABASE_API_KEY |
您的Metabase API密钥 | 必需 | mb_xxx_your_api_key |
TRANSPORT |
传输协议 | streamable-http |
stdio, streamable-http |
HOST |
HTTP传输主机 | localhost |
0.0.0.0, 127.0.0.1 |
PORT |
HTTP传输端口 | 3200 |
8080, 9000 |
LOG_LEVEL |
日志记录级别 | INFO |
DEBUG, WARNING, ERROR |
命令行参数
| 参数 | 描述 | 默认值 |
|---|---|---|
--metabase-url |
元数据库实例URL | 必填 |
--metabase-api-key |
元数据库API密钥 | 必需 |
--transport |
传输协议 | streamable-http |
--host |
HTTP传输主机 | localhost |
--port |
HTTP传输端口 | 3200 |
--log-level |
记录详细程度 | INFO |
传输协议
| 协议 | 描述 | 用例 |
|---|---|---|
| 标准 | 标准输入/输出通信 | 最适合本地集成(Claude Desktop、Cursor等) |
| 可流式传输http | 基于HTTP的流协议 | 非常适合远程部署和基于web的集成 |
| SSE | 服务器通过HTTP发送事件 | ⚠️ 弃用-不建议用于新设置 |
配置优先
配置值按以下优先级顺序(从高到低)应用:
- 命令行参数 (覆盖所有内容)
- 环境变量 (覆盖默认值)
- 默认值
完整的命令示例
uv run src/metabase_mcp_server.py --transport streamable-http --host localhost --port 3200 --metabase-url http://127.0.0.1:3000 --metabase-api-key mb_xxx_your_key
注: 运行服务器时不需要传递每个参数。但是,您必须提供元数据库URL和API密钥。任何未指定的参数都将使用如上所示的默认值。
🔑 获取您的Metabase API密钥
获取Metabase API密钥:
- 登录Metabase实例
- 点击您的个人资料图片 (右上角)
- 选择“帐户设置”
- 导航到“API密钥”选项卡
- 单击“创建API密钥”
- 给你的钥匙起一个描述性的名字 (例如,“MCP服务器密钥”)
- 复制生成的密钥 (开始于
mb_)
⚠️ 重要提示: 安全地存储API密钥,永远不要将其提交到版本控制。该密钥提供对Metabase实例的完全访问权限。
📂 DXT文件支持
您不再需要经历克隆存储库和设置环境的步骤。只需按照以下步骤安装 元数据库MCP服务器 在你的 Cloude桌面应用程序:
-
下载DXT文件
请查看以下链接以下载最新版本 DXT文件 直接:
下载DXT文件 -
打开Cloude桌面应用程序
一旦你有了文件,打开 Cloude桌面应用程序 在您的系统上。 -
导航到扩展设置
在 Cloude桌面应用程序:- 首选 文件 → 设置 → 扩展
- 然后单击 高级设置.
-
选择DXT文件
在 高级设置 部分,单击 选择文件,选择已下载的 DXT文件. -
输入所需的详细信息
挑选之后 DXT文件,将出现一个提示,要求您填写所需的详细信息:- 元数据库URL:输入元数据库服务器URL。
- API密钥:添加相关的API密钥进行身份验证。
-
完成设置
输入必要的详细信息后,单击 保存 以应用该配置。
就是这样!这 元数据库MCP服务器 现在已安装并准备在您的 Cloude桌面应用程序.
如何创建自己的DXT文件
如果你想创建自己的 DXT文件,请访问官方指南:
创建自己的DXT文件
🚀 远程部署
对于生产使用或团队协作,您可以远程部署元数据库MCP服务器。我们在Codenunut内部使用这种方法。
Docker部署
我们包含了Docker配置文件,使远程部署变得简单。
Docker快速入门
# Build the Docker image
docker build -t metabase-mcp-server .
# Run with environment variables
docker run -d \
-p 3200:3200 \
-e METABASE_URL="http://your-metabase-instance.com" \
-e METABASE_API_KEY="mb_xxx_your_api_key" \
metabase-mcp-server
Docker Compose(推荐)
version: '3.8'
services:
metabase-mcp:
build: .
ports:
- "3200:3200"
environment:
- METABASE_URL=http://your-metabase-instance.com
- METABASE_API_KEY=mb_xxx_your_api_key
##- PORT=3200
##- HOST=localhost
##- TRANSPORT=streamable-http
##- LOG_LEVEL=DEBUG
restart: unless-stopped
连接到远程MCP服务器
部署后,配置MCP客户端以连接到远程服务器:
{
"mcpServers": {
"metabase": {
"type": "streamable-http",
"url": "http://server-ip:3200/mcp/"
}
}
}
部署选项
- 云提供商: AWS ECS、Google Cloud Run、Azure容器实例
- VPS/专用服务器: DigitalOcean、Linode、Vultr
- 集装箱平台: Kubernetes、Docker Swarm
- 平台即服务: 铁路,渲染,Fly.io
安全考虑
- 在生产环境中使用HTTPS
- 实施适当的防火墙规则
- 考虑使用VPN访问敏感业务数据
- 定期旋转API键
- 监控访问日志
需要部署方面的帮助吗?
CodeWalnut的团队提供部署和咨询服务。 联系我们 用于企业级设置和支持。
🔍 使用MCP检查器进行调试
要调试和测试元数据库MCP服务器设置,您可以使用官方的MCP检查器工具。
先决条件
首先,如果你还没有安装Node.js:
- 下载地址: nodejs.org
- 或者通过软件包管理器安装:
# macOS brew install node # Windows (via Chocolatey) choco install nodejs # Windows (via Scoop) scoop install nodejs
安装并运行MCP检查器
# Install MCP Inspector globally
npm install -g @modelcontextprotocol/inspector
# Run the inspector with your Metabase MCP Server
npx @modelcontextprotocol/inspector uv run FULL_PATH/metabase-mcp-server/src/metabase_mcp_server.py
使用MCP检查器
MCP检查员提供:
- 实时工具测试 -直接从web界面执行MCP工具
- 请求/响应监控 -准确查看正在发送和接收的数据
- 调试错误 -快速识别配置或API问题
- 架构验证 -验证您的工具是否定义正确
运行后,打开浏览器 http://localhost:5173 访问检查器界面。
常见调试场景
- 连接问题 -验证您的元数据库URL和API密钥
- 权限错误 -检查您的API密钥是否具有所需的权限
🔧 可用工具
| 功能 | 说明 |
|---|---|
| 收款操作 | |
get_metabase_collection |
按ID获取收藏 |
create_metabase_collection |
创建新收藏 |
update_metabase_collection |
更新集合元数据 |
delete_metabase_collection |
删除收藏 |
| 图表(卡片)操作 | |
get_metabase_cards |
列出所有图表 |
get_card_query_results |
从图表查询中获取结果 |
create_metabase_card |
创建新图表 |
update_metabase_card |
更新现有图表 |
delete_metabase_card |
删除图表 |
| 仪表板操作 | |
get_metabase_dashboards |
列出所有仪表板 |
get_dashboard_by_id |
按ID获取仪表板 |
get_dashboard_cards |
在仪表板中获取卡片 |
get_dashboard_items |
获取所有仪表板项目 |
create_metabase_dashboard |
创建仪表板 |
update_metabase_dashboard |
更新仪表板 |
delete_metabase_dashboard |
删除仪表板 |
copy_metabase_dashboard |
创建现有仪表板的副本 |
| 数据库操作 | |
get_metabase_databases |
列出数据库 |
create_metabase_database |
创建新的数据库连接 |
update_metabase_database |
更新数据库连接 |
delete_metabase_database |
删除数据库连接 |
| 用户运营 | |
get_metabase_users |
列出所有用户 |
get_metabase_current_user |
获取当前用户详细信息 |
create_metabase_user |
创建新用户 |
update_metabase_user |
更新用户信息 |
delete_metabase_user |
删除用户 |
| 组操作 | |
get_metabase_groups |
列出用户组 |
create_metabase_group |
创建用户组 |
delete_metabase_group |
删除用户组 |
| SQL操作 | |
execute_sql_query |
执行本机SQL查询 |
🧪 示例提示尝试
- 创建一个名为“航班概览”的仪表板,其中包含一个按目的地城市显示航班的条形图。
- 运行SQL:
SELECT origin, destination, COUNT(*) FROM flights GROUP BY origin, destination LIMIT 10. - 创建一张卡片,按地区分组显示上个月的总预订量。
- 删除名为“放弃的查询”的图表。
- 更新仪表板“销售KPI”,以包含新的收入卡。
- 显示“管理员”组中的所有用户。
- 创建一个名为“财务分析师”的新小组。
- 连接到Supabase数据库并列出所有表。
🌐 联系我们
通过我们的社区渠道保持联系并获得支持:
🏢 官方链接
- 🌍 网站: codewalnut.com
- 📧 电子邮件: nattu@codewalnut.com
- 📖 博客:
📱 社交媒体
- 💼 领英: 代码胡桃木
- 📺 油管 CodeWalnut频道
- 🐦 推特/X: @胡桃木
- 📷 Instagram: @胡桃木
💬 社区支持
- 📧 通讯: 订阅CodeWalnut时事通讯 (向下滚动以找到电子邮件订阅选项)
- 🐙 github: 阿米拉莫/mcp代谢库
🤝 专业服务
- 咨询: 自定义元数据库集成和AI解决方案
- 培训: MCP和商业智能研讨会
- 技术支持: 企业级支持和维护
📢 关注我们,了解新MCP服务器、人工智能集成和商业智能工具的更新!
📜 许可证
该项目根据 Apache许可证2.0.
您可以在 LICENSE 文件。