返回市场
元数据库

元数据库

作者:sazboxai6 星标更新:2025-05-12

项目介绍

Metabase MCP 服务器

一个模型控制协议(MCP)服务器,使AI助手能够与Metabase数据库和动作进行交互。

![Metabase MCP 服务器]

概述

Metabase MCP 服务器在AI助手和Metabase之间提供了一个桥梁,使得AI模型可以:

  • 列出并探索配置在Metabase中的数据库
  • 获取关于数据库模式、表和字段的详细元数据
  • 可视化数据库中表之间的关系
  • 列出并执行Metabase动作
  • 通过安全API对Metabase数据执行操作

该服务器实现了[模型控制协议(MCP)]规范,使其与支持MCP工具的AI助手兼容。

特性

  • 数据库探索:列出所有数据库并探索其模式
  • 元数据检索:获取关于表、字段和关系的详细信息
  • 关系可视化:生成数据库关系的可视化表示
  • 动作管理:列出、查看详细信息并执行Metabase动作
  • 安全API密钥处理:加密存储API密钥并防止暴露
  • Web界面:通过用户友好的Web界面测试和调试功能
  • Docker支持:使用Docker和Docker Compose轻松部署

预备条件

  • Metabase实例(推荐版本v0.46.0或更高)
  • 具有适当权限的Metabase API密钥
  • Docker(用于容器化部署)
  • Python 3.10+(用于本地开发)

安装

使用Docker(推荐)

  1. 克隆此仓库:

    git clone https://github.com/yourusername/metabase-mcp.git
    cd metabase-mcp
    
  2. 构建并运行Docker容器:

    docker-compose up -d
    
  3. http://localhost:5001访问配置界面

手动安装

  1. 克隆此仓库:

    git clone https://github.com/yourusername/metabase-mcp.git
    cd metabase-mcp
    
  2. 安装依赖项:

    pip install -r requirements.txt
    
  3. 运行配置界面:

    python -m src.server.web_interface
    
  4. http://localhost:5000访问配置界面

配置

  1. 在浏览器中打开Web界面
  2. 输入您的Metabase URL(例如,http://localhost:3000)
  3. 输入您的Metabase API密钥
  4. 点击“保存配置”并测试连接

获取Metabase API密钥

  1. 以管理员身份登录到您的Metabase实例
  2. 转到设置 > 管理员设置 > API密钥
  3. 创建具有适当权限的新API密钥
  4. 复制生成的密钥以在MCP服务器中使用

使用

运行MCP服务器

配置完成后,您可以运行MCP服务器:

# 使用Docker
docker run -p 5001:5000 metabase-mcp

# 手动
python -m src.server.mcp_server

可用工具

MCP服务器向AI助手提供了以下工具:

  1. list_databases:列出配置在Metabase中的所有数据库
  2. get_database_metadata:获取特定数据库的详细元数据
  3. db_overview:获取数据库中所有表的高层次概述
  4. table_detail:获取特定表的详细信息
  5. visualize_database_relationships:生成数据库关系的可视化表示
  6. run_database_query:针对数据库执行SQL查询
  7. list_actions:列出配置在Metabase中的所有动作
  8. get_action_details:获取特定动作的详细信息
  9. execute_action:执行带有参数的Metabase动作

通过Web界面测试工具

Web界面为每个工具提供了一个测试区域:

  1. List Databases:查看配置在Metabase中的所有数据库
  2. Get Database Metadata:查看数据库的详细模式信息
  3. DB Overview:查看数据库中所有表的简洁列表
  4. Table Detail:查看特定表的详细信息
  5. Visualize Database Relationships:生成表关系的可视化表示
  6. Run Query:针对数据库执行SQL查询
  7. List Actions:查看配置在Metabase中的所有动作
  8. Get Action Details:查看特定动作的详细信息
  9. Execute Action:测试执行带有参数的动作

安全注意事项

  • API密钥在静止状态下被加密存储
  • Web界面从不以明文形式显示API密钥
  • 当配置了安全的Metabase URL时,所有API请求都使用HTTPS
  • 在生产环境中,服务器应部署在安全代理之后

开发

项目结构

metabase-mcp/
├── src/
│   ├── api/            # Metabase API客户端
│   ├── config/         # 配置管理
│   ├── server/         # MCP和Web服务器
│   └── tools/          # 工具实现
├── templates/          # Web界面模板
├── docker-compose.yml  # Docker Compose配置
├── Dockerfile          # Docker构建配置
├── requirements.txt    # Python依赖项
└── README.md           # 文档

添加新工具

要添加新工具:

  1. src/tools/中实现工具函数
  2. src/server/mcp_server.py中注册工具
  3. templates/config.html中添加测试界面(可选)
  4. src/server/web_interface.py中添加路由(如果添加了测试界面)

故障排除

常见问题

  • 连接失败:确保您的Metabase URL正确且可访问
  • 认证错误:验证您的API密钥具有必要的权限
  • Docker网络问题:当使用Docker时,请确保正确的网络配置

日志

检查日志以获取详细的错误信息:

# Docker日志
docker logs metabase-mcp

# 手动执行日志
# 日志打印到控制台

贡献

欢迎贡献!请随时提交Pull Request。