# LaunchDarkly local MCP server The local [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for [LaunchDarkly](https://launchdarkly.com/) federal and European Union (EU) environments.
> [!IMPORTANT] > **Use the LaunchDarkly [hosted MCP server](https://launchdarkly.com/docs/home/getting-started/mcp-hosted) where available** > > LaunchDarkly strongly recommends using the [hosted MCP server](https://launchdarkly.com/docs/home/getting-started/mcp) where it is available. The hosted server is more feature complete and receives more frequent updates than this self-managed server. > > LaunchDarkly provides this self-managed MCP server for LaunchDarkly **EU** or **Federal** instances, which do not yet support the hosted MCP. ## Table of Contents * [LaunchDarkly local MCP server](#launchdarkly-local-mcp-server) * [Installation](#installation) * [Requirements](#requirements) * [Available Resources and Operations](#available-resources-and-operations) * [Available Environments](#available-environments) * [Contributions](#contributions) * [About LaunchDarkly](#about-launchdarkly) ## Installation This MCP server can be installed in any AI client that supports the MCP protocol. Refer to your AI client's instructions if it isn't listed here. ### Cursor installation steps Create a `.cursor/mcp.json` file in your project root with the following content: ```json { "mcpServers": { "LaunchDarkly": { "command": "npx", "args": [ "-y", "--package", "@launchdarkly/mcp-server", "--", "mcp", "start", "--api-key", "api-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ] } } } ``` Specify your API key as found on LaunchDarkly's Authorization page. ### Claude installation steps Add the following server definition to your `claude_desktop_config.json` file: ```json { "mcpServers": { "LaunchDarkly": { "command": "npx", "args": [ "-y", "--package", "@launchdarkly/mcp-server", "--", "mcp", "start", "--api-key", "api-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ] } } } ``` Specify your API key as found on LaunchDarkly's Authorization page. ### Qodo Gen installation steps 1. Open [Qodo Gen](https://docs.qodo.ai/qodo-documentation/qodo-gen) chat panel in VSCode or IntelliJ. 2. Click `Connect more tools`. 3. Click `+ Add new MCP`. 4. Add the following configuration: ```json { "mcpServers": { "LaunchDarkly": { "command": "npx", "args": [ "-y", "--package", "@launchdarkly/mcp-server", "--", "mcp", "start", "--api-key", "api-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ] } } } ``` Specify your API key as found on LaunchDarkly's Authorization page. 5. Click `Save`. ### GitHub Copilot CLI installation steps Use the Copilot CLI to interactively add the MCP server: ```bash /mcp add ``` Or create/edit `~/.copilot/mcp-config.json` with the following content: ```json { "mcpServers": { "LaunchDarkly": { "command": "npx", "args": [ "-y", "--package", "@launchdarkly/mcp-server", "--", "mcp", "start", "--api-key", "api-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ] } } } ``` Specify your API key as found on LaunchDarkly's Authorization page. For more information, see the [GitHub Copilot CLI documentation](https://docs.github.com/en/copilot/concepts/agents/about-copilot-cli). ### Standalone binary installation steps You can also run the MCP server as a standalone binary with no additional dependencies. You must pull these binaries from available GitHub releases while specifying the appropriate `tag` value: ```bash curl -L -o mcp-server https://github.com/launchdarkly/mcp-server/releases/download/{tag}/mcp-server-bun-darwin-arm64 && \ chmod +x mcp-server ``` ### Installation steps from a local clone You can also run the MCP server locally by cloning this repository. Once cloned, you'll need to install dependencies (`npm install`) and build the server (`npm run build`). Then, configure your server definition to reference your local clone. For example: ```json { "mcpServers": { "launchdarkly": { "command": "node", "args": [ "/path/to/mcp-server/bin/mcp-server.js", "start", "--api-key", "api-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ] } } } ``` ### Installation steps using environment variables Some AI clients allow for accessing environment variables within MCP configurations. In AI clients where this is supported, you can configure your MCP server to read from an environment variable like `MCP_LD_TOKEN` as follows: ```json { "mcpServers": { "launchdarkly": { "command": "npx", "args": [ "-y", "--package", "@launchdarkly/mcp-server", "--", "mcp", "start", "--api-key", "$LD_ACCESS_TOKEN" ], "env": { "LD_ACCESS_TOKEN": "MCP_LD_TOKEN" } } } } ``` ### Installation steps for Docker If installing the MCP server from the AWS Markeplace, pull the image using an authenticated role using the provided instructions in the marketplace listing. To run the container: ```bash docker run --rm -p 8080:8080 709825985650.dkr.ecr.us-east-1.amazonaws.com/launchdarkly/mcp --api-key api-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ``` Then, configure your server definition to reference your local clone. For example: ```json { "mcpServers": { "launchdarkly": { "command": "npx", "args": [ "-y", "--package", "@launchdarkly/mcp-server", "--", "mcp", "start", "--api-key", "$LD_ACCESS_TOKEN" ], "env": { "LD_ACCESS_TOKEN": "MCP_LD_TOKEN" } "url": "http://localhost:8080/sse" } } } ``` This won't work in AI clients (such as Cursor) which don't support accessing environment variables directly within MCP configurations. As a workaround, you can invoke a local script from your MCP configuration. See [here](https://github.com/launchdarkly/mcp-server/issues/26#issuecomment-3064419507) for an example. ## Requirements For supported JavaScript runtimes, please consult [RUNTIMES.md](RUNTIMES.md). ## Available Resources and Operations