@modelcontextprotocol/inspector-client
Supply chain provenance
Status for the latest visible version.
Maintainers
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| semgrep | semgrep:env-spread | AI (semgrep): Standard child-process spawn pattern passing env vars; not exfiltration. | ai | |
| bogus-package | bogus-package | AI (bogus-package): Official MCP org package with provenance; README links are legitimate project URLs. | ai |
v0.22.0
5 findingsSpreading entire process.env into an object — may capture all secrets Source: https://github.com/modelcontextprotocol/inspector/blob/0ba1b8d1d8852e2f179f5a1945895ef97a91459f/bin/start.js#L46 44 | const spawnOptions = { 45 | cwd: resolve(__dirname, "../..", "server"), > 46 | env: { 47 | ...process.env, 48 | SERVER_PORT,
Spreading entire process.env into an object — may capture all secrets Source: https://github.com/modelcontextprotocol/inspector/blob/0ba1b8d1d8852e2f179f5a1945895ef97a91459f/bin/start.js#L115 113 | ], 114 | { > 115 | env: { 116 | ...process.env, 117 | SERVER_PORT,
Spreading entire process.env into an object — may capture all secrets Source: https://github.com/modelcontextprotocol/inspector/blob/0ba1b8d1d8852e2f179f5a1945895ef97a91459f/bin/start.js#L149 147 | const spawnOptions = { 148 | cwd: resolve(__dirname, ".."), > 149 | env: { ...process.env, CLIENT_PORT }, 150 | signal: abort.signal, 151 | echoOutput: true,
Spreading entire process.env into an object — may capture all secrets Source: https://github.com/modelcontextprotocol/inspector/blob/0ba1b8d1d8852e2f179f5a1945895ef97a91459f/bin/start.js#L216 214 | 215 | await spawnPromise("node", [inspectorClientPath], { > 216 | env: { 217 | ...process.env, 218 | CLIENT_PORT,
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v0.19.0
5 findingsSpreading entire process.env into an object — may capture all secrets 44 | const spawnOptions = { 45 | cwd: resolve(__dirname, "../..", "server"), > 46 | env: { 47 | ...process.env, 48 | SERVER_PORT,
Spreading entire process.env into an object — may capture all secrets 111 | ], 112 | { > 113 | env: { 114 | ...process.env, 115 | SERVER_PORT,
Spreading entire process.env into an object — may capture all secrets 144 | const client = spawn(clientCommand, clientArgs, { 145 | cwd: resolve(__dirname, ".."), > 146 | env: { ...process.env, CLIENT_PORT }, 147 | signal: abort.signal, 148 | echoOutput: true,
Spreading entire process.env into an object — may capture all secrets 204 | 205 | await spawnPromise("node", [inspectorClientPath], { > 206 | env: { 207 | ...process.env, 208 | CLIENT_PORT,
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.