The context tax
Every MCP server you connect pays rent in tokens. Tool descriptions load into every session; every result the tool returns competes with your code, your diff, your failing test. A notes tool that dumps five full note bodies into the conversation because you searched for “auth” isn’t helping — it’s spending the agent’s attention on your archive instead of your problem.
So the design constraint for jotnow’s MCP server was set before the first tool was written: minimum context overhead, at every step.
Say it or it didn’t happen
The tools are named around one verb — jot, find_jots, get_jot, list_recent_jots — and their descriptions require the literal word. The agent only saves when you say “jot it” or “jotnow.” The descriptions explicitly forbid using the tools for “remember this” or memory-file requests, so agents don’t confuse your notes with their own memory systems.
An agent should never decide on its own what’s worth remembering. That’s your call, and it costs three words.
Five hits, no bodies
Search matches titles, bodies and tag names — but returns at most five hits, and each hit is just an id, a title, tags and a timestamp, plus the true total count. No bodies. The agent picks the note that looks right and fetches exactly that one with get_jot.
In practice that’s the difference between a search costing a few hundred tokens and a few thousand. The two-step shape also makes the agent’s reasoning visible: you can see which note it chose before its content enters the conversation.
Small conveniences, in code
Anything the model doesn’t have to think about, it shouldn’t. Saves auto-append the repo name detected from the working directory, so notes are traceable to the project they came from without the agent composing tags. Tags are normalized in code — lowercase, whitespace to dashes, deduped, five max — instead of hoping the model formats them consistently.
The same thinking applies to safety: keys are hashed, rate limits are enforced on the server, and note bodies are treated as untrusted everywhere they render. None of that consumes a single token of your session.
Where this goes
The next step is recall — asking your notes questions and getting answers grounded in your own saved output. The same budget applies: retrieval should hand the model the smallest set of notes that answers the question, and nothing else. If jotnow ever feels heavy in a session, that’s a bug. Try the demo and tell me if it does.