lightdash-mcp-server
About
A MCP(Model Context Protocol) server that accesses to Lightdash
Details
- Author
- syucream
- GitHub stars
- 25
- Downloads
- 341
- Categories
- Other
Jump to
- 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:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
lightdash-mcp-serverCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- 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
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">
</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
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



