lightdash-mcp-server

by syucream

25 stars
341 downloads
Not rated
GitHub Website

About

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

Details

Author
syucream
GitHub stars
25
Downloads
341
Categories
Other

- List, get, and explore projects in your Lightdash organization
- List spaces, charts, and dashboards within a project
- Retrieve custom metrics, catalog, and metrics catalog
- Export charts and dashboards as code
- Supports both Stdio and Streamable HTTP transports

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

Install via npm install lightdash-mcp-server or using Smithery (npx -y @smithery/cli install lightdash-mcp-server --client claude). Set the LIGHTDASH_API_KEY and LIGHTDASH_API_URL environment variables. Start the server with npx lightdash-mcp-server for Stdio transport or npx lightdash-mcp-server -port 8080 for HTTP transport. Configure your MCP client with the appropriate command/args or URL.

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"
        ]
    }
}

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.

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