{
  "checker": {
    "details": {
      "argv": [
        "<host-path>",
        "mcp",
        "stdio"
      ],
      "kind": "mcp",
      "scope": "product operation",
      "serverInfo": {
        "name": "moat",
        "version": "1.30.0"
      },
      "tools": [
        "link_get_value",
        "link_set_value",
        "link_watch_start",
        "link_watch_get",
        "link_watch_stop"
      ],
      "working": true
    },
    "status": "PASS"
  },
  "deviations": [
    "README setup.sh was not run: it pulls ESP-IDF, MicroPython builds, and a third-party apt repo (debian.m-u.xyz). Only the Python MCP path was installed.",
    "Root `uv pip install -e/.` failed: pyproject requires asyncowfs>=0.16.0 and asyncvictoria>=0.8.1, which the package index does not provide (max 0.15.3 / 0.8.0). Installed the other dependencies with version pins removed, and mcp kept at >1.29.1,<2 (mcp 2.x removed FastMCP).",
    "Installed the root package with --no-deps, but the wheel contains only moat/util (setuptools packages=[\"moat\"]), so `moat mcp` is missing. Worked around with PYTHONPATH=<host-path> instead of editing source.",
    "flashmq (listed in the README testing section, installed by setup.sh) is not in Ubuntu 24.04 archives; substituted mosquitto as the local MQTT broker.",
    "Wrote a config (<host-path>) because the link service crashes without moat.link.backend; init_timeout set to null because no MoaT-Link server is running. Without a broker on localhost:1883 the server exits with OSError."
  ],
  "main_blocker": null,
  "operation": "Started the MoaT MCP stdio server (`moat mcp stdio`, from packaging/moat-mcp/README.md) and performed MCP initialize + tools/list; server returned 5 link tools: link_get_value, link_set_value, link_watch_start, link_watch_get, link_watch_stop.",
  "operation_scope": "Tools are listed; no read/write against a live MoaT-Link server was exercised. The link service needs an MQTT broker on localhost:1883 (mosquitto, started by this smoke run) to start; no MoaT-Link server is announcing, so the link client runs with init_timeout null.",
  "outcome": "working",
  "steps": [
    "Read README.md (no runnable quickstart) and packaging/moat-mcp/README.md (`moat mcp stdio`).",
    "apt-get install build-essential pkg-config libffi-dev libsystemd-dev libfuse3-dev libmagic1 python3-venv python3-pip",
    "python3 -m venv <host-path>; pip install uv; uv python install 3.13 (repo requires >=3.13; guest has 3.12)",
    "uv venv <host-path> -p 3.13",
    "uv pip install -r deps (root pyproject dependencies, version pins stripped, see deviations); uv pip install --no-deps <host-path>; uv pip install 'mcp>1.29.1,<2'",
    "Wrote <host-path> (outside the checkout) with moat.link.backend mqtt localhost and client.init_timeout null",
    "apt-get install mosquitto; started `mosquitto -p 1883` in background (left running for the probe)",
    "Ran `moat mcp stdio` with PYTHONPATH=<host-path> and MOAT_CFG=<host-path>; MCP initialize + tools/list succeeded"
  ],
  "stuck_step": null,
  "suggested_fix": "Fix the root pyproject pins (asyncowfs, asyncvictoria) to versions on the index, and include subpackages (packages=find) so the wheel ships moat.mcp. Tell the probe's broker requirement via setup: run a broker on localhost:1883 (flashmq or mosquitto)."
}
