元数据库 MCP 服务器
模型控制协议 (MCP) 服务器,使 AI 助手能够与 Metabase 数据库和操作进行交互。
![元数据库 MCP 服务器]
概述
Metabase MCP 服务器在 AI 助手和 Metabase 之间架起了一座桥梁,使 AI 模型能够:
列出并探索 Metabase 中配置的数据库
检索有关数据库架构、表和字段的详细元数据
可视化数据库中表之间的关系
列出并执行 Metabase 操作
通过安全 API 对 Metabase 数据执行操作
该服务器实现了[模型控制协议(MCP)]规范,使其与支持MCP工具的AI助手兼容。
Related MCP server: IoTDB MCP Server
特征
数据库探索:列出所有数据库并探索其模式
元数据检索:获取有关表、字段和关系的详细信息
关系可视化:生成数据库关系的可视化表示
操作管理:列出、查看详细信息并执行元数据库操作
安全 API 密钥处理:加密存储 API 密钥并防止泄露
Web 界面:通过用户友好的 Web 界面测试和调试功能
Docker 支持:使用 Docker 和 Docker Compose 轻松部署
先决条件
Metabase 实例(建议使用 v0.46.0 或更高版本)
具有适当权限的 Metabase API 密钥
Docker(用于容器化部署)
Python 3.10+(用于本地开发)
安装
使用 Docker(推荐)
克隆此存储库:
git clone https://github.com/yourusername/metabase-mcp.git cd metabase-mcp构建并运行 Docker 容器:
docker-compose up -d访问配置界面http://localhost:5001
手动安装
克隆此存储库:
git clone https://github.com/yourusername/metabase-mcp.git cd metabase-mcp安装依赖项:
pip install -r requirements.txt运行配置界面:
python -m src.server.web_interface访问配置界面http://localhost:5000
配置
在浏览器中打开 Web 界面
输入您的 Metabase URL(例如, http://localhost:3000 )
输入您的 Metabase API 密钥
点击“保存配置”并测试连接
获取元数据库 API 密钥
以管理员身份登录到您的 Metabase 实例
前往“设置”>“管理设置”>“API 密钥”
创建具有适当权限的新 API 密钥
复制生成的密钥以在 MCP 服务器中使用
用法
运行 MCP 服务器
配置完成后,即可运行MCP服务器:
可用工具
MCP服务器为AI助手提供以下工具:
list_databases :列出 Metabase 中配置的所有数据库
get_database_metadata :获取特定数据库的详细元数据
db_overview :获取数据库中所有表的高级概述
table_detail :获取特定表的详细信息
visualize_database_relationships :生成数据库关系的可视化表示
run_database_query :对数据库执行 SQL 查询
list_actions :列出 Metabase 中配置的所有操作
get_action_details :获取有关特定操作的详细信息
执行带有参数的 Metabase 操作
通过 Web 界面测试工具
Web 界面为每个工具提供了一个测试区域:
列出数据库:查看 Metabase 中配置的所有数据库
获取数据库元数据:查看数据库的详细架构信息
DB 概览:查看数据库中所有表的简明列表
表详细信息:查看特定表的详细信息
可视化数据库关系:生成表关系的可视化表示
运行查询:对数据库执行 SQL 查询
列出操作:查看 Metabase 中配置的所有操作
获取操作详细信息:查看有关特定操作的详细信息
执行操作:测试执行带参数的操作
安全注意事项
API 密钥以静态加密方式存储
Web 界面从不以纯文本形式显示 API 密钥
当配置了安全的 Metabase URL 时,所有 API 请求都使用 HTTPS
在生产环境中,服务器应该部署在安全代理后面
发展
项目结构
添加新工具
要添加新工具:
在
src/tools/中实现工具功能在
src/server/mcp_server.py中注册该工具在
templates/config.html中添加测试接口(可选)在
src/server/web_interface.py中添加路由(如果添加测试接口)
故障排除
常见问题
连接失败:确保您的 Metabase URL 正确且可访问
身份验证错误:验证您的 API 密钥是否具有必要的权限
Docker 网络问题:使用 Docker 时,确保正确的网络配置
日志
检查日志以获取详细的错误信息:
贡献
欢迎贡献代码!欢迎提交 Pull 请求。