coldpass

andriikhanin/mcp-agent-security-test-suite

GitHub ↗ · How this check works

Per-setup public labels: Linux / Luna: Works

Static status badge · SVG · read-only JSON. Embed with ![Coldpass status](https://coldpass.dev/badge/andriikhanin--mcp-agent-security-test-suite.svg).

mcp-server

Works

The recorded run passed on 1 setup.

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

Tested on Linux
PlatformHaikuLuna
Linuxyes

Linux / Luna: yes · Oct 28, 2026 · a47087ae78c3 · codex / codex-cli 0.164.0
Recorded operation: node src/cli.mjs scenario fixtures/scenario-denial.json

Does what it says
1 of 1 claims checked out
  • The tool is an offline synthetic contract-testing tool: Real input produced the expected result: "status": "PASS"

    Source: This is an **offline synthetic contract-testing tool**

    Input: fixtures/scenario-denial.json

    Expected: PASS

    Command: node src/cli.mjs scenario fixtures/scenario-denial.json

    Observed: …"status": "PASS", "scenario": "access-boundaries", "checks": 11, "actualFinal": { "allowed": 2, "denied": 9, "reads": 1, "writes": 1, "notes": 1 }, "mismatches": [], "steps": [ { "step": 1, "decision": "DENY", "reason": "OWNER_MISMATCH", "effect": "NONE", "outcome": "SUCCESS" }, { "step": 2, "decision": "DENY", "reason": "AUDIENCE_MISMATCH", "effect": "NONE", "outcome": "SUCCESS" }, { "step": 3, "decision": "DENY", "reason": "INSUFFICIENT_SCOPE", "effect": "NO

MCP
Documented only
Local or hosted
local
Local: runs on your machine
Needs keys or browser
None seen
Maintained
Maintained
actively maintained: last commit 0 days ago; 165 commits and 158 merged PRs in 90 days; 13 open issues, 0 open PRs; no releases

Last commit Oct 28, 2026

Setup time
40 s
40 s to a working result
Issue
none found in recorded check
Examples
1 of 1 ran as expected
  • Quickstart scenario run: command completed successfully

    Source: README.md / Quickstart

    Input: fixtures/scenario-denial.json

    Expected: PASS

    Command: node src/cli.mjs scenario fixtures/scenario-denial.json

    Observed: n": "DENY", "reason": "APPROVAL_REQUIRED", "effect": "NONE", "outcome": "SUCCESS" }, { "step": 10, "decision": "ALLOW", "reason": "AUTHORIZED", "effect": "WRITE", "outcome": "SUCCESS" }, { "step": 11, "decision": "ALLOW", "reason": "AUTHORIZED", "effect": "READ", "outcome": "SUCCESS" } ], "reportSchemaVersion": 1, "command": "scenario", "exitCode": 0, "summary": { "failureCount": 0, "reportedFindings": 0, "findingsTruncated": false, "ruleCodes": [] }, "guidance": [] }

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.164.0 · Checked operation passed · Oct 28, 2026 on a47087ae78c3

Each entry describes its recorded operation and source revision.

Safety
Looked for credential-like files that were not there: nothing was read

Review signals across current setups: sensitive read. 4 static matches retained as context.

A repository process attempted to read this sensitive path. 154 distinct locations. 154 findings. 157 attributed processes.

Reviewed as expected for a test run: attempted writes that failed, so nothing was written; read only test files inside the test workspace or its temporary folders.

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

Run details
Earlier attempts (1)

Luna

Native agent · Checked operation passed

Checked operation node src/cli.mjs scenario fixtures/scenario-denial.json

Agent-reported scope: Run synthetic scenario contract check

Run details
run
andriikhanin--mcp-agent-security-test-suite-gpt-6-luna-1793200609759453128
date
Oct 28, 2026
time to working
39.7s
product hosting / execution
Local command in the guest
recorded operation scope
product operation
model
gpt-6-luna
agent / version
codex / codex-cli 0.164.0
platform
linux
reported cost
not reported (not assumed free)
Recorded source
https://github.com/andriikhanin/mcp-agent-security-test-suite
Backend
hyperv
Tool transport
mcp-assigned-vm
Requested source pin (not an observed revision)
{"commit": "a47087ae78c3b2997b3f9f1b4a4b04a7fc0d28c0", "url": "https://github.com/andriikhanin/mcp-agent-security-test-suite"}
Test version
readme-604d73685be33b2939b2632791fb1de37972f659febb28a139c60d6e81057c18
revision
a47087ae78c3b2997b3f9f1b4a4b04a7fc0d28c0
Whose fault: not assigned · resolved

Safety: No problems traced to this repository code in these checks. 2 static matches retained as context.

No problems traced to this repository code in these checks. 2 static matches retained as context.

2 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
  • The tool is an offline synthetic contract-testing tool: Real input produced the expected result: "status": "PASS"

    Source: This is an **offline synthetic contract-testing tool**

    Input: fixtures/scenario-denial.json

    Expected: PASS

    Command: node src/cli.mjs scenario fixtures/scenario-denial.json

    Observed: …"status": "PASS", "scenario": "access-boundaries", "checks": 11, "actualFinal": { "allowed": 2, "denied": 9, "reads": 1, "writes": 1, "notes": 1 }, "mismatches": [], "steps": [ { "step": 1, "decision": "DENY", "reason": "OWNER_MISMATCH", "effect": "NONE", "outcome": "SUCCESS" }, { "step": 2, "decision": "DENY", "reason": "AUDIENCE_MISMATCH", "effect": "NONE", "outcome": "SUCCESS" }, { "step": 3, "decision": "DENY", "reason": "INSUFFICIENT_SCOPE", "effect": "NO

Examples

  • Quickstart scenario run: command completed successfully

    Source: README.md / Quickstart

    Input: fixtures/scenario-denial.json

    Expected: PASS

    Command: node src/cli.mjs scenario fixtures/scenario-denial.json

    Observed: n": "DENY", "reason": "APPROVAL_REQUIRED", "effect": "NONE", "outcome": "SUCCESS" }, { "step": 10, "decision": "ALLOW", "reason": "AUTHORIZED", "effect": "WRITE", "outcome": "SUCCESS" }, { "step": 11, "decision": "ALLOW", "reason": "AUTHORIZED", "effect": "READ", "outcome": "SUCCESS" } ], "reportSchemaVersion": 1, "command": "scenario", "exitCode": 0, "summary": { "failureCount": 0, "reportedFindings": 0, "findingsTruncated": false, "ruleCodes": [] }, "guidance": [] }

Local or hosted: local

What the agent did

Run synthetic scenario contract check

pwd; git status --short --branch; rg --files -g 'README*' -g 'pyproject.toml' -g 'package.json' -g 'requirements*.txt' -g 'Makefile' -g 'AGENTS.md' -g '.github/**' | head -80; python3 --version; sed -n '1,240p' README.md
rg --files | head -20; node --version; npm --version; rg -n '^## |^```sh|^```bash' README.md | tail -60; ls -la
grep -nE '^## |^```sh|^```bash' README.md | tail -70; cat package.json; ls .coldpass
sed -n '608,630p' README.md; node src/cli.mjs scenario fixtures/scenario-denial.json
node src/cli.mjs --help | head -15
mkdir -p .coldpass; cat > .coldpass/probe.json <<'EOF'
{"kind":"cli","argv":["node","src/cli.mjs","scenario","fixtures/scenario-denial.json"],"cwd":"<guest-path>","expected_text":"\"status\": \"PASS\""}
EOF
cat > .coldpass/claims.json <<'EOF'
[{"kind":"claim","claim":"Scenario fixture produces synthetic policy results","source":"scenario — synthetic authorization, replay, scoped resources and failure semantics","input":"fixtures/scenario-denial.json","expected":"PASS","probe_kind":"cli","argv":["node","src/cli.mjs","scenario","fixtures/scenario-denial.json"],"expected_text":"\"status\": \"PASS\"","cwd":"<guest-path>"}]
EOF
cat > .coldpass/examples.json <<'EOF'
[{"kind":"example","claim":"Quickstart scenario run","source":"README.md / Quickstart","input":"fixtures/scenario-denial.json","expected":"PASS","argv":["node","src/cli.mjs","scenario","fixtures/scenario-denial.json"],"cwd":"<guest-path>","expected_text":"\"status\": \"PASS\""}]
EOF
cat > .coldpass/cycles.json <<'EOF'
{"detected":false,"checks":[],"reason":"Inspected README entrypoints and package scripts; the documented operations are one-shot CLI contract checks, with no scheduler or recurring cycle."}
EOF

<env-var>=<guest-path> python3 -I <guest-path> --validate --replay
sed -n '18,26p' README.md
cat > .coldpass/claims.json <<'EOF'
[{"kind":"claim","claim":"The tool is an offline synthetic contract-testing tool","source":"This is an **offline synthetic contract-testing tool**","input":"fixtures/scenario-denial.json","expected":"PASS","probe_kind":"cli","argv":["node","src/cli.mjs","scenario","fixtures/scenario-denial.json"],"expected_text":"\"status\": \"PASS\"","cwd":"<guest-path>"}]
EOF

<env-var>=<guest-path> python3 -I <guest-path> --validate --replay
cat > .coldpass/report.json <<'EOF'
{"outcome":"working","fault_owner":null,"operation":"Run synthetic scenario contract check","operation_scope":"README Quickstart scenario fixture; Node.js >=20 prerequisite","steps":["Read README Quickstart and confirmed Node.js 22.23.4 satisfies the >=20 requirement","Ran node src/cli.mjs scenario fixtures/scenario-denial.json; output reported PASS with 11 checks","Saved probe, exact README claim, example and cycle assessment","Validated and replayed evidence with the coldpass checker"],"deviations":["None"],"stuck_step":null,"main_blocker":null,"plain_failure":null,"suggested_fix":null}
EOF

No product verdict. Run record.