lightdash-mcp-server
A MCP(Model Context Protocol) server that accesses to Lightdash
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 project
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
LIGHTDASH_API_KEY: Your Lightdash PATLIGHTDASH_API_URL: The API base URL
The lightdash-mcp-server supports two transport modes: Stdio (default) and HTTP.
- Start the MCP server:
npx lightdash-mcp-server
- 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>" } }, ...
- 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.
- 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.
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 scripts
- Fork the repository
- Create your feature branch
- Run tests and linting:
npm run lint - Commit your changes
- Push to the branch
- Create a Pull Request
Features
Rate this server
Related MCP servers
- awesome-remote-mcp-serversA curated, opinionated list of high-quality remote Model Context Protocol (MCP) servers.
- template-mcp-serverTemplate to quickly set up your own MCP server
- mcp-routerMCP Router enables easily manage your MCP (Model Context Protocol) servers with enhanced security
- easy-mcpAbsurdly easy Model Context Protocol Servers in Typescript
- fastmcpA TypeScript framework for building MCP servers.
- youtube-mcp-serverMCP Server for YouTube API, enabling video management, Shorts creation, and advanced analytics