MCP & Claude

How to give Claude Desktop memory of your work with an MCP server

Claude Desktop has no memory between conversations, and pasting your context back in goes stale the moment you do anything. The fix is to give it a tool it can call instead: Khint runs a local MCP server over stdio that exposes your current work session, so Claude can ask what you are working on rather than being told. Reads use a read-only handle on a SQLite file on your Mac, writes go through an authenticated localhost loopback, and nothing is uploaded to make it work.

Claude Desktop is excellent, with one structural gap: every conversation starts from zero. It does not know what you did an hour ago, what is in your other chat, or what you are in the middle of building. So you re-paste the same context, slightly differently each time, and the answers drift with it.

The clean fix is not a bigger paste. It is to give Claude a tool it can call to read your current work, so the context is fetched when it is needed rather than declared once and left to rot. That is what the Model Context Protocol is for, and what Khint exposes.

What memory actually means here

A Khint work session is something you start before a task and stop when it is done. While it runs it collects entries: notes you write, the output of agents you run, text you captured, tickets a workflow filed. It lives in a SQLite file on your Mac and never syncs to a server, which is unusual enough to state plainly: sessions are the one thing in Khint that has no cloud copy at all.

On top of those raw entries sits a compacted working state, rebuilt as you go: the objective, the threads still open, the artifacts produced, the decisions taken, and the loose notes. That compaction is the thing worth exposing. A transcript of forty entries is not context; it is a wall. The working state is the paragraph you would have written by hand if you had time.

The five tools Claude gets

Khint ships a standalone MCP server: a small binary speaking JSON-RPC over stdio. Once connected, an MCP client sees these tools.

  • list_sessions: enumerate your work sessions.
  • get_session: read one session and its entries.
  • get_active_context: the compacted working state of what you are on right now. This is the one that gets called most.
  • search_session_entries: full-text search across everything you have logged.
  • add_session_entry: write a new entry back into the active session.

Connect it in four clicks, with no JSON editing

  1. Start a work session

    In Khint, open Memory and start a session. As you run agents and capture text, entries pile up under it.

  2. Open the MCP page

    It lists your AI tools. The Claude Desktop card sits under 'Use Khint in your AI tools'.

  3. Toggle Claude Desktop on

    Khint writes its server into Claude Desktop's MCP config for you. There is nothing to hand-edit and no path to look up.

  4. Restart Claude Desktop

    Reopen it so the new server loads, then ask what you are working on and watch it call get_active_context.

Prefer to wire it by hand, or using Cursor or another MCP client? The same binary works anywhere that speaks MCP over stdio. The config entry has the usual shape:

{
  "mcpServers": {
    "khint": {
      "command": "/path/to/khint-mcp"
    }
  }
}
The shape of an MCP server entry. Khint fills this in for you.

Why a session beats a bigger system prompt

A system prompt is a snapshot. You write it, and it starts aging immediately: by the afternoon it describes a morning that is no longer relevant, and you cannot tell from inside the conversation which parts have gone false. Worse, it is the same for every question, so it pays its token cost whether or not the question needed it.

A session is fetched. It reflects what you captured five minutes ago, it costs nothing on the turns that do not need it, and it is one object rather than one copy per tool. That last point is the one that changes how the day feels: the same session feeds Khint's own agents, so the rewrite you run on a selection and the question you ask Claude Desktop are working from the same picture of your work.

That shared thread is the whole idea. Capture once, and every AI tool you use draws from it. If you also want Khint to run prompts on selected text, see running your own prompts on a selection.

Common questions

Does this send my work to a server?

No. The session lives in a local SQLite file on your Mac, and the MCP server reads it locally over stdio. Claude Desktop talks to a server running on your machine. Sessions and their entries are the one part of Khint that never syncs to the cloud, even when you are signed in.

Is the MCP server safe to expose to Claude?

It is scoped deliberately. Reads use a read-only database handle. Writes never touch the file directly: they go through a localhost loopback that is token-authenticated, rate-limited to 60 writes a minute, audit-logged, and raises an OS notification on every write. An AI client cannot modify your memory without you seeing it happen.

Does it work with Cursor or other MCP clients?

Yes. It is a standard MCP server over stdio, so any MCP-capable client can connect. Khint has a one-click toggle for Claude Desktop and Codex; for anything else you point the client at the same binary.

What does Claude see when it calls get_active_context?

The compacted working state of your active session: the objective, the threads still open, the artifacts produced, the decisions taken, and the loose notes. Not a raw transcript of every entry. That compaction is rebuilt as you work and fully re-synthesized periodically, so it stays a summary rather than growing into a log.

Do I need a paid Khint plan for the MCP server?

No. The MCP server, work sessions, and every integration are included on the free tier. Paid plans give you a larger monthly credit balance for the AI actions you run, not extra features.

Try it in your own workflow

Khint runs your prompts on selected text in any Mac app, from one shortcut. Free with 300 credits a month, about 10 AI actions a day.