Integration

Long-term memory for Claude Desktop

Claude Desktop is Anthropic's official desktop chat app (macOS, Windows), and its local MCP integration is stdio-only — every server runs as a stdio subprocess per Anthropic's own docs. Engram's hosted endpoint is SSE, so the install is one `mcp-remote` entry in `claude_desktop_config.json`. After that, every conversation on every desktop gets durable memory that survives quit / relaunch / OS reboot, scoped to whatever buckets you decide.

Install

Three steps: sign up for an Engram API key, paste a BYOK LLM-provider key on /models, then drop the snippet below into Claude Desktop.

Three steps to memory in your agent

  1. Sign up. Free, no card. You'll land on a Getting Started page that walks the next two steps.
  2. Add your LLM key. Engram is BYOK. Paste an OpenAI / Anthropic / Groq / Together / Fireworks key and we'll route every extraction and query call through your provider. You pay your provider directly. We never see your inference.
  3. Paste the snippet below into your agent and restart it. Use Authorization: Bearer <api-key>with the API key from your portal.

Anthropic's official desktop app via mcp-remote

Claude Desktop's local MCP is stdio-only, so Engram's hosted SSE endpoint is bridged via the mcp-remote shim. After one config edit and a restart, every desktop conversation gets durable memory.

  1. Open Claude → Settings → Developer → Edit Config to edit claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/; Windows: %APPDATA%\Claude\) and merge in:
  2. claude_desktop_config.json
    {
      "mcpServers": {
        "engram": {
          "command": "npx",
          "args": [
            "-y",
            "mcp-remote",
            "https://mcp.lumetra.io/mcp/sse",
            "--transport",
            "sse-only",
            "--header",
            "Authorization:Bearer <api-key>"
          ]
        }
      }
    }
  3. Fully quit and relaunch Claude Desktop (⌘Q on macOS, exit-from-tray on Windows).
  4. Verify in a fresh chat: "List my Engram memory buckets." If you see File is not defined in ~/Library/Logs/Claude/mcp*.log, upgrade Node to 20+ (or pin mcp-remote@0.1.5 in the args array for Node 18).

What you can do once memory's wired in

  • Remember the architecture and conventions of the project you've been pasting into Claude all week, across every new conversation
  • Pull up the writing-style notes you worked out with Claude last Tuesday when you start a fresh draft today
  • Capture facts about your team, partner, or household once and let Claude reuse them across totally separate chats
  • Share one bucket between Claude Desktop and Claude.ai web (via the OAuth connector) so memory follows you across surfaces

FAQ

Where does Claude Desktop store its MCP config?

macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`. Windows: `%APPDATA%\Claude\claude_desktop_config.json`. The fastest way to open it is **Claude → Settings → Developer → Edit Config** from the menu bar; that button opens the file in your default editor.

Should I use this or the Claude.ai web Connector?

Both work, and they share memory if you point them at the same Engram account. The Connector (OAuth, no API key paste) is the smoother install if you're mostly on Claude.ai web; this stdio recipe is the right path if you live in the desktop app and want memory to work offline-from-the-browser, or if you're on a Team / Enterprise workspace where an Owner hasn't enabled custom connectors yet.

I see `File is not defined` in `~/Library/Logs/Claude/mcp*.log` — what now?

Your Node.js is older than 20. `mcp-remote@0.1.6+` pulls `undici@7` which needs Node 20+. Either upgrade Node to LTS 20+ or pin `mcp-remote@0.1.5` in your `args` array (the last release that works on Node 18). Restart Claude Desktop fully (⌘Q on macOS, exit-from-tray on Windows) after either fix.

Ship durable memory in Claude Desktop today

Free tier: 10K memories and 50K retrievals per month. No credit card. Same Engram backend powers all 41 integrations, so memories you write from one client are immediately queryable from the rest.