Metabase MCP服务器

一个将AI助手与Metabase分析平台集成的模型上下文协议服务器,提供数据访问、仪表板管理和查询执行功能。

  • by zsh52013148087
  • 本地部署
  • 更新于
在 GitHub 查看 zsh52013148087/metabase-mcp

使用说明

元数据库MCP服务器

一个模型上下文协议服务器,将人工智能助手与元数据库分析平台集成在一起。

概述

该MCP服务器提供与Metabase API的集成,使具有MCP功能的LLM能够直接与您的分析数据交互,该服务器充当您的分析平台和对话人工智能之间的桥梁。

主要特点

  • 资源访问:通过直观的方式浏览元数据库资源 metabase:// URI
  • 两种身份验证方法:支持基于会话和API密钥身份验证
  • 结构化数据访问:JSON格式的响应,便于人工智能助手使用
  • 综合录井:详细的日志记录,便于调试和监控
  • 错误处理:强大的错误处理功能,错误信息清晰

可用工具

服务器为AI助手提供以下工具:

数据访问工具

  • list_dashboards:检索Metabase实例中的所有可用仪表板
  • list_cards:在Metabase中获取所有已保存的问题/卡片
  • list_databases:查看所有连接的数据库源
  • list_collections:列出元数据库中的所有集合
  • list_tables:列出特定数据库中的所有表
  • get_table_fields:获取特定表中的所有字段/列

执行工具

  • execute_card:运行已保存的问题并使用可选参数检索结果
  • execute_query:对任何连接的数据库执行自定义SQL查询

仪表板管理

  • get_dashboard_cards:从特定仪表板中提取所有卡片
  • create_dashboard:使用指定的名称和参数创建新的仪表板
  • update_dashboard:更新现有仪表板的名称、描述或参数
  • delete_dashboard:删除仪表板
  • add_card_to_dashboard:在仪表板中添加或更新卡片,包括职位说明和可选标签分配

卡片/问题管理

  • create_card:使用SQL查询创建新问题/卡片
  • update_card_visualization:更新卡的可视化设置

收集管理

  • create_collection:创建一个新的集合来组织仪表板和问题

配置

服务器支持两种身份验证方法:

选项1:用户名和密码验证

# Required
METABASE_URL=https://your-metabase-instance.com
METABASE_USER_EMAIL=your_email@example.com
METABASE_PASSWORD=your_password

# Optional
LOG_LEVEL=info # Options: debug, info, warn, error, fatal

选项2:API密钥验证(推荐用于生产)

# Required
METABASE_URL=https://your-metabase-instance.com
METABASE_API_KEY=your_api_key

# Optional
LOG_LEVEL=info # Options: debug, info, warn, error, fatal

您可以直接设置这些环境变量或使用 .env 提交 dotenv.

部署Smithery

要将此MCP服务器与Claude或其他AI助手一起使用,请分叉此存储库并使用Smithery进行部署:

部署步骤:

  1. 将此存储库分叉到您的GitHub帐户
  2. 首选 史密瑟里 并与您的GitHub帐户连接
  3. 通过Smithery的接口部署分叉存储库

Claude桌面集成

配置您的Claude Desktop以使用Smithery托管版本:

MacOS:编辑 ~/Library/Application Support/Claude/claude_desktop_config.json

视窗:编辑 %APPDATA%/Claude/claude_desktop_config.json

API密钥验证:

{
  "mcpServers": {
    "metabase-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@smithery/cli@latest",
        "run",
        "YOUR_GITHUB_USERNAME/metabase-mcp-server",
        "--config",
        "{\"metabaseUrl\":\"https://your-metabase-instance.com\",\"metabaseApiKey\":\"your_api_key\",\"metabasePassword\":\"\",\"metabaseUserEmail\":\"\"}"
      ]
    }
  }
}

用户名和密码验证:

{
  "mcpServers": {
    "metabase-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@smithery/cli@latest",
        "run",
        "YOUR_GITHUB_USERNAME/metabase-mcp-server",
        "--config",
        "{\"metabaseUrl\":\"https://your-metabase-instance.com\",\"metabaseApiKey\":\"\",\"metabasePassword\":\"your_password\",\"metabaseUserEmail\":\"your_email@example.com\"}"
      ]
    }
  }
}

安全考虑

  • 建议在生产环境中使用API密钥身份验证
  • 确保API密钥和凭据的安全
  • 考虑使用环境变量而不是硬编码凭据
  • 应用适当的网络安全措施来限制对Metabase实例的访问

贡献

欢迎投稿!请随时提交拉取请求。