by syucream
Provides MCP‑compatible access to Lightdash's API, enabling AI assistants to interact with Lightdash data through a standardized interface.
Enables AI assistants to query and manipulate Lightdash resources—projects, spaces, charts, dashboards, custom metrics, and catalogs—via the Model Context Protocol (MCP), turning Lightdash into a programmatically accessible data source.
npm install lightdash-mcp-server # or via Smithery
npx lightdash-mcp-server
LIGHTDASH_API_KEY
and LIGHTDASH_API_URL
in the env
section.npx lightdash-mcp-server -port 8080
http://localhost:8080/mcp
.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);
list_projects
: enumerate all projects in the Lightdash organization.get_project
: retrieve details of a specific project.list_spaces
: list spaces within a project.list_charts
/ list_dashboards
: enumerate visual assets.get_custom_metrics
, get_catalog
, get_metrics_catalog
: access metric definitions and data catalog.get_charts_as_code
, get_dashboards_as_code
: export visualizations as source code.Q: Which environment variables are required?
A: LIGHTDASH_API_KEY
(Personal Access Token) and LIGHTDASH_API_URL
(base API endpoint). They must be available where the server runs.
Q: Do I need to pass the API key in the MCP client config? A: No. The key is supplied via the server’s environment variables, not the client JSON.
Q: Can I run the server in production?
A: Yes. Build the package with npm run build
and start it via npx lightdash-mcp-server
(or run the compiled binary if packaged).
Q: How do I switch between Stdio and HTTP transports?
A: Omit the -port
flag for Stdio (default). Provide -port <number>
to launch the HTTP server.
Q: Are there example scripts?
A: See examples/list_spaces_http.ts
for a complete HTTP client example.
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.
Available tools:
list_projects
- List all projects in the Lightdash organizationget_project
- Get details of a specific projectlist_spaces
- List all spaces in a projectlist_charts
- List all charts in a projectlist_dashboards
- List all dashboards in a projectget_custom_metrics
- Get custom metrics for a projectget_catalog
- Get catalog for a projectget_metrics_catalog
- Get metrics catalog for a projectget_charts_as_code
- Get charts as code for a projectget_dashboards_as_code
- Get dashboards as code for a projectTo 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
LIGHTDASH_API_KEY
: Your Lightdash PATLIGHTDASH_API_URL
: The API base URLThe lightdash-mcp-server supports two transport modes: Stdio (default) and HTTP.
npx lightdash-mcp-server
...
"lightdash": {
"command": "npx",
"args": [
"-y",
"lightdash-mcp-server"
],
"env": {
"LIGHTDASH_API_KEY": "<your PAT>",
"LIGHTDASH_API_URL": "https://<your base url>"
}
},
...
npx lightdash-mcp-server -port 8080
This starts the server using StreamableHTTPServerTransport, making it accessible via HTTP at http://localhost:8080/mcp
.
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.
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 8080npm run build
- Build the project for productionnpm run start
- Start the production servernpm run lint
- Run linting checks (ESLint and Prettier)npm run fix
- Automatically fix linting issuesnpm run examples
- Run the example scriptsnpm run lint
Please log in to share your review and rating for this MCP.
{ "mcpServers": { "lightdash": { "command": "npx", "args": [ "lightdash-mcp-server" ], "env": { "LIGHTDASH_API_KEY": "<YOUR_API_KEY>", "LIGHTDASH_API_URL": "<YOUR_API_URL>" } } } }
Explore related MCPs that share similar capabilities and solve comparable challenges
by antvis
Offers over 25 AntV chart types for automated chart generation and data analysis, callable via MCP tools, CLI, HTTP, SSE, or streamable transports.
by reading-plus-ai
A versatile tool that enables interactive data exploration through prompts, CSV loading, and script execution.
by Canner
Provides a semantic engine that lets MCP clients and AI agents query enterprise data with contextual understanding, precise calculations, and built‑in governance.
by surendranb
Provides natural‑language access to Google Analytics 4 data via MCP, exposing over 200 dimensions and metrics for Claude, Cursor and other compatible clients.
by ergut
Provides secure, read‑only access to BigQuery datasets, allowing large language models to query and analyze data through a standardized interface.
by isaacwasserman
Provides an interface for LLMs to visualize data using Vega‑Lite syntax, supporting saving of data tables and rendering visualizations as either a full Vega‑Lite specification (text) or a base64‑encoded PNG image.
by vantage-sh
Fetch and explore cloud cost and usage data from a Vantage account using natural language through AI assistants and MCP clients.
by acryldata
Provides a Model Context Protocol server that enables searching, metadata retrieval, lineage traversal, and SQL query listing for DataHub entities.
by rishijatia
Provides programmatic access to Fantasy Premier League statistics, team information, gameweeks, and analysis tools via a Model Context Protocol server.