MCP ExplorerExplorer

Lightdash

@syucreamon 13 days ago
17 MIT
FreeCommunity
Analytics
#Lightdash#AI
Interact with [Lightdash](https://www.lightdash.com/), a BI tool.

Overview

What is Lightdash

Lightdash MCP Server is a server that provides Model Context Protocol (MCP) compatible access to Lightdash, enabling AI assistants to interact with Lightdash data through a standardized interface.

Use cases

It allows users to perform various operations related to Lightdash such as listing projects, retrieving project details, listing spaces and charts, obtaining custom metrics, and accessing dashboards through a standardized MCP protocol, which enhances the interaction experience for AI assistants.

How to use

To use Lightdash MCP Server, install it via npm or Smithery, configure environment variables for API access, and start the server either in Stdio mode or HTTP mode depending on the requirements. The configuration includes defining the command to run the server or setting the URL for HTTP transport in the MCP client.

Key features

Key features include functions to list projects, spaces, charts, and dashboards, retrieve custom metrics and catalogs, and get charts and dashboards as code, all through a clean, standardized interface that complies with MCP.

Where to use

Lightdash MCP Server can be utilized in environments needing data visualization and analytics integration for AI assistants, such as business intelligence applications, data analysis tools, and any system where Quick and efficient access to Lightdash data is required.

Content

lightdash-mcp-server

smithery badge
npm version

A MCP(Model Context Protocol) server that accesses to Lightdash.

This server provides MCP-compatible access to Lightdash’s API, allowing AI assistants to interact with your Lightdash data through a standardized interface.

Lightdash Server MCP server

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.

Stdio Transport (Default)

  1. Start the MCP server:
npx lightdash-mcp-server
  1. Edit your MCP configuration json:

HTTP Transport (Streamable HTTP)

  1. Start the MCP server in HTTP mode:
npx lightdash-mcp-server -port 8080

This starts the server using StreamableHTTPServerTransport, making it accessible via HTTP at http://localhost:8080/mcp.

  1. Configure your MCP client to connect via HTTP:

For Claude Desktop and other MCP clients:

Edit your MCP configuration json to use the url field instead of command and args:

For programmatic access:

Use the streamable HTTP client transport:

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)
  • npm run fix - Automatically fix linting issues
  • npm run examples - Run the example scripts

Contributing

  1. Fork the repository
  2. Create your feature branch
  3. Run tests and linting: npm run lint
  4. Commit your changes
  5. Push to the branch
  6. Create a Pull Request

Tools

lightdash_list_projects
List all projects in the Lightdash organization
lightdash_get_project
Get details of a specific project
lightdash_list_spaces
List all spaces in a project
lightdash_list_charts
List all charts in a project
lightdash_list_dashboards
List all dashboards in a project
lightdash_get_custom_metrics
Get custom metrics for a project
lightdash_get_catalog
Get catalog for a project
lightdash_get_metrics_catalog
Get metrics catalog for a project
lightdash_get_charts_as_code
Get charts as code for a project
lightdash_get_dashboards_as_code
Get dashboards as code for a project
lightdash_get_metadata
Get metadata for a specific table in the data catalog
lightdash_get_analytics
Get analytics for a specific table in the data catalog
lightdash_get_user_attributes
Get organization user attributes

Comments