Wire any agent to a live MCP.
One authenticated endpoint. Sign in as yourself and flmnt connects you to your workspaces — pick your client below, then switch between workspaces just by asking your agent.
flmnt scopes memory to a workspace, and your MCP endpoint is minted per workspace. Create one first — until then there is no endpoint for an agent to connect to.
What are you connecting?
Three ways in.
Register flmnt as an HTTP MCP server with Claude Code’s own “claude mcp add” command, or by hand in .mcp.json. The flmnt CLI is a separate tool that automates that and installs the full automation kit — a lifecycle hook map, 13 /flmnt-* slash commands, and tool permissions — so reading and recording memory happen on their own.
claude mcp addclaude mcp add --transport http --scope project flmnt "http://localhost:8000/mcp"--scope project writes it to .mcp.json so the whole repo inherits it. Drop the flag for a private, machine-local server.What your agent gets.
Every connected client sees the same toolset — identical whether you came in through Claude Code, a connector, or a JSON config. Your agent reads recent context, retrieves causally across the graph, and writes back decisions, keyframes, and mistakes. The full surface:
Discovery & reading
Cheap, deterministic reads. Use these to find streams, inspect their shape, and pull raw entries by position or time — no model in the loop.
Context materialization
The two model-backed reads. Instead of raw entries, the Recurrent Language Model assembles a coherent, token-budgeted context window for your agent to start from.
Writing
How memory accrues. Each call appends to a typed, append-only stream. Some writes are causal-ref gated — they refuse to record unless you tie the entry to what caused it.
Stream types
Every write lands on a typed, append-only stream. The stream_type you pass to create_stream is one of these:
conversation (session transcript) and the dashboard’s own write-only streams, which aren’t for agent use.How recording becomes automatic.
This is the kit flmnt setup installs for you — the same way we run flmnt in our own repo. A project prompt so every session knows what to record, a full lifecycle hook map so reading and recording memory happen on their own, and a set of /flmnt-* slash commands for the on-demand writes. Here is what it wires, so you can see (and trim) it.
# flmnt memory
This repo records to the **your** workspace via MCP.
- Record a **decision** whenever you commit to an approach (and why).
- Drop a **keyframe** at the end of any working session — current state, open threads.
- Capture a **mistake** the moment a run regresses, with the cause.
Read recent keyframes before starting work. Memory persists across sessions.{
"hooks": {
"UserPromptSubmit": [
{
"matcher": "",
"hooks": [
{ "type": "command", "command": "flmnt gate" }
]
}
]
}
}flmnt setup installs this plus the full map below.Claude Code fires hooks at lifecycle moments — session start, every prompt, after a tool runs, on stop, on subagent stop, before a compact, at session end. flmnt setup maps flmnt CLI commands onto all of them so memory reads and writes happen on their own. It also wires nudge scripts on UserPromptSubmit and a hard-block causal-ref gate on record_decision. The command map:
{
"hooks": {
"SessionStart": [
{ "matcher": "", "hooks": [{ "type": "command", "command": "flmnt brief" }] }
],
"UserPromptSubmit": [
{ "matcher": "", "hooks": [{ "type": "command", "command": "flmnt gate" }] }
],
"Stop": [
{ "matcher": "", "hooks": [{ "type": "command", "command": "flmnt derive --hook" }] }
]
}
}flmnt <command> -h.