Hosted cross-vendor AI memory over MCP. Provides semantic search, memory management, and deduplication across Claude, ChatGPT, Cursor, Windsurf, and Zed.
Gnosem provides 6 memory-management tools with consistent naming (memory_*) and reasonable descriptions (80-150 chars). All tools have input schemas with typed parameters and descriptions. However, output schemas are not documented in the provided source, parameter descriptions lack constraint details (ranges, formats, enums), and error handling guidance is absent. The tools follow a single-responsibility pattern well, but descriptions could be more LLM-optimized and parameter constraints more explicit.
Soft-delete a memory. Idempotent.
List memories in reverse chronological order. Paginate with cursor. Returns {memories, cursor} — pass the cursor back in for the next page, or stop when it comes back as null.
Semantic search over your memories. k defaults to 10 on the server. Set raw: true to get untouched content instead of the LLM-optimized form.
Replace a stale memory with a corrected one. The old row is marked superseded (excluded from future reads); the new one becomes current.
Save a memory. Server semantically de-dupes against existing memories unless force: true. Content is capped at 8KB.
Batch-write multiple memories in one call. Each entry follows the same dedup rules as write(). Returns per-entry results in input order.
Output schemas not documented. LLMs cannot infer what fields memory_search, memory_list, or memory_write return, forcing them to guess about pagination cursors, memory IDs, and result structure.
Parameter constraints missing. 'k' (memory_search) lacks min/max bounds; 'limit' (memory_list) unbounded; 'mode' (memory_search) has no enum constraint; 'content' (memory_write) states '8KB cap' but no validation guidance.
Error handling not documented. No guidance on what errors are retryable, what user-fixable errors look like, or how to recover from deduplication conflicts or rate limits.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 70 | 2025-06-18+ | v2 |
Descriptions lack LLM-optimization. 'Semantic search over your memories' (memory_search) is generic; should explain WHEN to use semantic vs keyword vs hybrid, and what 'raw' mode returns vs optimized form.
Pagination cursor semantics unclear. memory_list returns {memories, cursor} but no documentation of cursor format, whether it's opaque, or what happens if cursor is invalid.