ctxstore — memory that follows you across models
Overview
Description from the maker (original English)
Persistent memory for AI agents: keyed facts, a wake bundle each session, one memory in every model.
PopNx MCP’s three pillars
These three are never merged into one score: opinions, measurements and popularity are different things.
- User voiceiNo reviews yetReviews open together with accounts in a later step
- Our basic checksi4 of 5 passedChecked from public information; code not scanned yet
- UsageiVery new★ 0
What you can do with it
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
- Connection: Runs in the cloud
- Transport: Streamable HTTP
- Category: Search & AI memory
Install
Pick the AI app you use, then copy the settings.
Before you install
- Basic checks: 4 of 5 passed Fail
- Runs on the maker’s server: what you ask it goes through their server.
- Can do 33 things (tools) accept_invite, bind_agent, decline_invite, delete_fact …
- The registry lists no key to fill in.
You need
- Runs in the cloudNothing to install; it connects over the internet
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
- Open Settings → Connectors
- Press Add custom connector
- Paste the address below and press Add
- If it asks you to sign in, sign in with the maker
https://mcp.ctxstore.ai/mcpRun this in your terminal
claude mcp add --transport http ctxstore https://mcp.ctxstore.ai/mcpOr copy the settings yourself
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"ctxstore": {
"url": "https://mcp.ctxstore.ai/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Or copy the settings yourself
Paste into .vscode/mcp.json in your project
{
"servers": {
"ctxstore": {
"type": "http",
"url": "https://mcp.ctxstore.ai/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
- Open ChatGPT on the web → Settings → Connectors (Apps)
- Press Create or Add (some plans need Developer mode under Advanced first)
- Paste the address below, give it a name and save
- If it asks you to sign in, sign in with the maker
https://mcp.ctxstore.ai/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Which apps can use it
Based on how this server connects and on each app’s own docs, checked Nov 10, 2026.
Connect over the internet in
ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast
What it can do
Tool names and descriptions exactly as the server reported them on Nov 8, 2026. The maker wrote them, not us; we show them as plain text.
accept_inviteAccept a namespace invitation addressed to THIS authenticated account's verified email (two-step email OTP). Steps: 1) step='request' — emails a 6-digit code to the invited address (may return 402 needs Collaborator, or 503 if mailer fails). 2) step='confirm' with code= the 6 dig
bind_agentBind a sticky agent identity to this MCP session. Once bound, wake_status and load_context default to this agent_id when called without an explicit agent_id= arg — no need to pass identity on every call. Per-call override still works. Persisted to mcp_sessions.agent_id (migration
decline_inviteDecline a pending (status=invited) namespace invitation as the grantee. Server verifies you are the invitee (email/tenant match). Grantors must use revoke_grant instead.
delete_factSoft-delete a stored fact by its UUID (Smart Forget). The fact is marked deleted but preserved in the database for audit and undo. Excluded from all normal searches. Use when information is no longer accurate or relevant.
get_factRetrieve a fact by its exact key — deterministic, never misses. Use get_fact for self-notes: get_fact(key='agent: :self-note:opening') or get_fact(key='agent: :self-note:closing'). search_facts misses self-notes because their embedding similarity scores below other identity facts
get_fact_historyReturn the full version history for a keyed fact — current version plus all deprecated predecessors. Use to see how a fact evolved over time or to undo an accidental correction. Returns list of fact versions ordered newest → oldest.
get_session_seedReturn the pre-computed session seed for this tenant — a compact first-person bio (~500 tokens) describing who you are and what you care about right now. Generated nightly and on session disconnect. Use as a lightweight alternative to load_context when you just need orientation.
get_statsGet your memory usage statistics — total facts stored, plan limits, collection sizes, and daily query counts. Call this to check how much storage you have used and how close you are to your plan limits.
ghost_modeEnable or disable ghost mode for this session. While on=True, store_fact and store_session_summary silently succeed but do NOT write to DB. search_facts, load_context, and search_context always work normally. Ghost mode resets to off on MCP session reconnect (not persisted).
index_recentReturn the most recent fact operations across all agents in this tenant, newest first. Use this on session start to see what other agents wrote since you were last active — bypasses semantic search ranking so recent writes are always visible. Each entry shows: op (create/update/d
index_searchFiltered search over the tenant activity index. Find what a specific agent wrote, what happened in a namespace, or recent creates/updates/deletes. Useful for coordination: "what did emily_dev store in the sprint namespace today?"
index_statsUsage statistics from the tenant activity index: total operations, breakdown by agent, by namespace, and by day. Useful for understanding which agents are most active and where.
introduce_yourselfOptional: introduce yourself to the platform. Stores your model info and a brief note in the shared agent registry. Stores a fact with: category: identity namespace: shared/agent-feedback key: intro: - Include: what model you are, what platform you're running on, and anything you
inviteInvite one person, by email, to read and write one namespace prefix of THIS account (for example project:barn). Creates a pending grant and emails them; nothing is shared until they accept with list_invites and accept_invite from their own account. Calling again for the same pers
leave_grantLeave an active namespace grant as the grantee (stop using shared namespace). Server verifies grantee authorization. Grantors who want to cut off a collaborator must use revoke_grant.
list_facts_by_key_prefixDeterministic prefix scan over fact keys, optionally bounded by timestamp. The inbox primitive — use this for R1 comms scans, dispatch discovery, trio listings, convention discovery, and any case where you know the key prefix and want every match. Unlike search_facts (semantic, m
list_invitesList this account's namespace collaboration grants: incoming invitations and outgoing shares. Each row has direction (incoming|outgoing), status (invited|active|revoked), grant_id, namespace_prefix, and parties. An invitation referenced anywhere else (for example in an email) can
list_workspacesThe places this account's memory is organised into: its own projects (anything written under project: :*, newest activity first), the workspaces other people have granted it (enter one with switch_workspace(name= )), and, for a sharer, who they invited and whether each person acc
load_contextLoad your bootstrap context deterministically — pulls L0 (identity) + L1 (architecture) + latest L2 (state) + latest L3 (session summary). Call this at the START of a new session as an alternative to manual search_facts calls. Returns your layered memory structured for immediate
mark_salientSalience peptide — temporarily boost a fact's retrieval ranking because it matters RIGHT NOW: an approaching deadline, a live incident, the topic under active work. The boost is small and FAST-DECAYING (max 1.4x, ~6-hour half-life — gone by tomorrow), unlike reinforce_fact which
move_factMove a fact to a different namespace or layer without changing its content. Updates metadata in place — preserves fact_id, text, embedding, timestamp, and deprecation chain. Use for reclassifying facts (e.g. bootstrap-v2 refactor) without the storage bloat of store-new + soft-del
reinforce_factReward peptide — reinforce a fact whose recall LED TO A REAL GOOD OUTCOME (fix worked, deploy green, user approved). Boosts its future retrieval ranking with a bounded, time-decaying multiplier (max 1.5x, 14-day half-life), so memory learns which facts are USEFUL, not just simila
resume_sessionCall to load session continuity. Last session: no prior session.
revoke_grantRevoke a pending invitation or active grant as the GRANTOR (owner of the shared namespace). Idempotent. Grantees use decline_invite / leave_grant.
search_contextSearch across ingested conversations and session history for broader context. Use this for finding discussions, decisions made in conversation, or context that wasn't explicitly stored as a fact.
search_factsSearch your persistent memory for stored facts. For session bootstrap, prefer load_context() or wake_status() — they pull your identity, conventions, and latest self-note deterministically. Use search_facts when you need semantic discovery across the fact corpus. Use namespace pa
setup_accountSet up or restore your persistent memory connection. Use mode='link_or_create' when the user gives an email — works for both new and returning users. The server figures out which case applies: - If the email exists: sends OTP, attaches this device to the existing account - If the
store_factStore information that should persist across sessions. Storage tips for best retrieval: - Include searchable keywords: 'We chose the Postgres DATABASE for ACID compliance' is better than 'We chose Postgres for ACID compliance' - Use the key parameter for facts that change over ti
store_factsStore up to 50 facts in one call — the same fields as store_fact per item. Made for carrying memory over: when you already remember things about the person from your own platform memory (ChatGPT memory, Claude memory, Gemini saved info), write them here one fact per item, in thei
store_session_summaryStore a compressed summary of this session to preserve continuity for the next one. Call this before ending a conversation — it is the dream cycle. Stores a L3 session fact with key='session-latest' (or 'session-latest:claude-code' etc.), auto-archiving the previous version. The
switch_workspaceNarrow this session's memory to one project: name=' ' scopes recall, the wake bundle, self-notes and the default namespace for new facts to project: :* (identity and conventions always ride along). Returns the narrowed bundle right away. name='' widens back to the whole account.
wake_statusCheck which context layers loaded successfully on this session start. Returns a structured status: which of embryo, conventions, agent identity, closing note, and opening note were found, plus a missing[] list. Call this after load_context() or resume_session() to verify your boo
watch_eventsLong-poll this account's fact-write events instead of re-scanning with since_epoch. Every store/supersede/delete/archive/restore/move publishes one event {key, id, namespace, layer, op, ts, seq}. One call waits up to max_wait_s (max 25) for the first matching event and returns up
Basic checksi
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 11, 2026
- ✓ Pass
Maker matches the repo
The registry name was verified against the domain ctxstore.ai (the registry checks domain ownership)
- ✕ Fail
Still maintained
No code changes for over a year, or the repo is archived
- ✓ Pass
Has a licence
Uses MIT
- ✓ Pass
Endpoint responds
Responded in 399 ms (HTTP 200)
- – Not applicable
Sign-in with OAuth
No sign-in needed
- ✓ Pass
No hidden instructions in tool descriptions
Read 33 tool descriptions and found no hidden instructions to the AI
Compared with others in Search & AI memoryi
- More stars than 0% of the other 5863 servers in this category
- Published to the registry more recently than 55% of the other 5863 servers in this category
- Basic checks equal to or better than 47% of the other 5863 servers in this category
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
Common questions
Is ctxstore — memory that follows you across models safe?
It passed 4 of 5 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
What keys or codes does it need?
The registry does not list a required key, though some servers ask you to sign in on first use.
Does it run on my computer or in the cloud?
It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
Is it still maintained?
The GitHub repo last changed yesterday, and the latest version (1.1.2) reached the registry 32 days ago.
Which apps can use it?
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
What can I use instead?
In the same category: Ruflo, Context7, Metabase
Alternatives
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
README from the maker
Open the README
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.