{"id":565535,"recorded_at":"2026-10-27T21:56:32.048463Z","observed_at":"2026-10-27T21:56:32.048367Z","subject_kind":"endpoint","subject":"689542d9-f083-4d6a-8189-51186d857317","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":6,"tools":[{"description":"Soft-delete a memory by id. The row is retained for audit but excluded from search/list and removed from the vector index.","inputSchema":{"properties":{"id":{"description":"UUID of the memory to forget.","type":"string"}},"required":["id"],"type":"object"},"name":"memory_forget"},{"description":"List the user's most recent memories in reverse chronological order. Use for browsing or catching up on what the user's other model sessions have written recently. Same content/content_raw shape as memory_search. Optional filters (tags, written_by, session_id, since, until) narrow the listing at the SQL level.","inputSchema":{"properties":{"cursor":{"description":"Pagination cursor from a previous call's `cursor` field (ms epoch); returns rows older than this timestamp.","type":"integer"},"limit":{"description":"Max rows to return (1–200). Default 50.","type":"integer"},"raw":{"description":"Return original prose instead of the compressed form. Default false.","type":"boolean"},"session_id":{"description":"Only return memories with an exact session_id match.","type":"string"},"since":{"description":"Only return memories created at or after this ms-epoch timestamp.","type":"integer"},"tags":{"description":"Only return memories containing ALL of these tags (AND semantics).","items":{"type":"string"},"type":"array"},"until":{"description":"Only return memories created strictly before this ms-epoch timestamp.","type":"integer"},"written_by":{"description":"Only return memories with an exact written_by match.","type":"string"}},"type":"object"},"name":"memory_list"},{"description":"Search the user's memories. Default mode is 'hybrid': blends semantic (cosine over Vectorize) and keyword (BM25 over SQLite FTS5) hits via Reciprocal Rank Fusion (k=60). Semantic catches paraphrases; keyword catches exact-string hits (IDs, dates, code snippets). Pass mode:'semantic' or mode:'keyword' to run just one. Content defaults to the LLM-optimized (compressed) form when available (raw:true to invert). Excludes forgotten + superseded. Optional filters narrow after retrieval: tags (AND), written_by, session_id, and/or since/until (ms epoch).","inputSchema":{"properties":{"k":{"description":"Max results (1–50). Default 10.","type":"integer"},"mode":{"description":"Retrieval mode. Default 'hybrid'.","enum":["semantic","keyword","hybrid"],"type":"string"},"query":{"description":"Search query. Interpreted as natural language for semantic mode and as FTS5-safe text for keyword mode.","type":"string"},"raw":{"description":"Return original prose instead of the compressed form. Default false.","type":"boolean"},"session_id":{"description":"Only return memories with an exact session_id match.","type":"string"},"since":{"description":"Only return memories created at or after this ms-epoch timestamp.","type":"integer"},"tags":{"description":"Only return memories containing ALL of these tags (AND semantics).","items":{"type":"string"},"type":"array"},"until":{"description":"Only return memories created strictly before this ms-epoch timestamp.","type":"integer"},"written_by":{"description":"Only return memories with an exact written_by match (e.g. 'claude-code').","type":"string"}},"required":["query"],"type":"object"},"name":"memory_search"},{"description":"Replace a stale memory with a corrected one. The old row is marked superseded and excluded from future reads; the new row becomes the current version. Use for corrections; use memory_forget for pure deletions.","inputSchema":{"properties":{"new_content":{"description":"New content that supersedes the old memory.","type":"string"},"old_id":{"description":"UUID of the memory to replace.","type":"string"},"session_id":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"written_by":{"type":"string"}},"required":["old_id","new_content"],"type":"object"},"name":"memory_supersede"},{"description":"Save a fact, preference, decision, or note to the user's cross-model memory. Any MCP client can read this back later. Include written_by (e.g. 'claude-code', 'gpt-5', 'kimi-k2') for provenance and session_id to group related writes. Long content (>400 chars) is automatically compressed on write to a structured-facts form optimized for LLM reading — the raw text is preserved. Pass no_optimize:true to skip. Writes are deduped by default: (1) SHA-256 of trim(content) short-circuits byte-identical writes with { id, exact_duplicate:true } for free (no embed call); (2) failing that, semantic dedup returns { id, deduped:true, matched_score } when cosine ≥ 0.85. Pass force:true to bypass both, or use memory_supersede to explicitly correct a prior memory.","inputSchema":{"properties":{"content":{"description":"The fact or note to remember. Plain text, max 8000 characters.","type":"string"},"force":{"description":"Bypass semantic dedup and write anyway. Default false.","type":"boolean"},"no_optimize":{"description":"Skip AI compression of long content. Default false.","type":"boolean"},"session_id":{"description":"Opaque identifier grouping related writes from the same conversation.","type":"string"},"tags":{"description":"Optional short labels for filtering (e.g. ['preference','stack']).","items":{"type":"string"},"type":"array"},"written_by":{"description":"Identifier of the model / client writing this (e.g. 'claude-code', 'gpt-5', 'kimi-k2', 'manual').","type":"string"}},"required":["content"],"type":"object"},"name":"memory_write"},{"description":"Write up to 50 memories in a single call. Each entry runs the same path as memory_write (semantic dedup by default; pass force:true per-entry to skip). Embeddings + optimizations run in parallel; D1 inserts are batched. Returns { results: [...] } with one entry per input in the same order — each is { id, created_at, optimized? } on success, { id, created_at, deduped, matched_score } on dedup, or { error } on failure. Free-tier limits apply to the sum: if adding N would exceed 200, the first (200 - existing) succeed and the rest return an error.","inputSchema":{"properties":{"memories":{"description":"Array of memory-write entries (1–50).","items":{"properties":{"content":{"description":"The fact or note to remember. Plain text, max 8000 characters.","type":"string"},"force":{"description":"Bypass semantic dedup for this entry. Default false.","type":"boolean"},"no_optimize":{"description":"Skip AI compression of long content. Default false.","type":"boolean"},"session_id":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"written_by":{"type":"string"}},"required":["content"],"type":"object"},"maxItems":50,"minItems":1,"type":"array"}},"required":["memories"],"type":"object"},"name":"memory_write_bulk"}]},"body_sha256":"e3f5b163a21ca4ed2e8e1a7c97f64b6c4ad4ae1cb806b799eb54c3f8f27431e4","prev_id":null,"leaf":"0x029abadb2a3fb63f81959dc988842f5d7ff201581cd655bb819bc244e2fb4982","leaf_text":"{\"body\":\"e3f5b163a21ca4ed2e8e1a7c97f64b6c4ad4ae1cb806b799eb54c3f8f27431e4\",\"id\":565535,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793138192048367,\"prev\":null,\"subject\":\"689542d9-f083-4d6a-8189-51186d857317\",\"subject_kind\":\"endpoint\"}","day":{"day":"2026-10-27","leaves":273461,"root":"0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795","chained":"0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4","anchor_chain":"eip155:5042002","anchor_tx":"0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4","anchor_block":69414147},"proof":["0x029a805d59c5da768c42bb389eb5d53a5e26135135a72a58c9d2ae74fe657374","0xe389dc4bfebd308ae190cdc05383e0fea6bd631917e025188fcd1a88842413ae","0x3f3a999fe53b0d1beb0358874832af5bf3c8ce6b1023454faad6c449a0517ef6","0xa73637e9a827fd50c1cb9a691980b2e4ed9b57db1032e5971ccb8a3ecd68571a","0xe404824fd988de74883432a616d66544df6c528a0442fbfbd9859128960de595","0xd60d207887a35f61b5651c5de6f7d6913e5439cc62c66f79faa4bb02ef32c2c2","0xf49f86fd663001708242d0c71e41e31c163a642d0c6dd509c4258f01820d488b","0x20bf7aab3d63092286a6598b41e11211c987292240fe284cecb7f0d8772fbfb5","0xe819ad96b28bea541e20f57e7c13ea043108be33ab796776512ecdd4bbd4784b","0x9dccb519cb2984d5b4533c1b78e03e29964480f14ce1a0877b610ad1575cab3e","0xca110c77af452531cd72d9dfe28e4dd3c3e60be71c9e7ac05ad2b782f9713bde","0x05916cc6b98491a0d541e4ecca3d0132fa255184243406b5a8a52bb1b6b63bd0","0x5b34b9f89512a83faa4bfecec322037670cc1af58e6e94a86fe88934434d7ddf","0x29e12cb67839430fa64ab8bd05d52bab606f2978d9e6d2fb094fece9438fd4de","0x2cf27e8a181d60d0dd27c186c2eddfcbb4e8fa71cf66feeb55a4d730e15ee8c4","0x518b93854db03dc9fc938883abf30da6eaae5ae0d4336903968fd32a7df8c71b","0x22c1fb9487ee0b9732fa017a0cc321eb27a60c08450d112f755089796e12cb1c","0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585","0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699"]}