GuardianMemory

Connect an assistant

One endpoint, for everything. Give a client this URL and nothing else: it registers itself, opens a browser, you approve it once, and from then on it holds its own tokens.

https://app.guardianmemory.com/mcp

The Connect page has all of this filled in for your account. Sign in and open app.guardianmemory.com/connect if you would rather copy than type.

New to MCP? What an MCP memory server is, and why a remote one works with every assistant, browser-based ones included.

Claude

On claude.ai and in the desktop app: Settings → Connectors → Add custom connector, then paste the endpoint. Claude opens a GuardianMemory tab, you log in and approve, and the connector goes live.

Claude Code

claude mcp add --transport http guardian https://app.guardianmemory.com/mcp

Then run /mcp inside Claude Code, pick Guardian, and sign in.

ChatGPT

Settings → Connectors → Create, paste the endpoint and choose OAuth. ChatGPT registers itself the same way Claude does.

Cursor, Windsurf and other editors

Editors that read an mcp.json with an mcpServers block take the endpoint directly. In Cursor that is ~/.cursor/mcp.json, or .cursor/mcp.json in a project:

{
  "mcpServers": {
    "guardian": { "url": "https://app.guardianmemory.com/mcp" }
  }
}

The editor opens a browser for the approval the first time it connects.

VS Code

VS Code's mcp.json uses a servers block and names the transport. Put it in .vscode/mcp.json in a project, or in your user configuration with the MCP: Open User Configuration command:

{
  "servers": {
    "guardian": { "type": "http", "url": "https://app.guardianmemory.com/mcp" }
  }
}

Scripts and clients without OAuth

Create an API key on the API keys page. Keys start with gdn_, are shown once, and can be revoked individually. Send one as a bearer token:

Authorization: Bearer gdn_your_api_key

Or as X-API-Key. For clients that cannot set headers at all, the key can go in the path:

https://app.guardianmemory.com/mcp/gdn_your_api_key

Treat that URL as a secret — it is one.

What the assistant is told

On connection GuardianMemory sends the assistant its instructions: read the profile at the start of a conversation, search whenever the user refers to something it lacks context for, save durable facts as concise third-person sentences, one fact per memory, and never store secrets.

Make it dependable with a line of your own. Not every app shows a server's instructions to the model, and your own custom instructions carry more weight when it does. Copy a ready-made instruction for each assistant →

The OAuth flow, for the curious

GuardianMemory is its own authorization server, so there is nothing else to set up. Clients register dynamically (RFC 7591), PKCE with S256 is mandatory, access tokens last a day, refresh tokens last 90 days and rotate on use — reusing an old one revokes the connection. Tokens are opaque and stored hashed. Scopes are memory:read and memory:write.

EndpointPurpose
/.well-known/oauth-protected-resource/mcpProtected resource metadata (RFC 9728)
/.well-known/oauth-authorization-serverAuthorization server metadata (RFC 8414)
/oauth/registerDynamic client registration
/oauth/authorizeThe consent page you see once per app
/oauth/tokenAuthorization code and refresh token grants
/oauth/revokeToken revocation (RFC 7009)

Disconnecting

Every approved app is listed on Connected apps. Disconnect one and its tokens stop working immediately; it will have to ask for approval again.