{
  "run_id": "arcadeai-labs--mcpx-claude-haiku-5-5-1792811016739004609",
  "date": "2026-10-24T03:21:12.987290+00:00",
  "repo": "arcadeai-labs/mcpx",
  "kind": "repo",
  "source": "https://github.com/arcadeai-labs/mcpx",
  "commit": "ce6135ae654f96d8fb022e9d884d5fe0ef7ec1e9",
  "model": "claude-haiku-5-5",
  "model_version": "claude-haiku-5-5",
  "test_version": "readme-bdc1b9b3c0d2673aef87e076d14084a8123ddcf09d520c1ee2e364a37c3f4bb9",
  "pass": true,
  "outcome": "pass",
  "time_to_working_s": 1004.0976317450404,
  "total_s": 1056.2482130527496,
  "steps": [
    "cd <guest-path> && pwd && ls -la && id -u && python3 --version && cat README.md 2>/dev/null | head -200",
    "ls -la <guest-path> ; ls /inputs 2>/dev/null; ls <guest-path> 2>/dev/null",
    "cd <guest-path> && grep -n '^#' README.md; echo ---; grep -n -A6 -i 'bun run\\|bun test\\|npm \\|development\\|## Contrib' README.md | head -120; echo ---; cat install.sh; echo ---; cat package.json; echo; which bun node npm git curl; git --version 2>&1",
    "cd <guest-path> && git init -q 2>&1; git remote add origin https://github.com/arcadeai-labs/mcpx 2>&1; timeout 120 git fetch --depth 1 origin ce6135ae654f96d8fb022e9d884d5fe0ef7ec1e9 2>&1 | tail -3; git reset --mixed FETCH_HEAD 2>&1 | tail -2; git log --oneline -1; git status --short | head; sudo -n true && echo SUDO_OK; echo NODE_USE_ENV_PROXY=$NODE_USE_ENV_PROXY; env | grep -i proxy | sed 's/=.*@/=***@/'",
    "cd /tmp && curl -fsSL https://raw.githubusercontent.com/arcadeai-labs/mcpx/main/install.sh | bash 2>&1 | tail -20; echo \"exit=${PIPESTATUS[0]}\"; which mcpx && mcpx --version",
    "cd <guest-path> && sed -n 237,262p README.md; sed -n 348,366p README.md; echo ---; ls test test/* | head -80; echo ---; which node npx; node --version 2>&1",
    "cat /etc/os-release | head -3; (sudo apt-get update -qq 2>&1 | tail -3; sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq nodejs npm 2>&1 | tail -5); node --version; npm --version",
    "export NODE_USE_ENV_PROXY=1 MCP_CONFIG_PATH=/tmp/mcpx-config; mkdir -p /tmp/mcpx-config /tmp/mcpx-fs && echo \"hello from mcpx\" > /tmp/mcpx-fs/hello.txt; cd /tmp && timeout 300 mcpx add filesystem --command npx -- -y @modelcontextprotocol/server-filesystem /tmp/mcpx-fs 2>&1 | tail -5; echo \"---servers\"; timeout 120 mcpx servers 2>&1 | tail -5; echo \"---list\"; timeout 180 mcpx -d 2>&1 | tail -30",
    "export NODE_USE_ENV_PROXY=1 MCP_CONFIG_PATH=/tmp/mcpx-config; cd /tmp && timeout 180 mcpx exec filesystem read_text_file '{\"path\": \"/tmp/mcpx-fs/hello.txt\"}' 2>&1; echo \"exit=$?\"; echo ---; timeout 180 mcpx exec filesystem read_text_file -- --path=/tmp/mcpx-fs/hello.txt 2>&1; echo \"exit=$?\"; echo ---; timeout 60 mcpx exec filesystem read_text_file '{}' 2>&1; echo \"exit=$?\"",
    "cd <guest-path> && grep -rniE 'setInterval|cron|schedul|--once|--now|webhook|watch\\(' src --include=*.ts | head -20; echo \"---\"; export NODE_USE_ENV_PROXY=1 MCP_CONFIG_PATH=/tmp/mcpx-config; cd /tmp && timeout 120 mcpx info filesystem 2>&1 | head -30; echo \"exit=$?\"; timeout 60 mcpx ping 2>&1 | head -20",
    "cd <guest-path> && wc -l check.py && grep -n 'source_file\\|\"stdin\"\\|expected_file\\|def \\|cycles\\|examples.json\\|claims.json\\|probe.json\\|report.json' check.py | head -90",
    "cd <guest-path> && mkdir -p .coldpass && cat > .coldpass/probe.json <<'EOF'\n{\"kind\":\"cli\",\"argv\":[\"mcpx\",\"exec\",\"filesystem\",\"read_text_file\",\"{\\\"path\\\": \\\"/tmp/mcpx-fs/hello.txt\\\"}\"],\"cwd\":\"<guest-path>\",\"env\":{\"MCP_CONFIG_PATH\":\"/tmp/mcpx-config\",\"NODE_USE_ENV_PROXY\":\"1\"},\"expected_text\":\"hello from mcpx\"}\nEOF\ncat > .coldpass/claims.json <<'EOF'\n[\n{\"kind\":\"claim\",\"claim\":\"Execute a tool with JSON args returns the file contents\",\"source\":\"# Execute a tool (JSON args)\",\"input\":\"read_text_file on /tmp/mcpx-fs/hello.txt\",\"expected\":\"file text is returned\",\"probe_kind\":\"cli\",\"argv\":[\"mcpx\",\"exec\",\"filesystem\",\"read_text_file\",\"{\\\"path\\\": \\\"/tmp/mcpx-fs/hello.txt\\\"}\"],\"expected_text\":\"hello from mcpx\",\"cwd\":\"<guest-path>\",\"env\":{\"MCP_CONFIG_PATH\":\"/tmp/mcpx-config\",\"NODE_USE_ENV_PROXY\":\"1\"}},\n{\"kind\":\"claim\",\"claim\":\"Shell-style flags are parsed against the tool schema and execute the tool\",\"source\":\"# Execute a tool with shell-style flags (anything after `--` is parsed against the tool's input schema)\",\"input\":\"--path=/tmp/mcpx-fs/hello.txt\",\"expected\":\"file text is returned\",\"probe_kind\":\"cli\",\"argv\":[\"mcpx\",\"exec\",\"filesystem\",\"read_text_file\",\"--\",\"--path=/tmp/mcpx-fs/hello.txt\"],\"expected_text\":\"hello from mcpx\",\"cwd\":\"<guest-path>\",\"env\":{\"MCP_CONFIG_PATH\":\"/tmp/mcpx-config\",\"NODE_USE_ENV_PROXY\":\"1\"}}\n]\nEOF\ncat > .coldpass/cycles.json <<'EOF'\n{\"detected\":false,\"reason\":\"Inspected README.md (no cron, schedule, loop, webhook, --once or --now feature) and src/ (grep for setInterval, cron, schedul, --once, --now, webhook, watch found no product scheduler; the only 'schedule' hit is a naming-rule string in src/check/rules/helpers/naming.ts). mcpx is a one-shot CLI, so no product cycle exists to trigger.\",\"checks\":[]}\nEOF\ncat > .coldpass/examples.json <<'EOF'\n[\n{\"kind\":\"example\",\"claim\":\"Inspect a server\",\"source\":\"README.md # Inspect a server\",\"input\":\"filesystem\",\"expected\":\"server overview including its name\",\"argv\":[\"mcpx\",\"info\",\"filesystem\"],\"cwd\":\"<guest-path>\",\"env\":{\"MCP_CONFIG_PATH\":\"/tmp/mcpx-config\",\"NODE_USE_ENV_PROXY\":\"1\"},\"expected_text\":\"secure-filesystem-server\"},\n{\"kind\":\"example\",\"claim\":\"Execute a tool with shell-style flags\",\"source\":\"README.md # Execute a tool with shell-style flags\",\"input\":\"-- --path=/tmp/mcpx-fs/hello.txt\",\"expected\":\"file text is returned\",\"argv\":[\"mcpx\",\"exec\",\"filesystem\",\"read_text_file\",\"--\",\"--path=/tmp/mcpx-fs/hello.txt\"],\"cwd\":\"<guest-path>\",\"env\":{\"MCP_CONFIG_PATH\":\"/tmp/mcpx-config\",\"NODE_USE_ENV_PROXY\":\"1\"},\"expected_text\":\"hello from mcpx\"},\n{\"kind\":\"example\",\"claim\":\"Search tools (keyword + semantic matching)\",\"source\":\"README.md ## Search\",\"reason\":\"Not run: mcpx search and mcpx index need the semantic embedding model (@huggingface/transformers) and a built search index, which requires a model download from the network; the guest is not set up for that. Quick Start search was not executed.\"},\n{\"kind\":\"example\",\"claim\":\"Repository test suite\",\"source\":\"README.md ## Development\",\"reason\":\"Not run: the Development section requires Bun (bun install, bun test); Bun is not installed in this guest and the README points to bun.sh for it. The installed mcpx binary was exercised through the Quick Start instead.\"}\n]\nEOF\nfor f in probe claims cycles examples; do python3 -I -m json.tool .coldpass/$f.json >/dev/null && echo \"$f ok\"; done\n<env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | tail -60",
    "cd /tmp && timeout 300 bash -c 'curl -fsSL https://bun.sh/install | bash' 2>&1 | tail -4; echo \"exit=$?\"; ls ~/.bun/bin 2>/dev/null && ~/.bun/bin/bun --version",
    "sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq unzip >/dev/null 2>&1; cd /tmp && timeout 300 bash -c 'curl -fsSL https://bun.sh/install | bash' 2>&1 | tail -3; ~/.bun/bin/bun --version",
    "export PATH=$HOME/.bun/bin:$PATH; cd <guest-path> && timeout 600 bun install 2>&1 | tail -4; echo \"install_exit=${PIPESTATUS[0]}\"; timeout 900 bun test 2>&1 | tail -25; echo \"test_exit=${PIPESTATUS[0]}\"",
    "export NODE_USE_ENV_PROXY=1 MCP_CONFIG_PATH=/tmp/mcpx-config; echo $HOME; cd /tmp && timeout 400 mcpx index 2>&1 | tail -6; echo \"index_exit=${PIPESTATUS[0]}\"; timeout 200 mcpx search -k \"*read*\" 2>&1 | head -12; echo \"kw_exit=${PIPESTATUS[0]}\"",
    "export NODE_USE_ENV_PROXY=1 MCP_CONFIG_PATH=/tmp/mcpx-config; cd /tmp && timeout 400 mcpx search -q \"open a text file and show its contents\" -n 3 2>&1 | head -30; echo \"sem_exit=${PIPESTATUS[0]}\"; ls -la /tmp/mcpx-config",
    "cd <guest-path> && cat > .coldpass/examples.json <<'EOF'\n[\n{\"kind\":\"example\",\"claim\":\"Inspect a server\",\"source\":\"README.md # Inspect a server\",\"input\":\"filesystem\",\"expected\":\"server overview including its name\",\"argv\":[\"mcpx\",\"info\",\"filesystem\"],\"cwd\":\"<guest-path>\",\"env\":{\"MCP_CONFIG_PATH\":\"/tmp/mcpx-config\",\"NODE_USE_ENV_PROXY\":\"1\"},\"expected_text\":\"secure-filesystem-server\"},\n{\"kind\":\"example\",\"claim\":\"Execute a tool with shell-style flags\",\"source\":\"README.md # Execute a tool with shell-style flags\",\"input\":\"-- --path=/tmp/mcpx-fs/hello.txt\",\"expected\":\"file text is returned\",\"argv\":[\"mcpx\",\"exec\",\"filesystem\",\"read_text_file\",\"--\",\"--path=/tmp/mcpx-fs/hello.txt\"],\"cwd\":\"<guest-path>\",\"env\":{\"MCP_CONFIG_PATH\":\"/tmp/mcpx-config\",\"NODE_USE_ENV_PROXY\":\"1\"},\"expected_text\":\"hello from mcpx\"},\n{\"kind\":\"example\",\"claim\":\"Keyword/glob search only\",\"source\":\"README.md # Search with only keyword/glob matching (fast, no embeddings)\",\"input\":\"-k *read*\",\"expected\":\"read_text_file is matched by keyword\",\"argv\":[\"mcpx\",\"search\",\"-k\",\"*read*\"],\"cwd\":\"<guest-path>\",\"env\":{\"MCP_CONFIG_PATH\":\"/tmp/mcpx-config\",\"NODE_USE_ENV_PROXY\":\"1\"},\"expected_text\":\"read_text_file\"},\n{\"kind\":\"example\",\"claim\":\"Semantic search only\",\"source\":\"README.md # Search with only semantic matching\",\"input\":\"-q open a text file and show its contents\",\"expected\":\"read_text_file is matched semantically\",\"argv\":[\"mcpx\",\"search\",\"-q\",\"open a text file and show its contents\",\"-n\",\"3\"],\"cwd\":\"<guest-path>\",\"env\":{\"MCP_CONFIG_PATH\":\"/tmp/mcpx-config\",\"NODE_USE_ENV_PROXY\":\"1\"},\"expected_text\":\"read_text_file\"},\n{\"kind\":\"example\",\"claim\":\"Repository test suite runs offline\",\"source\":\"README.md ## Development\",\"input\":\"bun test\",\"expected\":\"all tests pass with 0 failures\",\"argv\":[\"<guest-path>\",\"test\"],\"cwd\":\"<guest-path>\",\"env\":{},\"expected_text\":\"0 fail\"}\n]\nEOF\npython3 -I -m json.tool .coldpass/examples.json >/dev/null && echo ok; <env-var>=<guest-path> python3 -I <guest-path> --validate --replay > <guest-path> 2>&1; echo \"exit=$?\"; python3 -I -c \"\nimport json,sys\nd=json.load(open('<guest-path>')) if False else None\n\" ; tail -c 1500 <guest-path>",
    "cd <guest-path> && env -i PATH=/usr/local/bin:/usr/bin:/bin HOME=<guest-path> timeout 600 <guest-path> test 2>&1 | grep -E '^ *[0-9]+ (pass|fail)|Ran ' ; env -i PATH=/usr/local/bin:/usr/bin:/bin HOME=<guest-path> timeout 600 <guest-path> test test/integration/stdio-server.test.ts 2>&1 | grep -B3 -A8 'error' | head -40; echo; env | grep -c . ; ",
    "cd <guest-path> && python3 -I - <<'EOF'\nimport json\np='<guest-path>'\nitems=json.load(open(p))\nfor it in items:\n    if it['argv'][:2]==['<guest-path>','test']:\n        it['env']={'PATH':'<guest-path>','HOME':'<guest-path>'}\njson.dump(items,open(p,'w'),indent=1)\nprint('updated')\nEOF\n<env-var>=<guest-path> python3 -I <guest-path> --validate --replay > <guest-path> 2>&1; echo \"exit=$?\"; grep -o '\"valid\": [a-z]*' <guest-path>; grep -o '\"problems\": \\[[^]]*\\]' <guest-path> | head -3; grep -o '\"status\": \"[A-Z]*\"' <guest-path> | sort | uniq -c; grep -o '\"verdict\": \"[a-z]*\"' <guest-path> | sort | uniq -c; grep -o ' [0-9]* pass\\\\n [0-9]* fail' <guest-path> | head -2",
    "cd <guest-path> && (pgrep -fa 'server-filesystem|mcpx' || echo \"no leftover servers\"); git status --short | head -5; python3 -I - <<'EOF'\nimport json\nreport = {\n \"outcome\": \"working\",\n \"fault_owner\": None,\n \"operation\": \"Install the mcpx CLI with the README curl installer, register a local stdio MCP server, and execute a real tool call (read_text_file) that returns file contents; also run the documented search and test commands.\",\n \"operation_scope\": \"Ubuntu 24.04 x64 guest, non-root user with passwordless sudo. Local stdio filesystem MCP server via npx (Node 18.19.1 from apt). No remote hosted servers or credentials used. Semantic search required the embedding model download, which succeeded in this guest.\",\n \"steps\": [\n  \"curl -fsSL https://raw.githubusercontent.com/arcadeai-labs/mcpx/main/install.sh | bash\",\n  \"mcpx add filesystem --command npx -- -y @modelcontextprotocol/server-filesystem /tmp/mcpx-fs\",\n  \"mcpx -d\",\n  \"mcpx info filesystem\",\n  \"mcpx exec filesystem read_text_file '{\\\"path\\\": \\\"/tmp/mcpx-fs/hello.txt\\\"}'\",\n  \"mcpx exec filesystem read_text_file -- --path=/tmp/mcpx-fs/hello.txt\",\n  \"mcpx index\",\n  \"mcpx search -k \\\"*read*\\\"\",\n  \"mcpx search -q \\\"open a text file and show its contents\\\" -n 3\",\n  \"bun install\",\n  \"bun test\"\n ],\n \"deviations\": [\n  \"Workspace had no git metadata; ran git init, git remote add origin https://github.com/arcadeai-labs/mcpx, git fetch --depth 1 origin ce6135ae654f96d8fb022e9d884d5fe0ef7ec1e9, git reset --mixed FETCH_HEAD as instructed.\",\n  \"Node/npm were not installed; installed nodejs and npm from Ubuntu apt (sudo apt-get install nodejs npm, Node v18.19.1) to run the README's npx stdio server example.\",\n  \"unzip was missing, so the Bun installer failed with 'error: unzip is required to install bun'; installed it with sudo apt-get install unzip and re-ran the bun.sh installer (Bun 1.4.4). Bun is only needed for the README Development section, not for the curl-installed binary.\",\n  \"Quick Start used the GitHub remote server, which needs credentials and was not used; a local stdio filesystem server from the README's Managing Servers example was used instead.\",\n  \"The first checker replay of the bun test example failed (243 failures) because its env did not put bun on PATH, and the stdio integration tests spawn 'bun' by name. Fixed the example env with PATH and HOME; the product was not at fault.\",\n  \"The installed binary is mcpx v1.5.2 from the latest GitHub release, which matches package.json at the pinned commit.\"\n ],\n \"stuck_step\": None,\n \"main_blocker\": None,\n \"plain_failure\": None,\n \"suggested_fix\": None\n}\nimport os\nos.makedirs('<guest-path>', exist_ok=True)\nwith open('<guest-path>','w',encoding='utf-8') as f:\n    json.dump(report,f,indent=2); f.write('\\n')\nprint('report written')\nEOF\nls -la .coldpass; <env-var>=<guest-path> python3 -I <guest-path> --validate --replay > <guest-path> 2>&1; echo \"final_exit=$?\"; grep -o '\"valid\": [a-z]*' <guest-path>; grep -o '\"problems\": \\[[^]]*\\]' <guest-path>"
  ],
  "stuck_step": null,
  "error_excerpt": null,
  "what_it_did": "Install the mcpx CLI with the README curl installer, register a local stdio MCP server, and execute a real tool call (read_text_file) that returns file contents; also run the documented search and test commands.",
  "suggested_fix": null,
  "tokens_in": 638651,
  "tokens_out": 18162,
  "cost_usd": 0.02656957,
  "usage_complete": true,
  "checks": [
    {
      "check": "operation",
      "status": "PASS",
      "details": {
        "working": true,
        "argv": [
          "mcpx",
          "exec",
          "filesystem",
          "read_text_file",
          "{\"path\": \"/tmp/mcpx-fs/hello.txt\"}"
        ],
        "kind": "cli",
        "returncode": 0,
        "stdout": "{\n  \"content\": [\n    {\n      \"type\": \"text\",\n      \"text\": \"hello from mcpx\\n\"\n    }\n  ],\n  \"structuredContent\": {\n    \"content\": \"hello from mcpx\\n\"\n  }\n}",
        "stderr": "",
        "needs_credentials": false,
        "needs_browser": false,
        "scope": "product operation"
      }
    }
  ],
  "safety": {
    "version": "z2x-1",
    "rules_version": "z2x-1",
    "summary": "Review signals: 1 connection review, 42 known vulnerability, 1 sensitive read. 2 static matches retained as context.",
    "expected": "Reviewed as expected for a test run: read only test files inside the test workspace or its temporary folders; resolver address lookups that send no data.",
    "findings": [
      {
        "kind": "connection-review",
        "count": 1,
        "note": "Repository processes attempted these non-loopback connections; proxies can hide the final hostname.",
        "location_count": 52,
        "process_count": 88
      },
      {
        "kind": "known-vulnerability",
        "count": 42,
        "note": "OSV reports a known vulnerability in this dependency version.",
        "location_count": 8
      },
      {
        "kind": "sensitive-read",
        "count": 1,
        "note": "A repository process attempted to read this sensitive path.",
        "location_count": 1,
        "path": "<guest-path>",
        "process_count": 1,
        "processes": [
          {
            "created_in_run": false,
            "executable": "<guest-path>",
            "owner": "repo",
            "path": "<guest-path>",
            "pid": "9209",
            "source": "<guest-path>",
            "succeeded": false,
            "syscall": "openat",
            "trace": "15.trace"
          }
        ]
      }
    ],
    "context": [
      {
        "kind": "hardcoded-secret",
        "count": 2,
        "note": "Gitleaks found a possible hardcoded secret; value withheld.",
        "location_count": 1,
        "path": "test/client/debug-fetch.test.ts"
      }
    ],
    "limitations": [
      "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."
    ],
    "static": {
      "dependency_note": "OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check."
    },
    "evidence_url": "/safety/?run=arcadeai-labs--mcpx-claude-haiku-5-5-1792811016739004609",
    "evidence_file": "/data/safety/arcadeai-labs--mcpx-claude-haiku-5-5-1792811016739004609.json.gz"
  },
  "agent_execution": "native_agent",
  "agent_runtime": "claude-code",
  "agent_runtime_version": "2.1.300 (Claude Code)",
  "tool_transport": "mcp-assigned-vm",
  "platform": "linux",
  "reasoning": "low",
  "service_tier": null,
  "resources": {
    "cpus": 2,
    "memory_mib": 4096,
    "disk_mib": 32768
  },
  "native_tool_calls": 21,
  "native_bundle": null,
  "architecture": null,
  "backend": "hyperv",
  "platform_details": {
    "backend": "hyperv",
    "os": "linux"
  },
  "platform_conflicts": null,
  "sandbox_source": null,
  "source_pin": {
    "commit": "ce6135ae654f96d8fb022e9d884d5fe0ef7ec1e9",
    "url": "https://github.com/arcadeai-labs/mcpx"
  },
  "purpose": "test_rerun",
  "profile": {
    "model": "claude-haiku-5-5",
    "reasoning": "low"
  },
  "fault": {
    "owner": null,
    "status": "resolved",
    "reason": null
  },
  "fix_id": null,
  "verifies_run_id": "arcadeai-labs--mcpx-claude-haiku-5-5-1792804376068635547",
  "hosting": null,
  "operation_scope": "product operation",
  "tool_calls": 21,
  "guest_setup": null,
  "runtime": null,
  "runtime_version": null,
  "runtime_revision": null,
  "source_revision": null,
  "evidence_version": null,
  "failure_origin": null,
  "evidence_strength": "readme_checked",
  "works": "yes",
  "install_s": null,
  "first_use_s": null,
  "mcp": "none",
  "needs": [],
  "needs_which": null,
  "agent_interface": [
    "cli"
  ],
  "license": "MIT",
  "repo_url": "https://github.com/arcadeai-labs/mcpx",
  "cost_to_try": "free",
  "hardware": null,
  "what_failed": null,
  "local_or_hosted": "local",
  "cycle_checks": [
    {
      "kind": "cycle",
      "claim": "Scheduled or looping main behavior",
      "source": "repository entry points",
      "input": "source inspection",
      "expected": "identify the product trigger",
      "verdict": "yes",
      "outcome": "Inspected README.md (no cron, schedule, loop, webhook, --once or --now feature) and src/ (grep for setInterval, cron, schedul, --once, --now, webhook, watch found no product scheduler; the only 'schedule' hit is a naming-rule string in src/check/rules/helpers/naming.ts). mcpx is a one-shot CLI, so no product cycle exists to trigger.",
      "evidence": "Inspected README.md (no cron, schedule, loop, webhook, --once or --now feature) and src/ (grep for setInterval, cron, schedul, --once, --now, webhook, watch found no product scheduler; the only 'schedule' hit is a naming-rule string in src/check/rules/helpers/naming.ts). mcpx is a one-shot CLI, so no product cycle exists to trigger.",
      "command": ""
    }
  ],
  "claims": [
    {
      "kind": "claim",
      "claim": "Execute a tool with JSON args returns the file contents",
      "source": "# Execute a tool (JSON args)",
      "input": "read_text_file on /tmp/mcpx-fs/hello.txt",
      "expected": "file text is returned",
      "command": "mcpx exec filesystem read_text_file '{\"path\": \"/tmp/mcpx-fs/hello.txt\"}'",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: hello from mcpx",
      "evidence": "hello from mcpx\\n\"\n    }\n  ],\n  \"structuredContent\": {\n    \"content\": \"hello from mcpx\\n\"\n  }\n}\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    },
    {
      "kind": "claim",
      "claim": "Shell-style flags are parsed against the tool schema and execute the tool",
      "source": "# Execute a tool with shell-style flags (anything after `--` is parsed against the tool's input schema)",
      "input": "--path=/tmp/mcpx-fs/hello.txt",
      "expected": "file text is returned",
      "command": "mcpx exec filesystem read_text_file -- --path=/tmp/mcpx-fs/hello.txt",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: hello from mcpx",
      "evidence": "hello from mcpx\\n\"\n    }\n  ],\n  \"structuredContent\": {\n    \"content\": \"hello from mcpx\\n\"\n  }\n}\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    }
  ],
  "claims_note": null,
  "example_checks": [
    {
      "kind": "example",
      "claim": "Inspect a server",
      "source": "README.md # Inspect a server",
      "input": "filesystem",
      "command": "mcpx info filesystem",
      "evidence": "formation including size, creation time, last modified time, permissions, and type. This tool is perfect for understanding file characteristics without reading the actual content. Only works within allowed directories.\"\n    },\n    {\n      \"name\": \"list_allowed_directories\",\n      \"description\": \"Returns the list of directories that this server is allowed to access. Subdirectories within these allowed directories are also accessible. Use this to understand which directories and their nested paths are available before trying to access files.\"\n    }\n  ],\n  \"resourceCount\": 0,\n  \"promptCount\": 0\n}",
      "deferred": false,
      "expected": "server overview including its name",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    },
    {
      "kind": "example",
      "claim": "Execute a tool with shell-style flags",
      "source": "README.md # Execute a tool with shell-style flags",
      "input": "-- --path=/tmp/mcpx-fs/hello.txt",
      "command": "mcpx exec filesystem read_text_file -- --path=/tmp/mcpx-fs/hello.txt",
      "evidence": "{\n  \"content\": [\n    {\n      \"type\": \"text\",\n      \"text\": \"hello from mcpx\\n\"\n    }\n  ],\n  \"structuredContent\": {\n    \"content\": \"hello from mcpx\\n\"\n  }\n}",
      "deferred": false,
      "expected": "file text is returned",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    },
    {
      "kind": "example",
      "claim": "Keyword/glob search only",
      "source": "README.md # Search with only keyword/glob matching (fast, no embeddings)",
      "input": "-k *read*",
      "command": "mcpx search -k '*read*'",
      "evidence": "r file type is returned as an embedded resource. Only works within allowed directories.\",\n    \"score\": 1,\n    \"matchType\": \"keyword\"\n  },\n  {\n    \"server\": \"filesystem\",\n    \"tool\": \"read_multiple_files\",\n    \"description\": \"Read the contents of multiple files simultaneously. This is more efficient than reading files one by one when you need to analyze or compare multiple files. Each file's content is returned with its path as a reference. Failed reads for individual files won't stop the entire operation. Only works within allowed directories.\",\n    \"score\": 1,\n    \"matchType\": \"keyword\"\n  }\n]",
      "deferred": false,
      "expected": "read_text_file is matched by keyword",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    },
    {
      "kind": "example",
      "claim": "Semantic search only",
      "source": "README.md # Search with only semantic matching",
      "input": "-q open a text file and show its contents",
      "command": "mcpx search -q 'open a text file and show its contents' -n 3",
      "evidence": "316,\n    \"matchType\": \"semantic\"\n  },\n  {\n    \"server\": \"filesystem\",\n    \"tool\": \"read_file\",\n    \"description\": \"Read the complete contents of a file as text. DEPRECATED: Use read_text_file instead.\",\n    \"score\": 0.6163130279090819,\n    \"matchType\": \"semantic\"\n  },\n  {\n    \"server\": \"filesystem\",\n    \"tool\": \"edit_file\",\n    \"description\": \"Make line-based edits to a text file. Each edit replaces exact line sequences with new content. Returns a git-style diff showing the changes made. Only works within allowed directories.\",\n    \"score\": 0.5559674860008187,\n    \"matchType\": \"semantic\"\n  }\n]",
      "deferred": false,
      "expected": "read_text_file is matched semantically",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    },
    {
      "kind": "example",
      "claim": "Repository test suite runs offline",
      "source": "README.md ## Development",
      "input": "bun test",
      "command": "<guest-path> test",
      "evidence": "stency-rule.test.ts:\n(pass) naming consistency passes one style and one name per concept [0.74ms]\n(pass) naming consistency flags synonym and casing drift [0.24ms]\n\ntest/check/rules/description-substance-rule.test.ts:\n(pass) description substance penalizes restated and terse descriptions [0.36ms]\n\ntest/check/rules/token-auth-methods-rule.test.ts:\n(pass) token endpoint auth methods are advertised [0.09ms]\n\ntest/check/rules/input-constraints-rule.test.ts:\n(pass) input constraints recognizes enums and ranges [0.14ms]\n\n 661 pass\n 0 fail\n 1398 expect() calls\nRan 661 tests across 117 files. [97.08s]",
      "deferred": false,
      "expected": "all tests pass with 0 failures",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    }
  ],
  "does_what_it_says": "yes",
  "maintenance": {
    "archived": false,
    "commits_90d": 13,
    "last_commit_at": "2026-10-16T16:38:36Z",
    "last_release_at": "2026-10-16T16:38:55Z",
    "median_reply_hours": null,
    "merged_prs_90d": 13,
    "note": "actively maintained: last commit 7 days ago; 13 commits and 13 merged PRs in 90 days; 2 open issues, 0 open PRs; latest release 2026-10-16",
    "open_issues": 2,
    "open_prs": 0,
    "reply_share": null,
    "reply_threads": 0,
    "verdict": "maintained"
  },
  "maintenance_verdict": "maintained",
  "maintenance_note": "actively maintained: last commit 7 days ago; 13 commits and 13 merged PRs in 90 days; 2 open issues, 0 open PRs; latest release 2026-10-16",
  "maintained": "active",
  "maintained_note": "last commit 7 days ago; 0 open issues, 3 answered or closed",
  "last_commit_at": "2026-10-16T16:38:54Z",
  "last_release_at": "2026-10-16T16:38:55Z",
  "open_issues": 0,
  "answered_issues": 3,
  "platforms_claimed": [
    "linux",
    "mac",
    "windows"
  ],
  "topic": "mcp-server",
  "agent_interfaces": [
    {
      "interface": "mcp",
      "evidence": "README metadata",
      "observed": false,
      "operation_checked": false
    },
    {
      "interface": "cli",
      "evidence": "independent checker",
      "observed": true,
      "operation_checked": true
    }
  ],
  "agent_interfaces_note": "README metadata is a discovery hint, not pinned documentation proof. Observed interfaces were exercised in this run. An empty list means unknown.",
  "mcp_context": null,
  "tested_at": "2026-10-24T03:21:12.987290+00:00",
  "tested_commit": "ce6135ae654f96d8fb022e9d884d5fe0ef7ec1e9",
  "tested_with": {
    "agent": "claude-code",
    "agent_version": "2.1.300 (Claude Code)",
    "model": "claude-haiku-5-5",
    "model_route": "claude-haiku-5-5",
    "reasoning": "low",
    "os": "linux",
    "backend": "hyperv",
    "transport": "mcp-assigned-vm"
  },
  "setup_identity": {
    "repo": "arcadeai-labs/mcpx",
    "source": "https://github.com/arcadeai-labs/mcpx",
    "commit": "ce6135ae654f96d8fb022e9d884d5fe0ef7ec1e9",
    "source_revision": null,
    "os": "linux",
    "architecture": null,
    "backend": "hyperv",
    "model": "claude-haiku-5-5",
    "model_version": "claude-haiku-5-5",
    "agent_execution": "native_agent",
    "agent_runtime": "claude-code",
    "agent_runtime_version": "2.1.300 (Claude Code)",
    "tool_transport": "mcp-assigned-vm",
    "runtime": null,
    "runtime_version": null,
    "runtime_revision": null,
    "sandbox_source": null,
    "guest_setup": null,
    "source_pin": {
      "commit": "ce6135ae654f96d8fb022e9d884d5fe0ef7ec1e9",
      "url": "https://github.com/arcadeai-labs/mcpx"
    },
    "platform_details": {
      "os": "linux",
      "backend": "hyperv"
    },
    "platform_conflicts": null,
    "reasoning": "low",
    "service_tier": null,
    "resources": {
      "cpus": 2,
      "memory_mib": 4096,
      "disk_mib": 32768
    },
    "operation": "Install the mcpx CLI with the README curl installer, register a local stdio MCP server, and execute a real tool call (read_text_file) that returns file contents; also run the documented search and test commands.",
    "operation_scope": "product operation",
    "hosting": null,
    "kind": "repo",
    "test_version": "readme-bdc1b9b3c0d2673aef87e076d14084a8123ddcf09d520c1ee2e364a37c3f4bb9",
    "evidence_version": null
  },
  "transcript_url": null,
  "report_url": "/reports/arcadeai-labs--mcpx-claude-haiku-5-5-1792811016739004609.json"
}
