Skip to main content
Glama
Lightdash MCP Server

Lightdash MCP Server

by syucream

lightdash-mcp-server

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.

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

Related MCP server: Metabase MCP Plus

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:

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

  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:

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

Available Tools

13 tools
lightdash_get_analyticsC

Get analytics for a specific table in the data catalog

Inputs: projectUuid (required), table (required).

lightdash_get_catalogC

Get catalog for a project

Inputs: projectUuid (required).

lightdash_get_charts_as_codeC

Get charts as code for a project

Inputs: projectUuid (required).

lightdash_get_custom_metricsC

Get custom metrics for a project

Inputs: projectUuid (required).

lightdash_get_dashboards_as_codeC

Get dashboards as code for a project

Inputs: projectUuid (required).

lightdash_get_metadataB

Get metadata for a specific table in the data catalog

Inputs: projectUuid (required), table (required).

lightdash_get_metrics_catalogB

Get metrics catalog for a project

Inputs: projectUuid (required).

lightdash_get_projectA

Get details of a specific project

Inputs: projectUuid (required).

lightdash_get_user_attributesB

Get organization user attributes

Inputs: no named parameters.

lightdash_list_chartsA

List all charts in a project

Inputs: projectUuid (required).

lightdash_list_dashboardsA

List all dashboards in a project

Inputs: projectUuid (required).

lightdash_list_projectsA

List all projects in the Lightdash organization

Inputs: no named parameters.

lightdash_list_spacesC

List all spaces in a project

Inputs: projectUuid (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 13 tools

    Disambiguation4/5

    Most tools target distinct resources (analytics, catalog, charts, dashboards, projects), but there is potential confusion between 'get_catalog' and 'get_metrics_catalog', and between 'get_analytics' and 'get_metadata' for a specific table. Descriptions help clarify, but some overlap exists.

    Naming Consistency5/5

    All tools follow a consistent 'lightdash_verb_noun' pattern, using 'get_' or 'list_' prefixes. The 'as_code' suffix in two tools is a minor deviation but still fits the pattern well.

    Tool Count5/5

    With 13 tools covering catalog, charts, dashboards, metrics, projects, spaces, and user attributes, the number is well-scoped for a read-only analytics server. It is neither too few nor too many.

    Completeness3/5

    The server covers many read operations (get, list) but lacks any write tools (create, update, delete), which is a notable gap for full lifecycle management in Lightdash. Agents may need write capabilities for many workflows.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      B
      quality
      D
      maintenance
      An MCP server that provides AI assistants with full access to Apache Superset instances, enabling interaction with dashboards, charts, datasets, databases, and SQL execution capabilities.
      34
      -
    • A
      license
      A
      quality
      D
      maintenance
      An MCP server that enables AI assistants to query databases, execute SQL, and manage Metabase resources like dashboards, cards, and collections through natural language.
      22
      18 PyPI
      MIT
    • F
      license
      Not graded
      quality
      C
      maintenance
      Model Context Protocol (MCP) server that gives AI assistants a safe, correct data-analyst capability over business metrics - without raw SQL improvisation.
      -
    • A
      license
      A
      quality
      D
      maintenance
      A Model Context Protocol server for interacting with Lightdash, enabling AI assistants to discover data, create charts, and manage dashboards programmatically.
      28
      24
      MIT