GN

Gnosem

dev.gnosem/gnosem

Cross-vendor AI memory over MCP. One semantic store, readable and writeable from every MCP client.

Yes, your AI can use this right now.Answered a live MCP handshake in 174 ms with no sign-in needed and exposes 6 tools.

Connect it

Settings → Connectors → Add custom connector
URL: https://gnosem.dev/mcp

6 tools, verified live

Pulled straight from the server with tools/list on 2026-10-17.
memory_write

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

memory_search

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

memory_list

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.

memory_forget

Soft-delete a memory by id. The row is retained for audit but excluded from search/list and removed from the vector index.

memory_supersede

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.

memory_write_bulk

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 {

Alternatives in E-commerce

Compare →
Try “Notion”, “Stripe”, “create invoice”, “browser”