Claude doesn't remember yesterday. Every new conversation starts cold. For casual use that's fine. For anyone who uses Claude seriously — for work, research, personal projects — it's a constant friction point.
The common workaround is to paste context into the system prompt or the first message: "here's my role, here's the project, here's the list of things we've been tracking." It works. It also costs tokens on every single call.
This post is about a better way: storing context outside Claude, in a lightweight MCP record store, and retrieving exactly what you need when you need it.
The naive approach is to keep a giant "context file" and dump it at the start of every conversation. People do this. The problems:
What you actually want: ask for what's relevant, get back only that, pay for only that.
The Model Context Protocol lets Claude connect to external services — tools it can call during a conversation. An MCP record store gives Claude:
The key difference: you're not paying for context you're not using. Every byte returned by the MCP server is something Claude actually asked for.
Stash is a hosted MCP server. You connect it to Claude once (paste the connector URL, sign in with Google) and it gives Claude three tools:
context() — loads your standing context (role, projects, preferences). Designed to be called at the start of a "start my day" prompt.search(collection, query) — full-text search across any named collection. Returns the top matches, not everything.add(collection, record) — writes a new record. Claude can do this for you mid-conversation.The store is a structured store with FTS5. Queries return in under 50 ms at typical personal-use scales. The connector response is structured and terse — Claude reads it cleanly without wasting tokens on formatting noise.
Here's the pattern that motivated Stash. Add this to your Claude custom instructions:
When I say "start my day", call context() from Stash to load my standing context, then ask what I'm working on today.
The first time Claude sees "start my day", it calls context(). Stash returns:
{
"role": "Product manager at a B2B SaaS startup",
"current_projects": ["Q2 pricing review", "user interview synthesis"],
"working_style": "direct, no filler, bullet points preferred",
"timezone": "Europe/London"
}
That's ~80 tokens. Compare to pasting the same information manually as free text: probably 150–200 tokens, plus you have to remember to do it every time.
The more useful part: because it's a live store, you can update it. "Add to my context: I'm now also covering the enterprise tier launch." Claude calls add("context", ...). It's there tomorrow. You didn't have to edit a custom instructions block.
context() call instead of a manual paste. The friction drops to near-zero.
A few other approaches people use for Claude memory:
Good for static identity context (your name, your role, always-on preferences). Bad for anything that changes — project statuses, lists, tasks. Custom instructions are baked in on every call whether needed or not.
Free, but high-friction and token-expensive. No search — you paste everything and hope Claude finds what's relevant.
Notion's MCP connector gives Claude access to your workspace. It works. The problem: Notion returns full page content including all metadata, version history markup, and property columns. A 500-record Notion database search can cost 4,000–5,000 tokens for results that Stash would return in under 200.
Designed specifically for Claude use. Terse responses, full-text search, no metadata bloat. The retrieval cost is low by design, not by accident.
We ran a structured test: 500 records, same search query, same scoring criteria, via Notion MCP vs Stash. Results:
That's roughly 2.4× cheaper per query at equivalent result quality. (This is a preliminary single-run comparison — your mileage will vary with different data shapes, but the structural reasons for the gap are stable: Notion returns pages with full metadata; Stash returns records with only the fields you asked for.)
https://app.stashlite.com/mcp. Sign in with Google. You get a free account, no card required.From that point on, every conversation can start with a single cheap call that loads your standing context, instead of a manual paste.
Worth being clear: Stash is not a replacement for Notion, a document editor, or a general-purpose database. It's a retrieval layer — good at getting the right records back to Claude cheaply. If you need rich documents, tables with relations, or a visual editing interface, those tools still have their place. Stash sits in the gap between "too small for custom instructions" and "too heavy for Notion."