元数据库MCP服务器
作者:余亨俊(@恒俊开发)
](https://smithery.ai/server/@hyeongjun-dev/metabase-mcp-server)
一个模型上下文协议服务器,将人工智能助手与元数据库分析平台集成在一起。
概述
这种基于TypeScript的MCP服务器提供与Metabase API的无缝集成,使人工智能助手能够直接与您的分析数据交互。该服务器专为Claude和其他兼容MCP的AI助手而设计,充当您的分析平台和会话AI之间的桥梁。
主要特点
- 资源访问:通过直观的方式浏览元数据库资源
metabase://URI - 两种身份验证方法:支持基于会话和API密钥身份验证
- 结构化数据访问:JSON格式的响应,便于人工智能助手使用
- 综合录井:详细的日志记录,便于调试和监控
- 错误处理:强大的错误处理功能,错误信息清晰
可用工具
服务器为AI助手提供以下工具:
list_dashboards:检索Metabase实例中的所有可用仪表板list_cards:在Metabase中获取所有已保存的问题/卡片list_databases:查看所有连接的数据库源execute_card:运行已保存的问题并使用可选参数检索结果get_dashboard_cards:从特定仪表板中提取所有卡片execute_query:对任何连接的数据库执行自定义SQL查询
配置
服务器支持两种身份验证方法:
选项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.
安装
先决条件
- Node.js 18.0.0或更高版本
- 具有适当凭据的活动元数据库实例
开发设置
# Install dependencies
npm install
# Build the project
npm run build
# Start the server
npm start
# For development with auto-rebuild
npm run watchClaude桌面集成
要与Claude Desktop一起使用,请添加以下服务器配置:
MacOS:编辑 ~/Library/Application Support/Claude/claude_desktop_config.json
视窗:编辑 %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"metabase-mcp-server": {
"command": "/absolute/path/to/metabase-mcp-server/build/index.js",
"env": {
"METABASE_URL": "https://your-metabase-instance.com",
"METABASE_USER_EMAIL": "your_email@example.com",
"METABASE_PASSWORD": "your_password"
// Or alternatively, use API key authentication
// "METABASE_API_KEY": "your_api_key"
}
}
}
}或者,您可以通过npx使用JSON配置的Smithery托管版本:
API密钥验证:
{
"mcpServers": {
"metabase-mcp-server": {
"command": "npx",
"args": [
"-y",
"@smithery/cli@latest",
"run",
"@hyeongjun-dev/metabase-mcp-server",
"--config",
"{\"metabaseUrl\":\"https://your-metabase-instance.com\",\"metabaseApiKey\":\"your_api_key\",\"metabasePassword\":\"\",\"metabaseUserEmail\":\"\"}"
]
}
}
}用户名和密码验证:
{
"mcpServers": {
"metabase-mcp-server": {
"command": "npx",
"args": [
"-y",
"@smithery/cli@latest",
"run",
"@hyeongjun-dev/metabase-mcp-server",
"--config",
"{\"metabaseUrl\":\"https://your-metabase-instance.com\",\"metabaseApiKey\":\"\",\"metabasePassword\":\"your_password\",\"metabaseUserEmail\":\"your_email@example.com\"}"
]
}
}
}调试
由于MCP服务器通过stdio进行通信,请使用 MCP检查员 用于调试:
npm run inspector检查员将提供一个基于浏览器的界面,用于监控请求和响应。
Docker支持
Docker镜像可用于容器化部署:
# Build the Docker image
docker build -t metabase-mcp-server .
# Run the container with environment variables
docker run -e METABASE_URL=https://your-metabase.com \
-e METABASE_API_KEY=your_api_key \
metabase-mcp-server安全考虑
- 我们建议在生产环境中使用API密钥身份验证
- 确保API密钥和凭据的安全
- 考虑使用Docker secrets或环境变量,而不是硬编码凭据
- 应用适当的网络安全措施来限制对Metabase实例的访问
贡献
欢迎投稿!请随时提交拉取请求。
