Claude is genuinely impressive inside a single conversation. You explain your project once, and it keeps track of everything you say for the rest of the session. Then you close the tab, and it forgets all of it.
This is the long-term memory problem. Claude's architecture doesn't retain information between sessions — each conversation starts from a blank slate. For casual use, that's fine. For anyone who uses Claude regularly for work, it's a real friction point.
This post explains what long-term memory actually means for Claude, why the obvious solutions fall short, and a practical pattern that works.
There are two kinds of things you might want Claude to remember:
Claude's Custom Instructions (under Settings → Profile) partially solve the first problem. You write a paragraph or two about yourself, and Claude reads it at the start of every conversation. It works well for character — role, tone, working style.
It doesn't work for the second kind of memory. Custom instructions have a tight character limit. They can't grow dynamically. And they can't be queried — there's no way for Claude to say "show me just the entries about Project X."
Pasting notes into each conversation. Works for one-off tasks, becomes tedious for ongoing work. You end up re-explaining context every session, which defeats the purpose.
Claude Projects. Better — Projects lets you attach documents and set a standing system prompt for a specific context. But the documents are static. You can't add a new contact note mid-project and have it be immediately queryable. It's a fixed upload, not a live store.
Huge context windows. Stuffing everything into one long conversation works until it doesn't. Token costs increase with context length. Responses slow down. And you can still only search that context manually.
The shift that makes long-term memory tractable is moving context out of the conversation and into a store that Claude can query on demand.
Instead of:
"Here's everything about my project (600 tokens) — now answer my question."
You get:
Claude: [calls context() tool → retrieves 40 tokens of relevant standing context] Claude: Based on your role and current project focus, here's what I'd suggest…
Claude fetches only what it needs, when it needs it. The full context lives in the store and doesn't eat conversation budget until it's relevant.
Anthropic's Model Context Protocol (MCP) lets Claude connect to external tools via a URL you paste into the connector settings. The tool runs server-side — Claude makes a call, gets structured data back, and uses it like any other context.
For long-term memory, the key tools are:
context() — load your standing context (who you are, active projects, preferences)remember(key, value) — save a fact that should persist across conversationsrecall(query) — full-text search across everything you've storedThe pattern for "Start my day" looks like this:
You: "Good morning. Load my context and catch me up." Claude: [calls context()] → "You're a product manager at a healthcare startup. Open items: pricing decision on the Pro tier, interview with Alex scheduled Friday, blocked on legal sign-off for the data agreement. Anything specific you want to focus on?"
That standing context lives in Stash. You add to it whenever something new matters. Claude reads it when it's relevant.
Stash is a hosted MCP server that provides exactly this pattern — a queryable record store with context(), remember(), recall(), and a handful of other tools for managing collections.
Three steps:
After that, any new conversation can start with "Load my context" and Claude will have the relevant background without you re-explaining anything.
Long-term memory works best for things that are reusable across sessions and specific enough to be actionable:
Worth storing:
Not worth storing:
This pattern requires you to keep the store updated. Claude will helpfully suggest what to save ("Want me to remember that decision?"), but it doesn't monitor your email or update itself. You're the source of truth.
That's actually a feature — you're in control of what Claude knows about you. But it does mean there's a small maintenance habit involved.
Claude doesn't have native long-term memory, and the built-in workarounds (custom instructions, Projects) are useful but limited. A queryable external store via MCP — where Claude pulls context on demand rather than getting it all at once — is the most practical pattern for persistent context at work.
The setup is a one-time 5-minute step. The payoff is Claude that knows who you are and what you're working on, every session.
Sign up at stashlite.com and paste your connector URL into Claude's connector settings. Free tier, no credit card required.
Or add directly: https://app.stashlite.com/mcp
Stash is a new service. Pricing may change; cancel anytime. Free tier limits: 2,500 records / 50 queries per month.