Gnosem

dev.gnosemPublished by gnosem.devOfficial publisherv1.0.0Updated Oct 24, 2026

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

VerifiedStreamable HTTPWeb executableKnowledge & MemoryAI & ML

Overview

AI-generated overview

Hosted cross-vendor memory server that lets any MCP-capable assistant save, search, list, correct and delete a shared per-user memory store.

What you can do
Save facts, preferences, decisions and notes, individually or up to 50 at once, with provenance and session tags; long entries are auto-compressed to structured facts while raw text is kept. Search memories in hybrid, semantic or keyword mode, and browse recent entries with filters such as tags, author, session and date range. Correct a stale memory by superseding it, or soft-delete one by id.
When to use it
Useful when you work across several AI clients and models and want context saved in one place to carry over between them, instead of retelling it each session. Also fits when you want provenance of which model recorded which fact.
Requirements
A remote endpoint; no local runtime needed. An API key from the provider, sent as an Authorization Bearer header; the optional installer prompts for it and configures local MCP clients. Network access to the hosted service. The free plan is limited to 200 memories and one key.
Before you install
Memories are stored on a third-party hosted service, so anything written leaves your machine and is kept there; avoid saving secrets or sensitive personal data. Writes, supersede and forget change stored data, and forget is a soft delete retained for audit. Paid Pro plan exists for unlimited memories and more storage.

Installation

In SourceWeft

  1. Open Gnosem in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/dev.gnosem%2Fgnosem/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "gnosem": {
      "type": "http",
      "url": "https://gnosem.dev/mcp"
    }
  }
}

README

[Gnosem]

Cross-vendor AI memory over MCP.
One memory store. Every model. Claude, ChatGPT, Gemini, Kimi, Cursor, Windsurf — anything that speaks MCP.

gnosem.dev · pricing · llms.txt


What it is

Gnosem is a hosted Model Context Protocol server that gives each user one persistent memory store — readable and writeable from every MCP-capable AI client. Vendor-agnostic by design: a fact saved from Claude is visible in ChatGPT, Cursor, Windsurf, Zed, Kimi, and any other MCP client (or plain HTTP tool call) using the same API key.

The problem it solves: every AI vendor has its own proprietary memory. OpenAI's ChatGPT memory doesn't work in Claude. Anthropic's projects don't cross into GPT. Multi-model users retell context in every session. Gnosem is the neutral layer between vendors.

Tools exposed

  • memory_write — save a fact, preference, decision, or note. content, tags?, written_by? (provenance), session_id?, no_optimize?
  • memory_search — semantic search across your memories. query, k?, raw?
  • memory_list — list recent memories in reverse-chronological order. limit?, cursor?, raw?
  • memory_forget — soft-delete a memory by id
  • memory_supersede — replace a stale memory with a corrected one

AI-optimized storage

Long memories (>400 chars) are automatically compressed on write to a structured-facts form (Workers AI, llama-3.1-8b-instruct-fast) with a strict prompt: TOPIC=..., PROJECT=..., DECISION=..., STACK=..., PROBLEM=.... The reading LLM ingests the compact form by default — fewer tokens, same meaning. The raw prose is preserved and returned as content_raw; pass raw:true to invert. Pass no_optimize:true on write to skip compression entirely.

Compression is guarded — if the model output isn't actually shorter, gnosem falls back to storing raw only. Fail-open: any AI error still saves the memory.

Quickstart

bash
npx gnosem-install

Auto-detects and configures every MCP-capable client on your machine (Claude Desktop, Claude Code, Cursor, Windsurf, Zed). Prompts for your API key and merges the gnosem entry alongside your existing servers. Restart the affected clients — the five memory tools appear immediately.

Get an API key at gnosem.dev, or via the API:

bash
curl -sX POST https://gnosem.dev/signup \  -H "Content-Type: application/json" \  -d '{"email":"[email protected]"}'

The key is displayed once. Save it.

Manual config (any MCP client)

json
{  "mcpServers": {    "gnosem": {      "url": "https://gnosem.dev/mcp",      "headers": { "Authorization": "Bearer gn_your_api_key" }    }  }}

Quickstart — any HTTP client

bash
# Writecurl -sX POST https://gnosem.dev/mcp \  -H "Authorization: Bearer gn_your_key" -H "Content-Type: application/json" \  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"memory_write","arguments":{"content":"I prefer Postgres for greenfield work.","written_by":"claude-code","tags":["preference"]}}}'
# Searchcurl -sX POST https://gnosem.dev/mcp \  -H "Authorization: Bearer gn_your_key" -H "Content-Type: application/json" \  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"memory_search","arguments":{"query":"database preference","k":5}}}'

Pricing

PlanPriceMemoriesAPI keysStorage
Free$02001shared
Pro$9/mo or $90/yrUnlimitedUnlimited1 GB

Upgrade at gnosem.dev/upgrade.

Data model

Each memory row: id (uuid), content (raw, ≤8000 chars), content_optimized (structured facts, nullable), tags (json array), written_by (provenance — which model wrote it), session_id (opaque grouping), created_at, plus a semantic embedding (BGE-base-en-v1.5, 768-dim) stored in Vectorize.

Every memory tracks provenance so you can see which model contributed which fact. Memories are per-user isolated at both the D1 metadata layer (user_id filter on every query) and the Vectorize layer (metadata index on user_id).

Correction chains via memory_supersede: the old row is marked superseded (excluded from reads) and the new row references it. Soft-delete via memory_forget (excluded from reads and removed from the vector index).

Infrastructure

  • Cloudflare Workers — edge-hosted MCP server, no cold starts
  • D1 — metadata + auth
  • Vectorize — 768-dim embedding storage + cosine ANN search, per-user metadata filter
  • Workers AI — embedding generation (@cf/baai/bge-base-en-v1.5) and content optimization (@cf/meta/llama-3.1-8b-instruct-fast)
  • Stripe — subscription billing

Latency: sub-100ms for read, ~200-800ms for write (dominated by embedding + optimization inference).

AI discovery

The service is designed to be discoverable and citeable by LLMs:

  • /llms.txt — LLM-optimized site summary per llmstxt.org
  • /robots.txt — explicitly welcomes GPTBot, ClaudeBot, PerplexityBot, Google-Extended, and every major AI crawler
  • /sitemap.xml — standard sitemap
  • Schema.org JSON-LD (SoftwareApplication + FAQPage) embedded in the landing page

Self-hosting

The Worker source in this repo can be deployed to your own Cloudflare account. You'll need:

  1. A Cloudflare account with Workers, D1, Vectorize, and Workers AI enabled
  2. npx wrangler d1 create <name> — creates the D1 database. Update wrangler.jsonc with the returned id
  3. npx wrangler vectorize create <name> --dimensions=768 --metric=cosine — creates the index
  4. npx wrangler vectorize create-metadata-index <name> --property-name=user_id --type=string — required for per-user isolation
  5. npx wrangler d1 execute <name> --remote --file=schema.sql then apply migrations/*.sql in order
  6. npx wrangler secret put STRIPE_SECRET_KEY and STRIPE_WEBHOOK_SECRET (only needed if you want billing)
  7. npx wrangler deploy

The hosted service (gnosem.dev) is the recommended way to use Gnosem — one API key, no infra to run, memories stay reachable when you switch machines.

About

Gnosem is a product of CUETV LLC, a Missouri holding company operating a family of new-media and infrastructure products.

License

MIT

Source: README.md at commit e3c4346

Tools

6

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 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.

Parameterstagsforcecontentrequiredsession_idwritten_byno_optimize

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.

Parametersrawtagslimitsinceuntilcursorsession_idwritten_by

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.

Parametersidrequired

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.

Parameterstagsold_idrequiredsession_idwritten_bynew_contentrequired

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 { 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.

Parametersmemoriesrequired

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts