lightdash-mcp-server

by syucream

25 341 downloads Not rated yet MIT

About

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

Details

License
MIT

Explore

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

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name lightdash-mcp-server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

- LIGHTDASH_API_KEY: Your Lightdash PAT
- LIGHTDASH_API_URL: The API base URL

To install Lightdash MCP Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install lightdash-mcp-server --client claude
npm install lightdash-mcp-server

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "lightdash-mcp-server": {
            "lightdash-mcp-server": {
                "command": "npx",
                "args": [
                    "-y",
                    "@smithery/cli",
                    "install",
                    "lightdash-mcp-server",
                    "--client",
                    "claude"
                ]
            }
        }
    }
}

McpServers

{
    "lightdash-mcp-server": {
        "command": "npx",
        "args": [
            "-y",
            "@smithery/cli",
            "install",
            "lightdash-mcp-server",
            "--client",
            "claude"
        ]
    }
}
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.

<a href="https://glama.ai/mcp/servers/e1gbb6sflq">
Lightdash Server MCP server
</a>

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

2. Edit your MCP configuration json:

...
"lightdash": {
"command": "npx",
"args": [
"-y",
"lightdash-mcp-server"
],
"env": {
"LIGHTDASH_API_KEY": "<your PAT>",
"LIGHTDASH_API_URL": "https://<your base url>"
}
},
...

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.

2. 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:

...
    "lightdash": {
      "url": "http://localhost:8080/mcp"
    },
...

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

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.