LaunchDarkly hosted MCP server
OFFICIAL SERVERLaunchDarkly's remote MCP endpoint for feature flags, AgentControl configs and observability data
Self-run LaunchDarkly server for managing feature flags and AI Configs on EU and Federal instances
Official · LaunchDarkly TypeScript Local · stdio, Streamable HTTP Developer toolsDevOps and monitoring
64 popularity score ★ 27 ↓ 75k/wk
Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
claude mcp add --transport http launchdarkly-local http://localhost:8080/sse --header 'Authorization: Bearer <AUTH_TOKEN>'{
"mcpServers": {
"launchdarkly-local": {
"url": "http://localhost:8080/sse",
"headers": {
"Authorization": "Bearer <AUTH_TOKEN>"
}
}
}
}{
"servers": {
"launchdarkly-local": {
"type": "http",
"url": "http://localhost:8080/sse",
"headers": {
"Authorization": "Bearer <AUTH_TOKEN>"
}
}
}
}[mcp_servers.launchdarkly-local]
url = "http://localhost:8080/sse"
http_headers = { "Authorization" = "Bearer <AUTH_TOKEN>" }gemini mcp add --scope user --transport http --header 'Authorization: Bearer <AUTH_TOKEN>' launchdarkly-local http://localhost:8080/sseOpens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
claude mcp add launchdarkly-local -- npx -y --package @launchdarkly/mcp-server -- mcp start --api-key '<API_KEY>'{
"mcpServers": {
"launchdarkly-local": {
"command": "npx",
"args": [
"-y",
"--package",
"@launchdarkly/mcp-server",
"--",
"mcp",
"start",
"--api-key",
"<API_KEY>"
]
}
}
}{
"mcpServers": {
"launchdarkly-local": {
"command": "npx",
"args": [
"-y",
"--package",
"@launchdarkly/mcp-server",
"--",
"mcp",
"start",
"--api-key",
"<API_KEY>"
]
}
}
}{
"servers": {
"launchdarkly-local": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"--package",
"@launchdarkly/mcp-server",
"--",
"mcp",
"start",
"--api-key",
"<API_KEY>"
]
}
}
}[mcp_servers.launchdarkly-local]
command = "npx"
args = ["-y", "--package", "@launchdarkly/mcp-server", "--", "mcp", "start", "--api-key", "<API_KEY>"]gemini mcp add --scope user launchdarkly-local npx -- -y --package @launchdarkly/mcp-server -- mcp start --api-key '<API_KEY>'Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
git clone https://github.com/launchdarkly/mcp-server.git
cd mcp-server
npm install
npm run buildclaude mcp add launchdarkly-local -- node '<ABSOLUTE_PATH_TO_CLONE>/bin/mcp-server.js' start --api-key '<API_KEY>'{
"mcpServers": {
"launchdarkly-local": {
"command": "node",
"args": [
"<ABSOLUTE_PATH_TO_CLONE>/bin/mcp-server.js",
"start",
"--api-key",
"<API_KEY>"
]
}
}
}{
"mcpServers": {
"launchdarkly-local": {
"command": "node",
"args": [
"<ABSOLUTE_PATH_TO_CLONE>/bin/mcp-server.js",
"start",
"--api-key",
"<API_KEY>"
]
}
}
}{
"servers": {
"launchdarkly-local": {
"type": "stdio",
"command": "node",
"args": [
"<ABSOLUTE_PATH_TO_CLONE>/bin/mcp-server.js",
"start",
"--api-key",
"<API_KEY>"
]
}
}
}[mcp_servers.launchdarkly-local]
command = "node"
args = ["<ABSOLUTE_PATH_TO_CLONE>/bin/mcp-server.js", "start", "--api-key", "<API_KEY>"]gemini mcp add --scope user launchdarkly-local node -- '<ABSOLUTE_PATH_TO_CLONE>/bin/mcp-server.js' start --api-key '<API_KEY>'This is LaunchDarkly's own self-managed MCP server. It runs on your machine, takes a LaunchDarkly API access token, and calls the LaunchDarkly REST API. Through it an assistant can list, read, create, change and delete feature flags and check whether a flag is ready for removal in each environment. It can also set up and run experiments, define the metrics they measure, and manage AI Configs with their variations and targeting. A few read tools cover environments, the audit log and code-reference repositories.
LaunchDarkly now positions it for customers whose accounts live on its EU or Federal instances, which its hosted MCP server does not yet serve. You point it at your instance with --server-url (https://app.eu.launchdarkly.com or https://app.launchdarkly.us). Without that flag it talks to the commercial instance at app.launchdarkly.com.
The source registers 30 tools, half of them read-only. Their MCP names are not the SDK method names in the README's operations list: getStatus there is the tool get-flag-status-across-environments, and the Experiments getExperimentsAnyEnv is list-experiments-any-environment. Each tool carries a read or write scope, and the start command takes --scope read to mount only the 15 read tools, or --tool to mount a chosen few. The README describes neither flag. The code is generated by Speakeasy from LaunchDarkly's API definition, so changes come from upstream rather than by hand.
| Runtime | Node.js 22+ |
|---|---|
| Runs on | macOS, Windows, Linux |
| LaunchDarkly | An API access token from the Authorization page, passed as --api-key. EU and Federal accounts also pass --server-url. |
Node.js 22.23.4, 24.22.1, 26.12.1 or a later patch of those lines, to run it with npx or from a clone. The README asks for these releases because they reject certificate authorities compromised in October 2026, which could otherwise let someone on the network read the API token. The old mcp-server-bun standalone binaries are no longer published and should not be used. Get the token from LaunchDarkly's Authorization page. The Docker image is pulled from the AWS Marketplace with an authenticated AWS role (use 0.7.1 or later), serves SSE over HTTP on port 8080 rather than stdio, and must be started with --auth-token.
LaunchDarkly says its hosted MCP server is more complete and updated more often, and recommends it wherever available. This one is meant for EU and Federal instances. The tools cover flags, experiments, metrics, AI Configs, environments, the audit log and code references. There are no tools for segments or observability data. The SSE transport binds to 127.0.0.1 on port 2718 unless --host and --port are given, and a non-loopback host needs --auth-token of at least 16 characters. Clients that cannot expand environment variables in their MCP config need the token written into the args or a wrapper script.
Teams on LaunchDarkly's EU or Federal instances who want an assistant to inspect and change flags and AI Configs from their editor, and who are comfortable giving it an API token. Accounts on the commercial instance are better served by LaunchDarkly's hosted server at mcp.launchdarkly.com, which signs in with OAuth and covers more, per LaunchDarkly's own docs. Anyone who wants read-only access should start it with --scope read or use a token with a reader role, since the default mounts tools that create, update and delete flags.
15 only read, 12 change things, 3 can delete or overwrite. A ? marks an optional parameter.
list-feature-flagsrequest: objectget-feature-flagrequest: objectcreate-feature-flag changesrequest: objectupdate-feature-flag changesrequest: objectdelete-feature-flag deletesrequest: objectget-flag-status-across-environmentsrequest: objectget-environmentsrequest: objectget-audit-log-entriesrequest: objectget-code-referencesrequest: objectlist-metricsrequest: objectget-metricrequest: objectcreate-metric changesrequest: objectupdate-metric changesrequest: objectlist-experimentsrequest: objectlist-experiments-any-environmentrequest: objectget-experimentrequest: objectcreate-experiment changesrequest: objectupdate-experiment changesrequest: objectcreate-experiment-iteration changesrequest: objectlist-ai-configsrequest: objectget-ai-configrequest: objectcreate-ai-config changesrequest: objectupdate-ai-config changesrequest: objectdelete-ai-config deletesrequest: objectget-ai-config-targetingrequest: objectupdate-ai-config-targeting changesrequest: objectcreate-ai-config-variation changesrequest: objectget-ai-config-variationrequest: objectupdate-ai-config-variation changesrequest: objectdelete-ai-config-variation deletesrequest: object