GuardianMemory

Start here

GuardianMemory is one long-term memory that every assistant you use reads and writes. This is how it fits together, and what to do first.

The shape of it

Your memory bank lives at app.guardianmemory.com. Assistants reach it over MCP, the protocol Claude, ChatGPT, Cursor and most other assistants already speak. You give an assistant one URL, approve it once in your browser, and it gains exactly two tools:

ToolWhat the assistant does with it
create_memorySaves one durable fact about you as a plain sentence.
search_memoryFinds what it needs by meaning rather than keywords. With no query it returns your profile.

There is deliberately no third tool. Assistants retire outdated facts by saving the new version; you edit and delete in the web app.

Three steps

1. Create your memory bank

Sign up at app.guardianmemory.com. Email and a password, nothing else.

2. Connect your first assistant

Copy the endpoint and paste it wherever that assistant takes custom connectors or MCP servers:

https://app.guardianmemory.com/mcp

Step-by-step for Claude, Claude Code, ChatGPT, Cursor, Windsurf and VS Code →

3. Give it something to remember

An empty memory bank is not much use for the first week or two. Two ways to fill it:

Pin the things that always matter. Pinned memories lead the profile every assistant reads at the start of a conversation. Five or six well-chosen pins do more for the quality of answers than a hundred stray facts.

What you get in the app

PageWhat it is for
MemoriesEverything held about you, newest first, with search. Edit, pin or delete any of it.
ActivityWhich assistant saved or searched what, and when.
Connected appsEvery assistant that has been approved. Disconnect one and its access ends that second.
API keysgdn_… keys for scripts and clients that cannot do OAuth.
ConnectEvery snippet on this site, filled in for your account.

Running it yourself

GuardianMemory is PHP 8 with no framework and no dependencies, PostgreSQL with pgvector for storage and search, Gemini for embeddings, and TypeSafe's Jev classifier for deciding when a new memory replaces an old one. The repository's README covers running it locally with Docker and deploying your own copy.