brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
mcp-dependency-drift-auditStatically audit MCP configs for mutable npm/npx package references before approval or CI, without executing discovered MCP servers.
Independent GitHub snapshot · Automated classification · Original documentation governs
Audit Model Context Protocol configuration files for npm/npx package references that can resolve to different code after the configuration was reviewed. The workflow is deliberately static: it reads config text, classifies version selectors, and recommends reproducibility fixes without starting discovered MCP servers.
Dependency mutability is a review-boundary signal, not proof that a package is malicious, vulnerable, or compromised.
.mcp.json, Cursor, VS Code, GitHub Copilot, Claude, or Windsurf MCP configuration.Inspect known project paths such as .mcp.json, .github/mcp.json, .cursor/mcp.json, .vscode/mcp.json, and .windsurf/mcp.json, plus any MCP config explicitly supplied by the user.
Read them as text/JSON only. Never run a discovered command or args value as part of this audit. Stay inside the requested workspace by default; only include user-level/global MCP configuration if the user explicitly asks for machine-wide scope.
If mcp-drift-check is already installed, use the workspace-scoped mode from the intended repo root:
mcp-drift-check scan-workspace --markdown
For CI evidence:
mcp-drift-check scan-workspace --sarif mcp-drift.sarif --markdown
If the scanner is not installed, explain that the following command fetches the open-source scanner from GitHub and get user approval before running it:
uvx --from git+https://github.com/tomelias10/mcp-drift-check mcp-drift-check scan-workspace --markdown
If the user declines network access or installation, continue with the manual rules below.
For npm/npx-style package selectors:
| Selector | Classification | Reason |
|---|---|---|
package@1.2.3 | SAFE | Exact package version is reproducible. |
bare package or @scope/package | HIGH | A later resolution can select different package code. |
package@latest | HIGH | The selector is explicitly mutable. |
package@^1.2.0, ~1.2.0, >=1.2.0, wildcard | MEDIUM | Resolution can change within the allowed range. |
| local path, script, binary, unknown executable | REVIEW | npm version-drift rules do not establish update behavior. |
Treat -y / --yes as context only. It suppresses interactive confirmation but is not a vulnerability by itself.
For mutable npm/npx references, recommend pinning to an exact version that the team has actually reviewed and then updating that pin deliberately.
Do not guess the version to pin. If registry lookup is needed, explain that it requires network access and ask before querying it.
Pinning improves reproducibility. It does not establish package provenance, vulnerability status, authorization safety, prompt-injection resistance, or runtime isolation.
Return:
| Config | MCP server | Package/reference | Classification | Why | Recommended next step |
|---|
Then state:
User: Audit this repo's MCP config before we approve it. Do not run any MCP servers.
Expected shape:
.mcp.json | browser | @example/browser-mcp@latest | HIGH
Reason: @latest can resolve to different package code later.
Next step: pin the exact version your team reviews and update it deliberately.
No MCP servers were executed.
For GitHub Actions:
- uses: actions/checkout@v4
- uses: tomelias10/mcp-drift-check@v0
MCP Drift Check can also emit SARIF 2.1.0 for GitHub Code Scanning. The action defaults to workspace-only discovery; machine-wide user-level scanning remains an explicit scan-all choice.
uvx path makes a network fetch from the declared GitHub source; obtain user approval before running it.-y as the core finding.
Solution: Report it only as context; the version selector determines the dependency-drift classification.scan-workspace by default; use scan-all only when machine-wide scope is explicit.@mcp-server-security - Broader MCP server hardening, authentication, authorization, transport, and runtime controls.@supply-chain-security - Broader software supply-chain assessment beyond MCP configuration.@sast-scanning - Static application-security analysis for source code rather than MCP launch configuration.