这是一个全面的模型上下文协议(MCP)服务器,用于与 Metabase 集成,专为企业和开发者设计,旨在通过实时分析和商业智能来增强他们的AI助手。
由EaseCloud 技术开发和维护——您值得信赖的云原生、AI驱动和数据基础设施解决方案合作伙伴。
这是一个基于TypeScript的MCP服务器,实现了与Metabase API的完全集成。它允许AI助手与Metabase进行交互,提供对以下内容的全面访问:
此MCP服务器兼容:
注意:某些高级功能可能需要更新的Metabase版本。为了最佳兼容性,我们建议使用Metabase v0.48.0或更高版本。
在EaseCloud,我们帮助公司现代化其数据平台并解锁AI的力量。 Metabase是一款领先的开源BI工具——但将其与像Claude、Cursor和Windsurf这样的AI助手连接起来需要复杂的API工作。
这个MCP服务器消除了这一障碍,提供了超过70种现成的工具,涵盖了从仪表板到查询、权限到监控的一切。
我们的目标是使企业分析能够在自然语言中访问,同时展示我们在集成、自动化和云解决方案方面的专业知识。
metabase://URI访问Metabase资源metabase://dashboard/{id} - 访问仪表板详情metabase://card/{id} - 访问问题/卡片详情metabase://database/{id} - 访问数据库信息metabase://collection/{id} - 访问集合详情metabase://user/{id} - 访问用户信息metabase://table/{id} - 访问表元数据metabase://field/{id} - 访问字段信息list_dashboards - 列出Metabase中的所有仪表板create_dashboard - 创建新的仪表板update_dashboard - 更新现有的仪表板delete_dashboard - 删除/归档仪表板get_dashboard_cards - 获取仪表板中的所有卡片list_cards - 列出Metabase中的所有问题/卡片create_card - 创建新的问题/卡片update_card- 更新现有问题/卡片delete_card - 删除/归档问题/卡片execute_card - 执行卡片并获取结果list_databases - 列出Metabase中的所有数据库execute_query - 对数据库执行SQL查询list_collections - 列出所有集合create_collection - 创建新的集合update_collection - 更新现有的集合delete_collection - 删除集合get_collection_items - 获取集合中的所有项目move_to_collection - 在集合之间移动项目list_users - 列出所有用户create_user - 创建新用户update_user - 更新用户详情delete_user - 停用用户list_permissions - 列出权限组和权限list_permission_groups - 列出所有权限组create_permission_group - 创建新的权限组update_permission_group - 更新权限组delete_permission_group - 删除权限组add_user_to_group - 将用户添加到权限组remove_user_from_group - 从权限组移除用户export_card_results - 将卡片结果导出为CSV/JSON/Excelexport_dashboard_data - 将仪表板数据导出为各种格式bookmark_card - 书签卡片unbookmark_card - 移除卡片书签bookmark_dashboard - 书签仪表板unbookmark_dashboard - 移除仪表板书签list_bookmarked_items - 列出所有已书签的项目create_public_link - 创建公共分享链接disable_public_link - 禁用公共分享get_public_link - 获取公共链接信息get_database_schema - 获取数据库模式信息get_database_tables - 获取数据库中的所有表get_table_metadata - 获取表元数据get_table_fields - 获取表中的所有字段get_field_values - 获取字段值get_field_summary - 获取字段汇总统计analyze_field_values - 分析字段值search_content - 搜索所有Metabase内容get_recent_items - 获取最近查看的项目get_popular_items - 获取最受欢迎的卡片和仪表板add_card_to_dashboard - 添加卡片到仪表板并定位remove_card_from_dashboard - 从仪表板移除卡片update_dashboard_card - 更新卡片位置、大小和设置get_dashboard_parameters - 获取仪表板参数update_dashboard_parameters - 更新仪表板参数create_dashboard_subscription - 创建仪表板订阅/警报list_dashboard_subscriptions - 列出所有仪表板订阅update_dashboard_subscription - 更新订阅设置delete_dashboard_subscription - 删除仪表板订阅get_user_activity - 获取用户活动和使用统计get_content_usage - 获取卡片和仪表板的使用统计get_system_usage_stats - 获取系统范围内的使用统计get_system_health - 获取系统健康状态create_database_connection - 创建新的数据库连接test_database_connection - 测试数据库连接sync_database_schema - 同步数据库模式元数据get_database_sync_status - 获取数据库模式同步状态get_metabase_settings - 获取Metabase实例设置update_metabase_settings - 更新实例设置在运行服务器之前,您需要设置身份验证的环境变量。服务器支持两种方法:
API密钥(首选):
METABASE_URL:您的Metabase实例的URL(例如,https://your-metabase-instance.com)。METABASE_API_KEY:您的Metabase API密钥。用户名/密码(备用):
METABASE_URL:您的Metabase实例的URL。METABASE_USERNAME:您的Metabase用户名。METABASE_PASSWORD:您的Metabase密码。服务器会首先检查METABASE_API_KEY。如果设置了,则使用API密钥认证。如果未设置METABASE_API_KEY,则服务器会回退到使用METABASE_USERNAME和METABASE_PASSWORD。您必须至少提供一种方法的凭据。
示例设置:
使用API密钥:
# 必需的环境变量
export METABASE_URL=https://your-metabase-instance.com
export METABASE_API_KEY=your_metabase_api_key
或者,使用用户名/密码:
# 必需的环境变量
export METABASE_URL=https://your-metabase-instance.com
export METABASE_USERNAME=your_username
export METABASE_PASSWORD=your_password
您可以将这些环境变量设置在您的shell配置文件中,或使用dotenv之类的包使用.env文件。
安装依赖项:
npm install
构建服务器:
npm run build
开发时自动重建:
npm run watch
最简单的方法是使用npx运行服务器:
# 设置环境变量
export METABASE_URL=https://your-metabase-instance.com
export METABASE_API_KEY=your_metabase_api_key
# 运行服务器
npx @easecloudio/mcp-metabase-server
如果您本地或全局安装了该包:
# 全局安装
npm install -g @easecloudio/mcp-metabase-server
# 设置环境变量
export METABASE_URL=https://your-metabase-instance.com
export METABASE_API_KEY=your_metabase_api_key
# 运行服务器
mcp-metabase-server
或者从构建的项目运行:
# 克隆并构建项目
git clone https://github.com/easecloudio/mcp-metabase-server.git
cd mcp-metabase-server
npm install
npm run build
# 设置环境变量
export METABASE_URL=https://your-metabase-instance.com
export METABASE_API_KEY=your_metabase_api_key
# 运行服务器
node dist/index.js
您可以使用Docker运行服务器:
# 构建Docker镜像
docker build -t mcp-metabase-server .
# 运行容器
docker run -it --rm \
-e METABASE_URL=https://your-metabase-instance.com \
-e METABASE_API_KEY=your_metabase_api_key \
mcp-metabase-server
或者使用docker-compose:
# docker-compose.yml
version: "3.8"
services:
mcp-metabase-server:
build: .
environment:
- METABASE_URL=https://your-metabase-instance.com
- METABASE_API_KEY=your_metabase_api_key
stdin_open: true
tty: true
然后运行:
docker-compose up
要与Claude Desktop一起使用,请添加服务器配置:
在MacOS上:~/Library/Application Support/Claude/claude_desktop_config.json
在Windows上:%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"metabase-server": {
"command": "npx",
"args": ["@easecloudio/mcp-metabase-server"],
"env": {
"METABASE_URL": "https://your-metabase-instance.com",
"METABASE_API_KEY": "your_metabase_api_key"
}
}
}
}
{
"mcpServers": {
"metabase-server": {
"command": "node",
"args": ["/path/to/metabase-server/dist/index.js"],
"env": {
"METABASE_URL": "https://your-metabase-instance.com",
"METABASE_API_KEY": "your_metabase_api_key"
}
}
}
}
{
"mcpServers": {
"metabase-server": {
"command": "npx",
"args": ["@easecloudio/mcp-metabase-server"],
"env": {
"METABASE_URL": "https://your-metabase-instance.com",
"METABASE_USERNAME": "your_username",
"METABASE_PASSWORD": "your_password"
}
}
}
}
服务器支持以下环境变量:
由于MCP服务器通过stdio通信,调试可能会很困难。我们建议使用MCP Inspector,它作为一个包脚本可用:
npm run inspector
Inspector将提供一个URL以在浏览器中访问调试工具。
按照“配置”部分所述设置环境变量后,您可以手动测试服务器的身份验证。MCP Inspector(npm run inspector)是一个有用的工具,用于向服务器发送请求。
METABASE_URL和METABASE_API_KEY环境变量,使用您的Metabase实例URL和有效的API密钥。METABASE_USERNAME和METABASE_PASSWORD未设置或留空,因为API密钥应优先。npm run build && node build/index.js(或使用您选择的方法运行服务器,如通过Claude Desktop配置)。tools/call,传递{"name": "list_dashboards"}METABASE_API_KEY环境变量未设置。METABASE_URL、METABASE_USERNAME和METABASE_PASSWORD,使用您的Metabase实例的有效凭据。list_dashboards工具。METABASE_URL和一个无效的METABASE_API_KEY。确保METABASE_USERNAME和METABASE_PASSWORD变量未设置。list_dashboards)。工具调用应失败,服务器日志可能显示来自Metabase的认证错误(例如,“Metabase API错误:无效X-API-Key”)。METABASE_API_KEY未设置。设置METABASE_URL和无效的METABASE_USERNAME/METABASE_PASSWORD。METABASE_API_KEY、METABASE_USERNAME和METABASE_PASSWORD。仅设置METABASE_URL。EaseCloud是一家专注于云咨询和解决方案的公司,专门从事:
我们构建这个项目是为了贡献到开放源码的MCP生态系统,同时展示我们在数据驱动决策系统方面的深厚专业知识。
👉 如果您的团队正在大规模采用Metabase或希望将AI与BI堆栈集成,请联系我们——我们为企业提供咨询服务、定制化和托管支持。
💡 与EaseCloud合作 需要帮助部署、定制或扩展生产中的Metabase? 我们为BI、AI和云基础设施提供端到端支持。
📧 联系我们:support@easecloud.io 🌐 了解更多:https://easecloud.io
该项目根据MIT许可证发布——请参阅