{
  "checker": {
    "details": {
      "argv": [
        "/usr/local/go/bin/go",
        "run",
        "cmd/main.go"
      ],
      "hosting": "local",
      "kind": "mcp_http",
      "protocolVersion": "2025-11-25",
      "scope": "remote hosted MCP initialize + tools/list",
      "serverInfo": {
        "name": "edgeCore-MCP-Server",
        "version": "1.0.0"
      },
      "tools": [
        "update_device",
        "ean_get_diagnostics",
        "analyze_protocol",
        "stop_channel",
        "create_point",
        "create_edge_rule",
        "restart_channel",
        "ean_scan_devices",
        "list_channels",
        "get_system_info",
        "delete_channel",
        "delete_point",
        "list_edge_rules",
        "ean_read_points",
        "get_protocol_help",
        "create_device",
        "create_virtual_device",
        "delete_virtual_device",
        "update_point",
        "ean_ai_protocol_reverse",
        "ean_write_points",
        "ean_list_points",
        "create_channel",
        "batch_create_devices",
        "get_point_history",
        "export_config",
        "enable_device",
        "start_channel",
        "delete_device",
        "batch_create_points",
        "get_channel_config",
        "ean_ai_doc_parse",
        "list_devices",
        "delete_edge_rule"
      ],
      "transport": "streamable-http",
      "url": "http://127.0.0.1:8080/mcp",
      "working": true
    },
    "status": "PASS"
  },
  "deviations": [
    "README `go run cmd/main.go` worked, but the MCP notifications/initialized returned HTTP 204 from internal/server/mcp_handler.go:2801 (`if resp == nil { return c.SendStatus(204) }`). The Streamable HTTP spec requires 202 Accepted for accepted notifications, and the checker rejects 204 with 'MCP notification was not accepted: HTTP 204'. Changed that single line to `c.SendStatus(202)`. This was the only source change; go.mod/go.sum/README unchanged.",
    "Go and Node were not preinstalled in the guest; installed as listed above (prerequisites, not repo defects).",
    "MCP API key requires the install wizard and admin login first; setup was done in the guest with generated local credentials.",
    "Observed but not changed: initialize with protocolVersion 2025-06-18 is rejected (-32602 Unsupported protocol version; supported 2024-11-05, 2025-11-25) instead of negotiating a supported version. The checker negotiates 2024-11-05 first, so it passes."
  ],
  "fault_owner": "repo",
  "main_blocker": null,
  "operation": "Start edgeCore with the README command `go run cmd/main.go` and list its MCP tools over the Streamable HTTP endpoint /mcp (initialize, notifications/initialized, tools/list) with a locally generated MCP API key.",
  "operation_scope": "Read-only MCP (mcp_full_access=false). Requires the one-time install wizard (POST /api/install/start) to create the local admin, then login and POST /api/mcp/activate to enable MCP. The loopback URL needs the Bearer key in probe.json headers. The UI build (ui/dist) was also verified but is not the probed operation. Hardware-dependent drivers and the DNS proxy on :53 (permission denied as non-root) were not exercised.",
  "outcome": "working",
  "steps": [
    "Read README.md quickstart: `go mod tidy && go run cmd/main.go` (backend), `cd ui && npm install && npm run build` (frontend).",
    "Installed Go 1.26.4 to /usr/local/go (go.mod requires go 1.26.4; not preinstalled).",
    "Installed nodejs/npm 18.19.1 via apt (not preinstalled).",
    "go mod tidy (go.mod and go.sum unchanged).",
    "cd ui && npm install && npm run build (succeeded; vite chunk-size warning only).",
    "CGO_ENABLED=0 go build ./cmd/main.go (succeeded).",
    "go run cmd/main.go: started, listening on :8080 (web) and 127.0.0.1:6060 (pprof). Install mode since no config existed.",
    "POST /api/install/validate and /api/install/start with a generated local admin (credentials kept in <host-path>, not the repo); install completed.",
    "POST /api/auth/login (sha256(password+nonce)), POST /api/mcp/generate-key, POST /api/mcp/activate {full_access:false}; key stored at <host-path> (mode 0600).",
    "Verified MCP with the key: initialize (2025-11-25) -> 200; notifications/initialized -> 202 after the fix; tools/list -> 34 tools.",
    "Patched internal/server/mcp_handler.go:2801 (see deviations) and reran `go run cmd/main.go`; the same handshake passed.",
    "Stopped the test servers by PID; ports 8080 and 6060 free."
  ],
  "stuck_step": null,
  "suggested_fix": null
}
