What is A MCP server that accesses Lightdash, allowing AI assistants to interact with your Lightdash data.?
The lightdash-mcp-server provides MCP-compatible access to Lightdash's API, enabling AI assistants to interact with your Lightdash data through a standardized interface. It supports various tools for listing projects, spaces, charts, dashboards, and custom metrics.
This server provides MCP-compatible access to Lightdash's API, allowing AI assistants to interact with your Lightdash data through a standardized interface.
Features
Available tools:
list_projects - List all projects in the Lightdash organization
get_project - Get details of a specific project
list_spaces - List all spaces in a project
list_charts - List all charts in a project
list_dashboards - List all dashboards in a project
get_custom_metrics - Get custom metrics for a project
get_catalog - Get catalog for a project
get_metrics_catalog - Get metrics catalog for a project
get_charts_as_code - Get charts as code for a project
get_dashboards_as_code - Get dashboards as code for a project
Quick Start# Installation
Installing via Smithery
To install Lightdash MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install lightdash-mcp-server --client claude
Manual Installation
npm install lightdash-mcp-server
Configuration
LIGHTDASH_API_KEY: Your Lightdash PAT
LIGHTDASH_API_URL: The API base URL
Usage
The lightdash-mcp-server supports two transport modes: Stdio (default) and 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);
Note: When using HTTP mode, ensure the environment variables LIGHTDASH_API_KEY and LIGHTDASH_API_URL are set in the environment where the server is running, as they cannot be passed through MCP client configuration.
See examples/list_spaces_http.ts for a complete example of connecting to the HTTP server programmatically.
Development# Available Scripts
npm run dev - Start the server in development mode with hot reloading (stdio transport)
npm run dev:http - Start the server in development mode with HTTP transport on port 8080
npm run build - Build the project for production
npm run start - Start the production server
npm run lint - Run linting checks (ESLint and Prettier)