{
  "checker": {
    "claims": [
      {
        "claim": "Execute a tool with JSON args returns the file contents",
        "command": "mcpx exec filesystem read_text_file '{\"path\": \"/tmp/mcpx-fs/hello.txt\"}'",
        "evidence": "hello from mcpx\\n\"\n    }\n  ],\n  \"structuredContent\": {\n    \"content\": \"hello from mcpx\\n\"\n  }\n}\n",
        "expected": "file text is returned",
        "input": "read_text_file on /tmp/mcpx-fs/hello.txt",
        "kind": "claim",
        "outcome": "Real input produced the expected result: hello from mcpx",
        "returncode": 0,
        "source": "# Execute a tool (JSON args)",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "Shell-style flags are parsed against the tool schema and execute the tool",
        "command": "mcpx exec filesystem read_text_file -- --path=/tmp/mcpx-fs/hello.txt",
        "evidence": "hello from mcpx\\n\"\n    }\n  ],\n  \"structuredContent\": {\n    \"content\": \"hello from mcpx\\n\"\n  }\n}\n",
        "expected": "file text is returned",
        "input": "--path=/tmp/mcpx-fs/hello.txt",
        "kind": "claim",
        "outcome": "Real input produced the expected result: hello from mcpx",
        "returncode": 0,
        "source": "# Execute a tool with shell-style flags (anything after `--` is parsed against the tool's input schema)",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "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.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "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.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "mcpx",
        "exec",
        "filesystem",
        "read_text_file",
        "{\"path\": \"/tmp/mcpx-fs/hello.txt\"}"
      ],
      "kind": "cli",
      "needs_browser": false,
      "needs_credentials": false,
      "returncode": 0,
      "scope": "product operation",
      "stderr": "",
      "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}",
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "Inspect a server",
        "command": "mcpx info filesystem",
        "deferred": false,
        "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}",
        "expected": "server overview including its name",
        "input": "filesystem",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md # Inspect a server",
        "verdict": "yes"
      },
      {
        "claim": "Execute a tool with shell-style flags",
        "command": "mcpx exec filesystem read_text_file -- --path=/tmp/mcpx-fs/hello.txt",
        "deferred": false,
        "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}",
        "expected": "file text is returned",
        "input": "-- --path=/tmp/mcpx-fs/hello.txt",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md # Execute a tool with shell-style flags",
        "verdict": "yes"
      },
      {
        "claim": "Keyword/glob search only",
        "command": "mcpx search -k '*read*'",
        "deferred": false,
        "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]",
        "expected": "read_text_file is matched by keyword",
        "input": "-k *read*",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md # Search with only keyword/glob matching (fast, no embeddings)",
        "verdict": "yes"
      },
      {
        "claim": "Semantic search only",
        "command": "mcpx search -q 'open a text file and show its contents' -n 3",
        "deferred": false,
        "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]",
        "expected": "read_text_file is matched semantically",
        "input": "-q open a text file and show its contents",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md # Search with only semantic matching",
        "verdict": "yes"
      },
      {
        "claim": "Repository test suite runs offline",
        "command": "<guest-path> test",
        "deferred": false,
        "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]",
        "expected": "all tests pass with 0 failures",
        "input": "bun test",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md ## Development",
        "verdict": "yes"
      }
    ],
    "status": "PASS"
  },
  "deviations": [
    "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.",
    "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.",
    "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.",
    "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.",
    "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.",
    "The installed binary is mcpx v1.5.2 from the latest GitHub release, which matches package.json at the pinned commit."
  ],
  "fault_owner": null,
  "main_blocker": null,
  "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": "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.",
  "outcome": "working",
  "plain_failure": null,
  "steps": [
    "curl -fsSL https://raw.githubusercontent.com/arcadeai-labs/mcpx/main/install.sh | bash",
    "mcpx add filesystem --command npx -- -y @modelcontextprotocol/server-filesystem /tmp/mcpx-fs",
    "mcpx -d",
    "mcpx info filesystem",
    "mcpx exec filesystem read_text_file '{\"path\": \"/tmp/mcpx-fs/hello.txt\"}'",
    "mcpx exec filesystem read_text_file -- --path=/tmp/mcpx-fs/hello.txt",
    "mcpx index",
    "mcpx search -k \"*read*\"",
    "mcpx search -q \"open a text file and show its contents\" -n 3",
    "bun install",
    "bun test"
  ],
  "stuck_step": null,
  "suggested_fix": null
}
