关于 lightdash-mcp-server
lightdash-mcp-server 是一个 MCP 服务,用于访问 Lightdash 的 API。它让 AI 助手能够通过标准化接口查询项目、Space、图表和仪表板等数据。
主要功能
- 01查询项目、Space、图表与仪表板
- 02获取指标目录与自定义指标
- 03以 code 形式获取图表与仪表板
- 04支持 stdio 与 Streamable HTTP 传输
适用场景
- 01让 AI 助手查询 Lightdash 中的图表与仪表板
- 02浏览 Lightdash 的指标目录
- 03通过 HTTP 模式为远程客户端提供访问
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露 list_projects、list_charts 等 Lightdash 相关工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
lightdash-mcp-server
一个可访问 Lightdash 的 MCP(Model Context Protocol) 服务。
此服务通过标准化接口提供与 MCP 兼容的 Lightdash API 访问,让 AI 助手能够与您的 Lightdash 数据交互。
功能
可用工具:
list_projects- 列出 Lightdash 组织中的所有项目get_project- 获取指定项目的详细信息list_spaces- 列出项目中的所有空间list_charts- 列出项目中的所有图表list_dashboards- 列出项目中的所有仪表板get_custom_metrics- 获取项目的自定义指标get_catalog- 获取项目的目录get_metrics_catalog- 获取项目的指标目录get_charts_as_code- 以代码形式获取项目的图表get_dashboards_as_code- 以代码形式获取项目的仪表板
快速开始
安装
通过 Smithery 安装
通过 Smithery 为 Claude Desktop 自动安装 Lightdash MCP Server:
npx -y @smithery/cli install lightdash-mcp-server --client claude
手动安装
npm install lightdash-mcp-server
配置
LIGHTDASH_API_KEY:您的 Lightdash PATLIGHTDASH_API_URL:API 基础 URL
使用
lightdash-mcp-server 支持两种传输模式:Stdio(默认)和 HTTP。
Stdio 传输(默认)
- 启动 MCP 服务:
npx lightdash-mcp-server
- 编辑 MCP 配置 JSON:
...
"lightdash": {
"command": "npx",
"args": [
"-y",
"lightdash-mcp-server"
],
"env": {
"LIGHTDASH_API_KEY": "<your PAT>",
"LIGHTDASH_API_URL": "https://<your base url>"
}
},
...
HTTP 传输(可流式 HTTP)
- 以 HTTP 模式启动 MCP 服务:
npx lightdash-mcp-server -port 8080
这将使用 StreamableHTTPServerTransport 启动服务,并通过 http://localhost:8080/mcp 提供 HTTP 访问。
- 配置 MCP 客户端以通过 HTTP 连接:
适用于 Claude Desktop 和其他 MCP 客户端:
编辑 MCP 配置 JSON,使用 url 字段,而不是 command 和 args:
...
"lightdash": {
"url": "http://localhost:8080/mcp"
},
...
以编程方式访问:
使用可流式 HTTP 客户端传输:
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
const client = new Client({
name: 'my-client',
version: '1.0.0'
}, {
capabilities: {}
});
const transport = new StreamableHTTPClientTransport(
new URL('http://localhost:8080/mcp')
);
await client.connect(transport);
注意: 使用 HTTP 模式时,请确保在运行服务的环境中设置环境变量 LIGHTDASH_API_KEY 和 LIGHTDASH_API_URL,因为这些变量无法通过 MCP 客户端配置传递。
请参阅 examples/list_spaces_http.ts,查看以编程方式连接到 HTTP 服务的完整示例。
开发
可用脚本
npm run dev- 在开发模式下启动服务,并启用热重载(stdio 传输)npm run dev:http- 在开发模式下启动服务,使用端口 8080 上的 HTTP 传输npm run build- 构建用于生产环境的项目npm run start- 启动生产环境服务npm run lint- 运行代码检查(ESLint 和 Prettier)npm run fix- 自动修复代码检查问题npm run examples- 运行示例脚本
贡献
- Fork 此代码库
- 创建您的功能分支
- 运行测试和代码检查:
npm run lint - 提交您的更改
- 推送到分支
- 创建 Pull Request
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。