@launchdarkly/mcp-server 0.6.2 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -22
- package/bin/mcp-server.js +1045 -168
- package/bin/mcp-server.js.map +27 -22
- package/dist/commonjs/lib/config.d.ts +2 -2
- package/dist/commonjs/lib/config.js +2 -2
- package/dist/commonjs/mcp-server/cli/start/command.d.ts.map +1 -1
- package/dist/commonjs/mcp-server/cli/start/command.js +12 -0
- package/dist/commonjs/mcp-server/cli/start/command.js.map +1 -1
- package/dist/commonjs/mcp-server/cli/start/impl.d.ts +2 -0
- package/dist/commonjs/mcp-server/cli/start/impl.d.ts.map +1 -1
- package/dist/commonjs/mcp-server/cli/start/impl.js +67 -20
- package/dist/commonjs/mcp-server/cli/start/impl.js.map +1 -1
- package/dist/commonjs/mcp-server/cli/start/sse-security.d.ts +5 -0
- package/dist/commonjs/mcp-server/cli/start/sse-security.d.ts.map +1 -0
- package/dist/commonjs/mcp-server/cli/start/sse-security.js +26 -0
- package/dist/commonjs/mcp-server/cli/start/sse-security.js.map +1 -0
- package/dist/commonjs/mcp-server/cli/start/tls-blocklist.d.ts +48 -0
- package/dist/commonjs/mcp-server/cli/start/tls-blocklist.d.ts.map +1 -0
- package/dist/commonjs/mcp-server/cli/start/tls-blocklist.js +206 -0
- package/dist/commonjs/mcp-server/cli/start/tls-blocklist.js.map +1 -0
- package/dist/commonjs/mcp-server/mcp-server.js +1 -1
- package/dist/commonjs/mcp-server/server.js +1 -1
- package/dist/esm/lib/config.d.ts +2 -2
- package/dist/esm/lib/config.js +2 -2
- package/dist/esm/mcp-server/cli/start/command.d.ts.map +1 -1
- package/dist/esm/mcp-server/cli/start/command.js +12 -0
- package/dist/esm/mcp-server/cli/start/command.js.map +1 -1
- package/dist/esm/mcp-server/cli/start/impl.d.ts +2 -0
- package/dist/esm/mcp-server/cli/start/impl.d.ts.map +1 -1
- package/dist/esm/mcp-server/cli/start/impl.js +67 -20
- package/dist/esm/mcp-server/cli/start/impl.js.map +1 -1
- package/dist/esm/mcp-server/cli/start/sse-security.d.ts +5 -0
- package/dist/esm/mcp-server/cli/start/sse-security.d.ts.map +1 -0
- package/dist/esm/mcp-server/cli/start/sse-security.js +21 -0
- package/dist/esm/mcp-server/cli/start/sse-security.js.map +1 -0
- package/dist/esm/mcp-server/cli/start/tls-blocklist.d.ts +48 -0
- package/dist/esm/mcp-server/cli/start/tls-blocklist.d.ts.map +1 -0
- package/dist/esm/mcp-server/cli/start/tls-blocklist.js +192 -0
- package/dist/esm/mcp-server/cli/start/tls-blocklist.js.map +1 -0
- package/dist/esm/mcp-server/mcp-server.js +1 -1
- package/dist/esm/mcp-server/server.js +1 -1
- package/jsr.json +1 -1
- package/package.json +3 -1
- package/src/lib/config.ts +2 -2
- package/src/mcp-server/cli/start/command.ts +14 -0
- package/src/mcp-server/cli/start/impl.ts +80 -20
- package/src/mcp-server/cli/start/sse-security.ts +31 -0
- package/src/mcp-server/cli/start/tls-blocklist.ts +252 -0
- package/src/mcp-server/mcp-server.ts +1 -1
- package/src/mcp-server/server.ts +1 -1
- package/test/sse-security.test.mjs +84 -0
- package/test/tls-blocklist.test.mjs +314 -0
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# LaunchDarkly
|
|
1
|
+
# LaunchDarkly local MCP server
|
|
2
2
|
|
|
3
|
-
The
|
|
3
|
+
The local [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for [LaunchDarkly](https://launchdarkly.com/) federal and European Union (EU) environments.
|
|
4
4
|
|
|
5
5
|
<div align="left">
|
|
6
6
|
<a href="https://opensource.org/licenses/MIT">
|
|
@@ -8,12 +8,19 @@ The official [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) se
|
|
|
8
8
|
</a>
|
|
9
9
|
</div>
|
|
10
10
|
|
|
11
|
+
> [!IMPORTANT]
|
|
12
|
+
> **Use the LaunchDarkly [hosted MCP server](https://launchdarkly.com/docs/home/getting-started/mcp-hosted) where available**
|
|
13
|
+
>
|
|
14
|
+
> 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.
|
|
15
|
+
>
|
|
16
|
+
> LaunchDarkly provides this self-managed MCP server for LaunchDarkly **EU** or **Federal** instances, which do not yet support the hosted MCP.
|
|
17
|
+
|
|
11
18
|
<!-- No Summary [summary] -->
|
|
12
19
|
|
|
13
20
|
<!-- Start Table of Contents [toc] -->
|
|
14
21
|
## Table of Contents
|
|
15
22
|
<!-- $toc-max-depth=2 -->
|
|
16
|
-
* [LaunchDarkly
|
|
23
|
+
* [LaunchDarkly local MCP server](#launchdarkly-local-mcp-server)
|
|
17
24
|
* [Installation](#installation)
|
|
18
25
|
* [Requirements](#requirements)
|
|
19
26
|
* [Available Resources and Operations](#available-resources-and-operations)
|
|
@@ -28,6 +35,15 @@ The official [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) se
|
|
|
28
35
|
|
|
29
36
|
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.
|
|
30
37
|
|
|
38
|
+
### Runtime requirements
|
|
39
|
+
|
|
40
|
+
> [!IMPORTANT]
|
|
41
|
+
> Some eMudhra intermediate certificate authorities were compromised in October 2026 ([advisory](https://emudhra.we-have-a-problem.com/)). Anyone on your network who holds one of their keys could intercept the server's connection to LaunchDarkly and read your API access token.
|
|
42
|
+
>
|
|
43
|
+
> - **npx and local installs:** use Node.js **22.23.4, 24.22.1, 26.12.1 or later**. These releases reject the compromised intermediates. The server also rejects them itself and prints a warning on startup when your runtime does not.
|
|
44
|
+
> - **Docker:** use image 0.7.1 or later. Those run on Node.js 24.22.1; 0.7.0 and earlier run on Node.js 24.2.0.
|
|
45
|
+
> - **Standalone binaries:** stop using the `mcp-server-bun-*` binaries attached to releases v0.6.1 and earlier. They embed a Bun runtime that does not reject the compromised intermediates, and they are no longer published. Switch to npx with a patched Node.js or to Docker.
|
|
46
|
+
|
|
31
47
|
### Cursor installation steps
|
|
32
48
|
|
|
33
49
|
Create a `.cursor/mcp.json` file in your project root with the following content:
|
|
@@ -121,15 +137,6 @@ Specify your API key as found on LaunchDarkly's Authorization page.
|
|
|
121
137
|
|
|
122
138
|
For more information, see the [GitHub Copilot CLI documentation](https://docs.github.com/en/copilot/concepts/agents/about-copilot-cli).
|
|
123
139
|
|
|
124
|
-
### Standalone binary installation steps
|
|
125
|
-
|
|
126
|
-
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:
|
|
127
|
-
|
|
128
|
-
```bash
|
|
129
|
-
curl -L -o mcp-server https://github.com/launchdarkly/mcp-server/releases/download/{tag}/mcp-server-bun-darwin-arm64 && \
|
|
130
|
-
chmod +x mcp-server
|
|
131
|
-
```
|
|
132
|
-
|
|
133
140
|
### Installation steps from a local clone
|
|
134
141
|
|
|
135
142
|
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`).
|
|
@@ -178,24 +185,21 @@ If installing the MCP server from the AWS Markeplace, pull the image using an au
|
|
|
178
185
|
To run the container:
|
|
179
186
|
|
|
180
187
|
```bash
|
|
181
|
-
docker run --rm -p 8080:8080 709825985650.dkr.ecr.us-east-1.amazonaws.com/launchdarkly/mcp --api-key api-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
|
|
188
|
+
docker run --rm -p 127.0.0.1:8080:8080 709825985650.dkr.ecr.us-east-1.amazonaws.com/launchdarkly/mcp --api-key api-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --auth-token "$MCP_AUTH_TOKEN"
|
|
182
189
|
```
|
|
183
190
|
|
|
184
|
-
|
|
191
|
+
The container listens on `0.0.0.0`, so `--auth-token` (at least 16 characters) is required. Clients must send `Authorization: Bearer <token>` on `/sse` and `/message`. Outside Docker, the SSE transport listens on `127.0.0.1` by default; pass `--host` to change it, which also requires `--auth-token` for non-loopback hosts.
|
|
192
|
+
|
|
193
|
+
Then, configure your server definition to point at the running container. For example:
|
|
185
194
|
|
|
186
195
|
```json
|
|
187
196
|
{
|
|
188
197
|
"mcpServers": {
|
|
189
198
|
"launchdarkly": {
|
|
190
|
-
"
|
|
191
|
-
"
|
|
192
|
-
"
|
|
193
|
-
"--api-key", "$LD_ACCESS_TOKEN"
|
|
194
|
-
],
|
|
195
|
-
"env": {
|
|
196
|
-
"LD_ACCESS_TOKEN": "MCP_LD_TOKEN"
|
|
199
|
+
"url": "http://localhost:8080/sse",
|
|
200
|
+
"headers": {
|
|
201
|
+
"Authorization": "Bearer <your --auth-token value>"
|
|
197
202
|
}
|
|
198
|
-
"url": "http://localhost:8080/sse"
|
|
199
203
|
}
|
|
200
204
|
}
|
|
201
205
|
}
|