Metabase MCP服务器

一个与Metabase API集成的Python实现的模型上下文协议(MCP)服务器,允许大型语言模型(LLMs)与Metabase数据和功能进行交互。

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

使用说明

元数据库MCP服务器

这是模型上下文协议(MCP)服务器的Python实现,它与Metabase API集成,允许大型语言模型(LLM)与Metabase数据和功能交互。

特性

  • 查看仪表板及其内容
  • 列出并执行问题/卡片
  • 访问数据库信息
  • 对元数据库执行SQL查询
  • 全面支持MCP资源和工具

先决条件

  • Python 3.9或更高版本
  • 正在运行的Metabase实例
  • 具有适当权限的元数据库用户凭据

安装

  1. 安装MCP SDK:
pip install "mcp[cli]"
  1. 为元数据库连接设置环境变量:
# Windows
set METABASE_URL=https://your-metabase-instance.com
set METABASE_USERNAME=your_username
set METABASE_PASSWORD=your_password

# Linux/macOS
export METABASE_URL=https://your-metabase-instance.com
export METABASE_USERNAME=your_username
export METABASE_PASSWORD=your_password

用法

运行服务器

python metabase_mcp_server.py

在Claude Desktop中安装

您可以在Claude Desktop中安装此服务器进行直接交互:

mcp install metabase_mcp_server.py

MCP检验员测试

使用MCP检查器测试您的服务器:

mcp dev metabase_mcp_server.py

可用资源

  • metabase://dashboard/{dashboard_id} -获取特定的仪表板
  • metabase://card/{card_id} -获取特定问题/卡片
  • metabase://database/{database_id} -获取特定数据库

可用工具

  • list_dashboards -列出所有仪表板
  • list_cards -列出所有问题/卡片
  • list_databases -列出所有数据库
  • execute_card -执行特定卡片/问题
  • get_dashboard_cards -在仪表板中获取卡片
  • execute_query -对元数据库运行SQL

LLM提示中的示例用法

To interact with Metabase:
1. Use list_dashboards to see available dashboards
2. Use get_dashboard_cards to view cards in a dashboard
3. Use execute_card to run a specific question
4. Use execute_query to run custom SQL

For example, to get sales data:
- Find the sales dashboard ID
- Get cards in that dashboard
- Execute the relevant sales card

错误处理

该服务器包括全面的错误处理和日志记录,以帮助诊断Metabase API连接的问题。

发展

您可以根据需要添加更多资源和工具来扩展此MCP服务器的附加功能。