@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.
Files changed (52) hide show
  1. package/README.md +26 -22
  2. package/bin/mcp-server.js +1045 -168
  3. package/bin/mcp-server.js.map +27 -22
  4. package/dist/commonjs/lib/config.d.ts +2 -2
  5. package/dist/commonjs/lib/config.js +2 -2
  6. package/dist/commonjs/mcp-server/cli/start/command.d.ts.map +1 -1
  7. package/dist/commonjs/mcp-server/cli/start/command.js +12 -0
  8. package/dist/commonjs/mcp-server/cli/start/command.js.map +1 -1
  9. package/dist/commonjs/mcp-server/cli/start/impl.d.ts +2 -0
  10. package/dist/commonjs/mcp-server/cli/start/impl.d.ts.map +1 -1
  11. package/dist/commonjs/mcp-server/cli/start/impl.js +67 -20
  12. package/dist/commonjs/mcp-server/cli/start/impl.js.map +1 -1
  13. package/dist/commonjs/mcp-server/cli/start/sse-security.d.ts +5 -0
  14. package/dist/commonjs/mcp-server/cli/start/sse-security.d.ts.map +1 -0
  15. package/dist/commonjs/mcp-server/cli/start/sse-security.js +26 -0
  16. package/dist/commonjs/mcp-server/cli/start/sse-security.js.map +1 -0
  17. package/dist/commonjs/mcp-server/cli/start/tls-blocklist.d.ts +48 -0
  18. package/dist/commonjs/mcp-server/cli/start/tls-blocklist.d.ts.map +1 -0
  19. package/dist/commonjs/mcp-server/cli/start/tls-blocklist.js +206 -0
  20. package/dist/commonjs/mcp-server/cli/start/tls-blocklist.js.map +1 -0
  21. package/dist/commonjs/mcp-server/mcp-server.js +1 -1
  22. package/dist/commonjs/mcp-server/server.js +1 -1
  23. package/dist/esm/lib/config.d.ts +2 -2
  24. package/dist/esm/lib/config.js +2 -2
  25. package/dist/esm/mcp-server/cli/start/command.d.ts.map +1 -1
  26. package/dist/esm/mcp-server/cli/start/command.js +12 -0
  27. package/dist/esm/mcp-server/cli/start/command.js.map +1 -1
  28. package/dist/esm/mcp-server/cli/start/impl.d.ts +2 -0
  29. package/dist/esm/mcp-server/cli/start/impl.d.ts.map +1 -1
  30. package/dist/esm/mcp-server/cli/start/impl.js +67 -20
  31. package/dist/esm/mcp-server/cli/start/impl.js.map +1 -1
  32. package/dist/esm/mcp-server/cli/start/sse-security.d.ts +5 -0
  33. package/dist/esm/mcp-server/cli/start/sse-security.d.ts.map +1 -0
  34. package/dist/esm/mcp-server/cli/start/sse-security.js +21 -0
  35. package/dist/esm/mcp-server/cli/start/sse-security.js.map +1 -0
  36. package/dist/esm/mcp-server/cli/start/tls-blocklist.d.ts +48 -0
  37. package/dist/esm/mcp-server/cli/start/tls-blocklist.d.ts.map +1 -0
  38. package/dist/esm/mcp-server/cli/start/tls-blocklist.js +192 -0
  39. package/dist/esm/mcp-server/cli/start/tls-blocklist.js.map +1 -0
  40. package/dist/esm/mcp-server/mcp-server.js +1 -1
  41. package/dist/esm/mcp-server/server.js +1 -1
  42. package/jsr.json +1 -1
  43. package/package.json +3 -1
  44. package/src/lib/config.ts +2 -2
  45. package/src/mcp-server/cli/start/command.ts +14 -0
  46. package/src/mcp-server/cli/start/impl.ts +80 -20
  47. package/src/mcp-server/cli/start/sse-security.ts +31 -0
  48. package/src/mcp-server/cli/start/tls-blocklist.ts +252 -0
  49. package/src/mcp-server/mcp-server.ts +1 -1
  50. package/src/mcp-server/server.ts +1 -1
  51. package/test/sse-security.test.mjs +84 -0
  52. package/test/tls-blocklist.test.mjs +314 -0
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # LaunchDarkly's Model Context Protocol (MCP) Server
1
+ # LaunchDarkly local MCP server
2
2
 
3
- The official [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for [LaunchDarkly](https://launchdarkly.com/).
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's Model Context Protocol (MCP) Server](#launchdarklys-model-context-protocol-mcp-server)
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
- Then, configure your server definition to reference your local clone. For example:
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
- "command": "npx",
191
- "args": [
192
- "-y", "--package", "@launchdarkly/mcp-server", "--", "mcp", "start",
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
  }