snyk/agent-scan

GitHub ↗ · How this check works

Per-setup public labels: Linux / Haiku: Not tested (needs a key we did not have) · Linux / Luna: Works

Static status badge · SVG · read-only JSON. Embed with ![Coldpass status](https://coldpass.dev/badge/snyk--agent-scan.svg).

mcp-server

Works

README claims checked out on 1 recorded setup. Combinations not listed here were not tested.

Answers apply to each recorded setup, revision and operation. Earlier observations remain in Run details.

Tested on Linux
PlatformHaikuLuna
Linuxneeds a key we did not haveyes

Linux / Haiku 5.5: needs a key we did not have · Oct 23, 2026 · a8c8c5879a00 · claude-code / 2.1.300 (Claude Code)
Recorded operation: product operation

Linux / Luna: yes · Oct 23, 2026 · a8c8c5879a00 · codex / codex-cli 0.163.0
Recorded operation: <guest-path> snyk-agent-scan@latest inspect --json

Does what it says
1 of 1 claims checked out
  • Inspect and display MCP tools, prompts, and resources without security verification.: Real input produced the expected result: {}

    Source: Agent Scan searches through your local agent's configuration files to find agents, skills, and MCP servers.

    Input: empty local agent configuration

    Expected: {}

    Command: <guest-path> snyk-agent-scan@latest inspect --json

    Observed: {}

MCP
Documented only
Local or hosted
both local and hosted
Both a local install and a hosted service
Needs keys or browser
Needs a key or login on some setups
Maintained
Maintained
actively maintained: last commit 1 days ago; 119 commits and 74 merged PRs in 90 days; 12 open issues, 13 open PRs; 4 of 34 recent threads got a maintainer reply, median first reply 12.4h; latest release 2026-10-20

Last commit Oct 23, 2026

Setup time
1 min 3 s
1 min 3 s to a working result
Issue
none found in recorded check
Evidence
README behavior checked
Agent interfaces
CLI, MCP (documented only)
CLI, MCP (documented only)

Observed interfaces were exercised by the checker. Documentation alone does not confirm compatibility.

Tested with
Codex / Luna
  • Linux: Codex / Luna · agent codex-cli 0.163.0 · Checked operation passed · Oct 23, 2026 on a8c8c5879a00

Each entry describes its recorded operation and source revision. Other agent clients were not tested.

Safety
No unexpected network or file activity found in these checks

No problems traced to this repository code in these checks; a short run cannot prove safety. 182 listed items (named-host connections, static matches, dependency advisories) are below and do not change this verdict. 10 static matches retained as context.

OSV reports a known vulnerability in this dependency version. 5 distinct locations. 91 findings.

Full event, path and process lists for each observed setup:

Run details

Haiku 5.5

Native agent · Needs credentials · full use untested

Operation / attempted scope product operation

Agent-reported scope: Snyk Agent Scan CLI (snyk-agent-scan v0.6.9 from PyPI): inspect the demo MCP server's tools, and scan MCP configs for risks

Run details
run
snyk--agent-scan-claude-haiku-5-5-1792769781434926661
date
Oct 23, 2026
time to working
not recorded
product hosting / execution
Not recorded
recorded operation scope
product operation
model
claude-haiku-5-5
agent / version
claude-code / 2.1.300 (Claude Code)
platform
linux
reported cost
$0.023755
Recorded source
https://github.com/snyk/agent-scan
Backend
hyperv
Tool transport
mcp-assigned-vm
Requested source pin (not an observed revision)
{"commit": "a8c8c5879a008edacb2a50d1a9fe0a40ee91d205", "url": "https://github.com/snyk/agent-scan"}
Test version
readme-bdc1b9b3c0d2673aef87e076d14084a8123ddcf09d520c1ee2e364a37c3f4bb9
revision
a8c8c5879a008edacb2a50d1a9fe0a40ee91d205

Prerequisite: full use remains untested. This is not a repo defect.

Whose fault: prerequisite · diagnosed

The scan command needs a Snyk API token (SNYK_TOKEN). No token is available in this guest.

Recorded blocker / warning

Step: uvx --python 3.13 snyk-agent-scan@latest scan ... (requires SNYK_TOKEN)

The scan command needs a Snyk API token (SNYK_TOKEN). No token is available in this guest.

Safety: Review signals: 91 known vulnerability. 5 static matches retained as context.

Review signals: 91 known vulnerability. 5 static matches retained as context.

OSV reports a known vulnerability in this dependency version. 5 distinct locations. 91 findings.

5 hardcoded secret matches retained as context; full list in the evidence.

OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check.

A short run cannot establish that code is safe.

Connections show IP addresses; proxies can hide the final hostname.

Tracing covers dispatched commands and their children, not the whole OS; guest root can interfere with tracing.

Full safety evidence →

Install / setup / connection checks
[
  {
    "status": "PASS",
    "details": {
      "working": false,
      "argv": [
        "<guest-path>",
        "--python",
        "3.13",
        "snyk-agent-scan@latest",
        "scan",
        "/tmp/scan-work/mcp.json",
        "--dangerously-run-mcp-servers",
        "--no-skills"
      ],
      "kind": "cli",
      "returncode": 1,
      "stdout": "Snyk Agent Scan v0.6.9\n\n--dangerously-run-mcp-servers is set: contacting every MCP server listed in the \nscanned configs without prompting. This starts stdio subprocesses and connects \nto remote URLs.\nTip: set --suppress-mcpserver-io=true to hide server stderr output.\n\n[Demo MCP Server] [10/23/26 15:39:56] INFO     Processing request of type       \nserver.py:733\n[Demo MCP Server]                              ListPromptsRequest               \n[Demo MCP Server]                     INFO     Processing request of type       \nserver.py:733\n[excerpt truncated]",
      "stderr": "",
      "needs_credentials": true,
      "needs_browser": false,
      "scope": "partial: missing credentials"
    },
    "check": "credentials_error",
    "optional": false
  }
]
Answers recorded for this run
  • inspect lists the tools of configured MCP servers without analysis: Real input produced the expected result: get_current_time

    Source: Inspect components without analysis

    Input: /tmp/scan-work/mcp.json pointing at the demo MCP server

    Expected: tool names such as get_current_time are printed

    Command: <guest-path> --python 3.13 snyk-agent-scan@latest inspect /tmp/scan-work/mcp.json --dangerously-run-mcp-servers --suppress-mcpserver-io=true

    Observed: get_current_time ├── tool sum ├── tool multiply ├── tool get_comments ├── tool get_api_key ├── tool send_email └── tool delete_file

  • the bundled demo MCP server exposes tools that Agent Scan reports: Real input produced the expected result: delete_file

    Source: This repository includes a vulnerable MCP server that demonstrates Model Context Protocol security findings that Agent Scan reports.

    Input: /tmp/scan-work/mcp.json pointing at demoserver/server.py

    Expected: the delete_file tool is listed

    Command: <guest-path> --python 3.13 snyk-agent-scan@latest inspect /tmp/scan-work/mcp.json --dangerously-run-mcp-servers --suppress-mcpserver-io=true

    Observed: delete_file

  • token-based analysis needs a Snyk API token: scan needs SNYK_TOKEN from a Snyk account (app.snyk.io); no credential is available in this guest. Scan without the token was run and exits 1 asking for SNYK_TOKEN; see probe.json credentials_error check

    Source: Set the token as an environment variable

    Observed: scan needs SNYK_TOKEN from a Snyk account (app.snyk.io); no credential is available in this guest. Scan without the token was run and exits 1 asking for SNYK_TOKEN; see probe.json credentials_error check

Examples

  • inspect without security analysis on a machine with no agent configs: command completed successfully

    Source: README.md Examples: # Inspect without security analysis

    Input: no arguments

    Expected: reports that no MCP client configurations were found

    Command: <guest-path> --python 3.13 snyk-agent-scan@latest inspect

    Observed: Snyk Agent Scan v0.6.9 No MCP client configurations found on this machine.

  • inspect the demo MCP server from the README demo config: command completed successfully

    Source: README.md Demo: step 2 mcp.json and step 3

    Input: demo config at /tmp/scan-work/mcp.json, absolute uv and repo paths

    Expected: lists the demo tools including delete_file

    Command: <guest-path> --python 3.13 snyk-agent-scan@latest inspect /tmp/scan-work/mcp.json --dangerously-run-mcp-servers --suppress-mcpserver-io=true

    Observed: Snyk Agent Scan v0.6.9 --dangerously-run-mcp-servers is set: contacting every MCP server listed in the scanned configs without prompting. This starts stdio subprocesses and connects to remote URLs. ● Scanning /tmp/scan-work/mcp.json found 1 mcp server │ └── Demo MCP Server ├── tool get_current_time ├── tool sum ├── tool multiply ├── tool get_comments ├── tool get_api_key ├── tool send_email └── tool delete_file

Local or hosted: both

Suggested next step (agent-reported): Provide a SNYK_TOKEN from a Snyk account to test the full scan. The inspect path already works and was verified with the bundled demo server.

What the agent did

Snyk Agent Scan CLI (snyk-agent-scan v0.6.9 from PyPI): inspect the demo MCP server's tools, and scan MCP configs for risks

cd <guest-path> && pwd && ls -la && git status 2>&1 | head -3; id -u; python3 --version; cat /etc/os-release | head -2; ls /inputs 2>&1
cd <guest-path> && cat README.md 2>/dev/null | head -300
cd <guest-path> && sed -n 300,400p README.md; echo ----; cat .python-version; echo ----; grep -n -i "install\|uv \|pip" CONTRIBUTING.md Makefile | head -40; ls .coldpass; which uv uvx curl; env | grep -i -E "proxy|snyk" | sed 's/=.*/=<set>/'
cd <guest-path> && git init -q && git remote add origin https://github.com/snyk/agent-scan && git fetch --depth 1 origin a8c8c5879a008edacb2a50d1a9fe0a40ee91d205 2>&1 | tail -3; git reset --mixed FETCH_HEAD 2>&1 | tail -2; git log --oneline -1 2>&1; git status --short | head -5
curl -LsSf https://astral.sh/uv/install.sh -o /tmp/uv-install.sh 2>&1; echo rc=$?; ls -la /tmp/uv-install.sh 2>&1; (env NODE_USE_ENV_PROXY=1 sh /tmp/uv-install.sh 2>&1 | tail -5); echo rc=$?; ls ~/.local/bin 2>/dev/null
cd /tmp && export PATH=$HOME/.local/bin:$PATH && uv --version && uvx --python 3.13 [email protected] --version 2>&1 | tail -5; echo rc=$?; uvx --python 3.13 snyk-agent-scan@latest --help 2>&1 | head -60
cd <guest-path> && ls demoserver && sed -n 1,80p demoserver/server.py | head -80; echo ----; grep -n "dependencies" -A12 pyproject.toml | head -30; echo; ls docs help | head; cat .coldpass/* 2>/dev/null | head -5; ls -la .coldpass
mkdir -p /tmp/scan-work && cat > /tmp/scan-work/mcp.json <<'EOF'
{
  "mcpServers": {
    "Demo MCP Server": {
      "type": "stdio",
      "command": "<host-path>",
      "args": ["run", "--directory", "<guest-path>", "mcp", "run", "demoserver/server.py"]
    }
  }
}
EOF
cd /tmp && export PATH=$HOME/.local/bin:$PATH; echo HOME=$HOME; ls -la <host-path> 2>&1; timeout 600 uvx --python 3.13 snyk-agent-scan@latest inspect /tmp/scan-work/mcp.json --dangerously-run-mcp-servers --print-errors 2>&1 | tail -60; echo rc=${PIPESTATUS[0]}
cd /tmp && export PATH=$HOME/.local/bin:$PATH; U=$(command -v uv); echo $U; sed -i "s#<host-path>" /tmp/scan-work/mcp.json && cat /tmp/scan-work/mcp.json && timeout 900 uvx --python 3.13 snyk-agent-scan@latest inspect /tmp/scan-work/mcp.json --dangerously-run-mcp-servers --suppress-mcpserver-io=true 2>&1 | tail -80; echo rc=${PIPESTATUS[0]}
cd /tmp && export PATH=$HOME/.local/bin:$PATH; env -u SNYK_TOKEN timeout 900 uvx --python 3.13 snyk-agent-scan@latest scan /tmp/scan-work/mcp.json --dangerously-run-mcp-servers --suppress-mcpserver-io=true --no-skills 2>&1 | tail -30; echo rc=${PIPESTATUS[0]}
ls -la <guest-path> 2>&1; ls <guest-path>; cd <guest-path> && grep -rn -i "interval\|cron\|schedul\|while True\|--once\|--now\|background" src --include=*.py | grep -v test | head -30; echo ---; grep -n "^def \|add_argument(\"--" src/agent_scan/run.py | head -60
cd <guest-path> && grep -n "expected_returncode\|credentials_error\|\"checks\"\|'checks'\|testable\|\"reason\"\|deferred\|stays_running\|expected_file" check.py | head -60; grep -n "def main\|argparse\|add_argument" check.py | head
cd <guest-path> && sed -n 696,712p check.py; sed -n 1128,1140p check.py; sed -n 1273,1300p check.py
cd /tmp && U=<guest-path>; timeout 900 $U --python 3.13 snyk-agent-scan@latest inspect </dev/null 2>&1 | tail -15; echo rc=${PIPESTATUS[0]}; cd <guest-path> && grep -c "Inspect components without analysis" README.md; grep -n "This repository includes a vulnerable MCP server that demonstrates Model Context Protocol security findings that Agent Scan reports." README.md | cut -c1-20; grep -n "snyk-agent-scan inspect \[CONFIG_FILE...\]    Inspect components without analysis" README.md | cut -c1-30
cd <guest-path> && U=<guest-path> && cat > probe.json <<EOF
{"checks":[
 {"check":"operation","kind":"cli","argv":["$U","--python","3.13","snyk-agent-scan@latest","inspect","/tmp/scan-work/mcp.json","--dangerously-run-mcp-servers","--suppress-mcpserver-io=true"],"cwd":"/tmp","expected_text":"get_current_time"},
 {"check":"credentials_error","kind":"cli","argv":["$U","--python","3.13","snyk-agent-scan@latest","scan","/tmp/scan-work/mcp.json","--dangerously-run-mcp-servers","--no-skills"],"cwd":"/tmp","expected_returncode":1}
]}
EOF
cat > claims.json <<EOF
[
 {"kind":"claim","claim":"inspect lists the tools of configured MCP servers without analysis","source":"Inspect components without analysis","input":"/tmp/scan-work/mcp.json pointing at the demo MCP server","expected":"tool names such as get_current_time are printed","probe_kind":"cli","argv":["$U","--python","3.13","snyk-agent-scan@latest","inspect","/tmp/scan-work/mcp.json","--dangerously-run-mcp-servers","--suppress-mcpserver-io=true"],"cwd":"/tmp","expected_text":"get_current_time"},
 {"kind":"claim","claim":"the bundled demo MCP server exposes tools that Agent Scan reports","source":"This repository includes a vulnerable MCP server that demonstrates Model Context Protocol security findings that Agent Scan reports.","input":"/tmp/scan-work/mcp.json pointing at demoserver/server.py","expected":"the delete_file tool is listed","probe_kind":"cli","argv":["$U","--python","3.13","snyk-agent-scan@latest","inspect","/tmp/scan-work/mcp.json","--dangerously-run-mcp-servers","--suppress-mcpserver-io=true"],"cwd":"/tmp","expected_text":"delete_file"},
 {"kind":"claim","claim":"token-based analysis needs a Snyk API token","source":"Set the token as an environment variable","testable":false,"reason":"scan needs SNYK_TOKEN from a Snyk account (app.snyk.io); no credential is available in this guest. Scan without the token was run and exits 1 asking for SNYK_TOKEN; see probe.json credentials_error check"}
]
EOF
cat > examples.json <<EOF
[
 {"kind":"example","claim":"inspect without security analysis on a machine with no agent configs","source":"README.md Examples: # Inspect without security analysis","input":"no arguments","expected":"reports that no MCP client configurations were found","argv":["$U","--python","3.13","snyk-agent-scan@latest","inspect"],"cwd":"/tmp","stdin":"","expected_text":"No MCP client configurations found on this machine."},
 {"kind":"example","claim":"inspect the demo MCP server from the README demo config","source":"README.md Demo: step 2 mcp.json and step 3","input":"demo config at /tmp/scan-work/mcp.json, absolute uv and repo paths","expected":"lists the demo tools including delete_file","argv":["$U","--python","3.13","snyk-agent-scan@latest","inspect","/tmp/scan-work/mcp.json","--dangerously-run-mcp-servers","--suppress-mcpserver-io=true"],"cwd":"/tmp","stdin":"","expected_text":"delete_file"}
]
EOF
cat > cycles.json <<'EOF'
{"detected":false,"reason":"Entry points inspected: src/agent_scan/run.py and cli.py are one-shot commands (scan, inspect, help, evo, guard). The only loop-like code is in traffic_capture.py and agents/base.py, which are not schedulers. README 'Background Mode (MDM)' scans on a schedule but reports to an external Snyk Evo service that is not in this repository and needs a Snyk account; no local cron, --once, or --now trigger exists in the product. Nothing was run as a cycle.","checks":[]}
EOF
for f in probe claims examples cycles; do python3 -m json.tool $f.json >/dev/null && echo "$f ok"; done; cd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | python3 -m json.tool | head -150
pgrep -fa "demoserver|snyk-agent-scan|mcp run" || echo "no leftover processes"; mkdir -p <guest-path> && cat > <guest-path> <<'EOF'
{"outcome":"needs_credentials",
 "fault_owner":"prerequisite",
 "operation":"Snyk Agent Scan CLI (snyk-agent-scan v0.6.9 from PyPI): inspect the demo MCP server's tools, and scan MCP configs for risks",
 "operation_scope":"Working without a Snyk account: the inspect command lists the tools of the bundled demo MCP server. The full scan (risk analysis through the Snyk API) needs a SNYK_TOKEN from app.snyk.io, which was not available in this guest. Background Mode (Snyk Evo) is outside this repository.",
 "steps":[
  "git init; git remote add origin https://github.com/snyk/agent-scan; git fetch --depth 1 origin a8c8c5879a008edacb2a50d1a9fe0a40ee91d205; git reset --mixed FETCH_HEAD",
  "curl -LsSf https://astral.sh/uv/install.sh -o /tmp/uv-install.sh; env NODE_USE_ENV_PROXY=1 sh /tmp/uv-install.sh (uv 0.13.5 installed to <guest-path>)",
  "uvx --python 3.13 snyk-agent-scan@latest inspect /tmp/scan-work/mcp.json --dangerously-run-mcp-servers --suppress-mcpserver-io=true (run from /tmp; lists 7 demo tools)",
  "uvx --python 3.13 snyk-agent-scan@latest inspect (README Examples; reports no MCP configs on this machine)",
  "uvx --python 3.13 snyk-agent-scan@latest scan /tmp/scan-work/mcp.json --dangerously-run-mcp-servers --no-skills (exit 1: needs SNYK_TOKEN)"],
 "deviations":[
  "Guest python3 is 3.12.3; README requires Python 3.13 for uvx. Installed uv and let uvx fetch Python 3.13 (uvx --python 3.13). System Python was not changed.",
  "uv was installed by downloading the astral.sh installer to a file and running it, instead of piping curl into sh.",
  "README demo config runs `uv run mcp run demoserver/server.py` relative to the repo root. The config lives in /tmp/scan-work (outside the checkout), so it uses an absolute uv path and `uv run --directory <guest-path>",
  "Probes run with cwd /tmp instead of the checkout, because snyk-agent-scan is a published package (same rule as npx).",
  "The full `scan` needs SNYK_TOKEN, which is not provided. Recorded as a credentials_error check in probe.json and as a blocked claim. `--dangerously-run-mcp-servers` was used only on the bundled demo server in this disposable guest.",
  "Demo server writes /tmp/.small-mcp-server as a side effect (product source behavior)."],
 "stuck_step":"uvx --python 3.13 snyk-agent-scan@latest scan ... (requires SNYK_TOKEN)",
 "main_blocker":"The scan command needs a Snyk API token (SNYK_TOKEN). No token is available in this guest.",
 "plain_failure":"The tool runs and can list the tools of an MCP server without a login. The actual security scan will not run without a Snyk account token, and the tool asks for one and exits with an error.",
 "suggested_fix":"Provide a SNYK_TOKEN from a Snyk account to test the full scan. The inspect path already works and was verified with the bundled demo server."}
EOF
python3 -m json.tool <guest-path> >/dev/null && echo report ok; cd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | python3 -c "import json,sys; d=json.load(sys.stdin); print('valid',d['valid'],'problems',d['problems'],'replay',d['replay']['status'])"
Earlier attempts (1)

Luna

Native agent · Checked operation passed

Checked operation <guest-path> snyk-agent-scan@latest inspect --json

Agent-reported scope: uvx snyk-agent-scan@latest inspect --json

Run details
run
snyk--agent-scan-gpt-6-luna-1792770068966562069
date
Oct 23, 2026
time to working
62.5s
product hosting / execution
Local command in the guest
recorded operation scope
product operation
model
gpt-6-luna
agent / version
codex / codex-cli 0.163.0
platform
linux
reported cost
not reported (not assumed free)
Recorded source
https://github.com/snyk/agent-scan
Backend
hyperv
Tool transport
mcp-assigned-vm
Requested source pin (not an observed revision)
{"commit": "a8c8c5879a008edacb2a50d1a9fe0a40ee91d205", "url": "https://github.com/snyk/agent-scan"}
Test version
readme-f72312298d35d84837d4fc5f6f22b138d54d456600b5ed431e36e8f5db931dbf
revision
a8c8c5879a008edacb2a50d1a9fe0a40ee91d205
Whose fault: not assigned · resolved

Safety: Review signals: 91 known vulnerability. 5 static matches retained as context.

Review signals: 91 known vulnerability. 5 static matches retained as context.

OSV reports a known vulnerability in this dependency version. 5 distinct locations. 91 findings.

5 hardcoded secret matches retained as context; full list in the evidence.

OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check.

A short run cannot establish that code is safe.

Connections show IP addresses; proxies can hide the final hostname.

Tracing covers dispatched commands and their children, not the whole OS; guest root can interfere with tracing.

Full safety evidence →

Answers recorded for this run
  • Inspect and display MCP tools, prompts, and resources without security verification.: Real input produced the expected result: {}

    Source: Agent Scan searches through your local agent's configuration files to find agents, skills, and MCP servers.

    Input: empty local agent configuration

    Expected: {}

    Command: <guest-path> snyk-agent-scan@latest inspect --json

    Observed: {}

Local or hosted: both

What the agent did

uvx snyk-agent-scan@latest inspect --json

cd <guest-path> && (vault-search 'agent-scan Snyk repository README setup' || true) && cat <host-path> 2>/dev/null && cat ~/.agents/skills/i-have-adhd/SKILL.md 2>/dev/null && cat ~/.agents/skills/ponytail/SKILL.md 2>/dev/null && cat ~/.agents/skills/p3-mode/SKILL.md 2>/dev/null && rg --files -g 'AGENTS.md' -g 'README*' -g 'pyproject.toml' -g 'package.json' -g 'Makefile' -g '.github/workflows/*' -g '*requirements*' | head -100 && git status --short --branch && git log -1 --oneline && sed -n '1,240p' README.md
cd <guest-path> && for f in <host-path> ~/.agents/skills/i-have-adhd/SKILL.md ~/.agents/skills/ponytail/SKILL.md ~/.agents/skills/p3-mode/SKILL.md; do if test -r "$f"; then printf '\n--- %s ---\n' "$f"; cat "$f"; fi; done; printf '\n--- files ---\n'; rg --files -g 'AGENTS.md' -g 'README*' -g 'pyproject.toml' -g 'package.json' -g 'Makefile' -g '.github/workflows/*' -g '*requirements*' | head -100; printf '\n--- git ---\n'; git status --short --branch; git log -1 --oneline; printf '\n--- readme ---\n'; sed -n '1,240p' README.md; printf '\n--- uid/python ---\n'; id -u; python3 --version
cd <guest-path> && tail -200 README.md; find .. -name AGENTS.md -print; command -v uv || true; command -v curl; command -v git; git init -q && git remote add origin https://github.com/snyk/agent-scan && git fetch --depth 1 origin a8c8c5879a008edacb2a50d1a9fe0a40ee91d205 && git reset --mixed FETCH_HEAD
cd <guest-path> && mkdir -p .coldpass && (curl -LsSf https://astral.sh/uv/install.sh | sh) && <host-path> --version
cd <guest-path> && <guest-path> --version && <guest-path> snyk-agent-scan@latest --help | head -50
cd <guest-path> && <guest-path> snyk-agent-scan@latest inspect --help; sed -n '1,160p' docs/scanning.md
cd <guest-path> && env -u SNYK_TOKEN <guest-path> snyk-agent-scan@latest inspect --json > <guest-path>; rc=$?; cat <guest-path>; printf 'returncode=%s\n' "$rc"; mkdir -p .coldpass; python3 - <<'PY'
import json
p='<guest-path>'
json.dump({'kind':'cli','argv':['<guest-path>','snyk-agent-scan@latest','inspect','--json'],'cwd':'<guest-path>','expected_text':'"scan_path_responses"'},open(p+'/probe.json','w'),indent=2)
json.dump([{'kind':'claim','claim':'Inspect components without security analysis.','source':'Inspect and display MCP tools, prompts, and resources without security\nverification.','input':'empty local agent configuration','expected':'inspect output','probe_kind':'cli','argv':['<guest-path>','snyk-agent-scan@latest','inspect','--json'],'expected_text':'"scan_path_responses"','cwd':'<guest-path>'}],open(p+'/claims.json','w'),indent=2)
json.dump([],open(p+'/examples.json','w'),indent=2)
json.dump({'detected':False,'reason':'README documents one-shot CLI scans and background mode requires Snyk Evo contact; no local scheduler cycle is exposed.','checks':[]},open(p+'/cycles.json','w'),indent=2)
PY
cd <guest-path> && cat .coldpass/probe.json; cat > .coldpass/probe.json <<'EOF'
{"kind":"cli","argv":["<guest-path>","snyk-agent-scan@latest","inspect","--json"],"cwd":"<guest-path>","expected_text":"{}"}
EOF
cat > .coldpass/claims.json <<'EOF'
[{"kind":"claim","claim":"Inspect and display MCP tools, prompts, and resources without security verification.","source":"Inspect and display MCP tools, prompts, and resources without security\nverification.","input":"empty local agent configuration","expected":"{}","probe_kind":"cli","argv":["<guest-path>","snyk-agent-scan@latest","inspect","--json"],"expected_text":"{}","cwd":"<guest-path>"}]
EOF
cat > .coldpass/report.json <<'EOF'
{"outcome":"working","fault_owner":null,"operation":"uvx snyk-agent-scan@latest inspect --json","operation_scope":"Local discovery and inspection; Snyk API scan requires SNYK_TOKEN.","steps":["Installed uv using the README linked installer.","Ran the README documented inspect operation; it returned {} with exit code 0."],"deviations":["uv installer placed binaries at <guest-path>; initial assumed path was incorrect, then used installed executable."],"stuck_step":null,"main_blocker":null,"plain_failure":null,"suggested_fix":null}
EOF
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay
cd <guest-path> && python3 - <<'PY'
import json
p='.coldpass/claims.json'; d=json.load(open(p)); d[0]['source']='Inspect and display tools, prompts, and resources without security verification.'; json.dump(d,open(p,'w'),indent=2)
PY
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay
cd <guest-path> && python3 - <<'PY'
import json
p='.coldpass/claims.json'; d=json.load(open(p)); d[0]['source']='Agent Scan searches through your local agent\'s configuration files to find agents, skills, and MCP servers.'; json.dump(d,open(p,'w'),indent=2)
PY
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay