版本: 1.0.1
作者: Jericho Sequitin (@jerichosequitin)
这是一个高性能的模型上下文协议服务器,用于与Metabase分析平台集成AI。它具有智能缓存、响应优化和全面的数据访问工具。
作为MCP捆绑包(MCPB)提供给Claude桌面用户。
metabase-mcp.mcpb.mcpb文件进行安装按照下面本地开发设置部分中的标准MCP服务器安装过程操作。
list、retrieve、search、execute和export工具服务器提供了以下优化工具供AI助手使用:
list:获取单一资源类型的所有记录,具有高度优化的响应
cards、dashboards、tables、databases、collectionsretrieve:根据ID获取特定项目的详细信息
card、dashboard、table、database、collection、fieldsearch:使用原生搜索API跨所有Metabase项目进行统一搜索
execute:统一命令用于执行SQL查询或保存卡片(2K行限制)
card_parameters数组过滤卡片结果export:统一命令用于导出大数据集(最多1M行)
card_parameters数组过滤卡片结果clear_cache:具有细粒度控制的内部缓存清除
cards、dashboards、tables、databases、collections、fieldscards-list、dashboards-list、tables-list、databases-list、collections-listall、all-individual、all-lists// 列出所有卡片
list({ model: "cards" })
// 获取详细的卡片信息
retrieve({ model: "card", ids: [1, 2, -3] })
// 搜索仪表板
search({ query: "sales", models: ["dashboard"] })
// 执行SQL查询
execute({
database_id: 1,
query: "SELECT * FROM users LIMIT 100"
})
// 导出大数据集
export({
database_id: 1,
query: "SELECT * FROM large_table",
format: "csv"
})
API密钥(推荐):
METABASE_URL=https://your-metabase-instance.com
METABASE_API_KEY=your_api_key
电子邮件/密码:
METABASE_URL=https://your-metabase-instance.com
METABASE_USER_EMAIL=your_email@example.com
METABASE_PASSWORD=your_password
可选设置:
EXPORT_DIRECTORY=~/Downloads/Metabase # 或 ${DOWNLOADS}/Metabase
LOG_LEVEL=info
# 克隆并构建
git clone https://github.com/jerichosequitin/metabase-mcp.git
cd metabase-mcp
npm install
npm run build
创建一个.env文件:
# 必需
METABASE_URL=https://your-metabase-instance.com
# 选择认证方法
METABASE_API_KEY=your_api_key # 推荐
# 或
# METABASE_USER_EMAIL=your_email@example.com
# METABASE_PASSWORD=your_password
# 可选
EXPORT_DIRECTORY=~/Downloads/Metabase # 或 ${DOWNLOADS}/Metabase
LOG_LEVEL=info
CACHE_TTL_MS=600000 # 默认10分钟
REQUEST_TIMEOUT_MS=600000 # 默认10分钟
要与Claude桌面集成,您需要在Claude的配置文件中配置MCP服务器。
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%/Claude/claude_desktop_config.json{
"mcpServers": {
"metabase-mcp": {
"command": "/Users/your-username/path/to/metabase-mcp/build/src/index.js",
"env": {
"METABASE_URL": "https://your-metabase-instance.com",
"METABASE_API_KEY": "your_api_key_here",
"LOG_LEVEL": "info",
"CACHE_TTL_MS": "600000",
"EXPORT_DIRECTORY": "/path/to/your/export/directory"
}
}
}
}
/Users/username/Documents/metabase-mcp/build/src/index.js)your-username**为您实际的用户名path/to/metabase-mcp**为您克隆的仓库的实际路径build/src/index.js的路径正确且文件存在npm run build执行带有过滤器的保存卡片时,使用card_parameters数组:
execute({
card_id: 42,
card_parameters: [
{
"id": "param-uuid",
"slug": "start_date",
"target": ["dimension", ["template-tag", "start_date"]],
"type": "date/all-options",
"value": "2024-01-01~2024-12-31"
}
]
})
通过检索卡片详情获取参数结构。
// 带分页的列表
list({ model: "cards", limit: 100, offset: 0 })
// 大型数据库表
retrieve({ model: "database", ids: [1], table_limit: 20 })
使用MCP Inspector进行开发:
npm run inspector
# 构建和测试
docker build -t metabase-mcp .
docker run -e METABASE_URL=https://metabase.example.com \
-e METABASE_API_KEY=your_api_key \
metabase-mcp
注意:Docker主要用于开发/测试。
# 运行测试
npm test
# 覆盖报告
npm run test:coverage
# 开发工具
npm run inspector # MCP Inspector用于调试
# 为分发构建
npm run mcpb:build
生成metabase-mcp-{version}.mcpb(例如,metabase-m-1.0.1.mcpb),准备上传到GitHub Releases。
本项目采用MIT许可证。