{
  "checker": {
    "claims": [
      {
        "claim": "Persistent memory: memories stored in one session can be retrieved later through the MCP server",
        "command": "<guest-path> server tools/call {\"tool\": \"memory_search\", \"arguments\": {\"query\": \"blue heron north gate\"}}",
        "evidence": "the blue heron guards the north gate\\n   Hash: 68f94fe7bd77ff403d348a5f68be2b932516ea19a3788eec889889a38e4d8fe4\\n   Created: 2026-10-24T02:01:32.081062Z [untagged]\"}], \"isError\": false}",
        "expected": "stored memory returned",
        "input": "{\"tool\": \"memory_search\", \"arguments\": {\"query\": \"blue heron north gate\"}}",
        "kind": "claim",
        "outcome": "Real input produced the expected result: the blue heron guards the north gate",
        "source": "Keep decisions, notes, and project context across sessions and agents.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "Entry points inspected: src/mcp_memory_service/consolidation/scheduler.py uses APScheduler CronTrigger/IntervalTrigger, but in this guest the scheduler reported 'Scheduler not available' under memory server --http with MCP_CONSOLIDATION_ENABLED=true, and the stdio MCP server has no consolidator ('Consolidation system not available'). A manual cycle was triggered by hand via POST /api/consolidation/trigger with time_horizon daily, which returned status completed, processed 1. That manual HTTP trigger is not a product schedule and cannot be replayed as a cli check here.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "Entry points inspected: src/mcp_memory_service/consolidation/scheduler.py uses APScheduler CronTrigger/IntervalTrigger, but in this guest the scheduler reported 'Scheduler not available' under memory server --http with MCP_CONSOLIDATION_ENABLED=true, and the stdio MCP server has no consolidator ('Consolidation system not available'). A manual cycle was triggered by hand via POST /api/consolidation/trigger with time_horizon daily, which returned status completed, processed 1. That manual HTTP trigger is not a product schedule and cannot be replayed as a cli check here.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "<guest-path>",
        "server"
      ],
      "kind": "mcp",
      "scope": "product operation",
      "serverInfo": {
        "name": "memory",
        "version": "12.3.1"
      },
      "tool_result": {
        "content": [
          {
            "text": "Found 1 memories (mode: semantic) for query: 'blue heron north gate'\n\n1. coldpass pin test: the blue heron guards the north gate\n   Hash: 68f94fe7bd77ff403d348a5f68be2b932516ea19a3788eec889889a38e4d8fe4\n   Created: 2026-10-24T02:01:32.081062Z [untagged]",
            "type": "text"
          }
        ],
        "isError": false
      },
      "tool_result_checked": true,
      "tool_schema_bytes": 42104,
      "tools": [
        "memory_store",
        "memory_store_session",
        "memory_search",
        "memory_list",
        "memory_delete",
        "memory_cleanup",
        "memory_health",
        "memory_stats",
        "memory_update",
        "memory_consolidate",
        "memory_ingest",
        "memory_harvest",
        "memory_quality",
        "memory_graph",
        "memory_conflicts",
        "memory_resolve",
        "mistake_note_add",
        "mistake_note_search",
        "mistake_note_update",
        "mistake_note_delete",
        "get_quarantined_memories",
        "unquarantine_memory",
        "commit_session_legacy",
        "get_bootstrap_profile",
        "get_onboarding_guide",
        "memory_distill",
        "memory_explore",
        "memory_detail"
      ],
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "Quickstart: run the MCP server with the documented command and exercise a real tool",
        "command": "",
        "deferred": false,
        "evidence": "Covered by the probe and claim (memory server over stdio, memory_store then memory_search). The repository pytest suite was not run; no other runnable README example was executed.",
        "expected": "documented command completes successfully",
        "input": "",
        "kind": "example",
        "outcome": "Covered by the probe and claim (memory server over stdio, memory_store then memory_search). The repository pytest suite was not run; no other runnable README example was executed.",
        "source": "README.md",
        "verdict": "blocked"
      }
    ],
    "status": "PASS"
  },
  "deviations": [
    "Base pip install mcp-memory-service alone stored a memory with hash pseudo-embeddings, then refused all later reads and writes with 'refusing to write hash pseudo-vectors'; fixed by installing the documented extra mcp-memory-service[sqlite-ml] (onnxruntime and tokenizers). I deleted the test database I had created (~/.local/share/mcp-memory under HOME=<guest-path>) to get a clean state.",
    "python3 -m venv failed on missing ensurepip; installed python3-venv with sudo apt-get and recreated the venv.",
    "Consolidation through the stdio MCP server returns 'Consolidation system not available' (no consolidator). The HTTP server's scheduler reported 'Scheduler not available', so the cycle was triggered manually via POST /api/consolidation/trigger rather than by a scheduler.",
    "Did not run the repository pytest suite or the interactive install.py; did not install the ML extra or torch."
  ],
  "fault_owner": "repo",
  "main_blocker": null,
  "operation": "Store and retrieve a memory through the MCP stdio server (memory server) using memory_store and memory_search",
  "operation_scope": "Linux Ubuntu guest, Python 3.12.3, pinned commit 441e0ee, mcp-memory-service 12.3.1 in <guest-path>, SQLite-vec storage with ONNX all-MiniLM-L6-v2 embeddings, stdio transport, local only",
  "outcome": "working",
  "plain_failure": "On a plain install from the README (pip install mcp-memory-service), the first save succeeds but the service then refuses every later read and write, because it has no real embedding model. Installing the documented sqlite-ml extra fixes it. Also, the background consolidation scheduler did not start in this guest, so the cycle was triggered by hand.",
  "steps": [
    "git init; git remote add origin https://github.com/doobidoo/mcp-memory-service; git fetch --depth 1 origin 441e0ee1a17be3d51cf12a2d7d2a936cee69aded; git reset --mixed FETCH_HEAD",
    "python3 -m venv <guest-path> (failed: ensurepip missing; installed python3-venv via sudo apt-get, then recreated venv)",
    "<guest-path> install mcp-memory-service",
    "<guest-path> install 'mcp-memory-service[sqlite-ml]'",
    "<guest-path> server (MCP stdio) -> memory_store, memory_search",
    "<guest-path> server --http --http-port 8765 with MCP_ALLOW_ANONYMOUS_ACCESS=true MCP_CONSOLIDATION_ENABLED=true; GET /api/health; POST /api/consolidation/trigger"
  ],
  "stuck_step": null,
  "suggested_fix": "Make the README quickstart install the sqlite-ml extra (pip install 'mcp-memory-service[sqlite-ml]'), or fail at install time instead of allowing a first write that poisons the database. Also check why the consolidation scheduler reports 'Scheduler not available' when MCP_CONSOLIDATION_ENABLED=true."
}
