CM-61587 MCP scan improvements#418
Merged
gotbadger merged 4 commits intocycodehq:mainfrom Mar 26, 2026
Merged
Conversation
gotbadger
approved these changes
Mar 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scan by path — no more inline file contents
All four scan tools (cycode_secret_scan, cycode_sca_scan, cycode_iac_scan, cycode_sast_scan) now accept a paths parameter: a list of file or directory paths that exist on disk.
Directories are scanned recursively. The Cycode engine handles file discovery and filtering internally, exactly as cycode scan -t sast path ./src does from the CLI. This eliminates token overhead and the previous hard limit on large files like package-lock.json. The files parameter still works as a fallback for in-memory content not yet saved to disk.
Scan results include a plain-English summary
Every successful scan response now includes a "summary" field at the top level:
{ "summary": "Cycode found 3 violations: 1 CRITICAL, 2 HIGH.", "detections": [...], ... }No parsing required to answer "did anything fail?" — the AI client and the human reading the output both get an immediate answer. Severity counts are ordered CRITICAL → HIGH → MEDIUM → LOW.
Pre-authorize tools for subagent use (Claude Code)
Scans launched inside Claude Code subagents (parallel background tasks) were failing because interactive permission prompts can't be shown in that context. The fix is a one-time addition to ~/.claude/settings.json:
{ "allowedTools": [ "mcp__cycode__cycode_secret_scan", "mcp__cycode__cycode_sca_scan", "mcp__cycode__cycode_iac_scan", "mcp__cycode__cycode_sast_scan", "mcp__cycode__cycode_status" ] }Once set, all Cycode tools work in foreground and background subagent contexts without re-prompting.