Skip to content
Agentmart
Submit a tool

Anneal Memory

Two-layer memory for AI agents with an immune system.

Connector by phillipclapham · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 12
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/phillipclapham-anneal-memory

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Two-layer memory for AI agents with an immune system. Zero dependencies.

Use cases: agent-memory

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
8 read · 5 write · 1 delete · 3 not yet classified
Secrets
None asked for
Install scripts
Not scanned yet
Runs as
Python package

Tools by what they do 17

Read from the source code; the running server may list different tools.

Read 8 · Look things up without changing anything.

  • crystal_index
  • crystal_recall
  • recall
  • spore_ascend
  • spore_descend
  • spore_get
  • spore_list
  • status

Write 5 · Create, change, send or run things.

  • record
  • save_continuity
  • spore_add
  • spore_update
  • wrap_cancel

Delete 1 · Delete, drop, revoke or wipe things.

  • delete_episode

Not yet classified 3 · We could not tell from the name and description.

  • prepare_wrap
  • spore_surface
  • spore_touch

Files it touches

  • Any path the agent passes to its tools

Tools (17)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • crystal_index

    List the always-on crystallized INDEX — a name + one-clause menu of every live crystallized pattern (AM-CRYSTAL-INDEX). Call this at session start, or any time you want to know what graduated wisdom exists, so you aren't blind to your own crystallized corpus; then pull a body on cue with crystal_recall. Deliberately thin (name + clause only) — the menu is meant to be cheap to keep in view. Sorted by name. Returns nothing when no patterns have been crystallized yet.

  • crystal_recall

    Recall crystallized patterns relevant to a free-text query — the on-demand graduated tier (AM-CRYSTAL). Crystallized patterns are proven-and-stable wisdom that graduated OUT of the always-loaded working set into a retrievable store, so a large body of wisdom stays effective without clogging context. Call this when a decision, design choice, or question touches a topic where prior graduated wisdom might apply — recall surfaces the relevant patterns on cue (pair it with crystal_index, the always-on menu of what exists). Associative by default: a pattern grounded in an episode your query matched …

  • delete_episode

    Delete a single episode by ID. Use this for content that should not exist: accidentally recorded PII, sensitive data, or fundamentally wrong recordings. Do NOT use for factual corrections — record a new episode with the correction instead and let compression resolve it. Deletion cascades: all association links involving the episode are removed, and the deletion is logged in the audit trail. The text is removed from the episodes table and overwritten in the database file (secure_delete); the WAL is emptied after the delete, or at the store's next delete or close if another connection is reading…

  • prepare_wrap

    Prepare a compression package for session wrap. Call this at session boundaries — when work is ending, the user says to wrap up, or the session is getting long. Returns all episodes since the last wrap, the current continuity file, stale pattern warnings and compression instructions. Marks a wrap as in-progress and mints a session-handshake token (shown as 'Wrap token: <hex>' at the end of the response) — round-trip that token to save_continuity's wrap_token argument so the save call can verify it matches the in-progress wrap and catch stale tokens. After calling, follow the returned instructi…

  • recall

    Query episodes from memory with filters. Call this to find prior context before making decisions, to locate specific episodes for citation during graduation, or to review recent work. Returns matching episodes ordered by timestamp (newest first). Supports time range, type, source, and keyword filters. The keyword is matched as an exact phrase first; if no episode contains the whole phrase and it has two or more distinctive words, the call falls back to ranking episodes by how many of those words they contain (the reply says so and names the words each episode matched), so a multi-word query do…

  • record

    Record a typed episode to memory. Call this when important decisions are made, patterns are noticed, tensions are identified, questions arise, or outcomes are observed. Record the reasoning, not just the fact — 'Chose X because Y' is more valuable than 'using X'. Episodes accumulate during a session and serve as raw material for compression into the continuity file at session end.

  • save_continuity

    Validate and save the compressed continuity file. Call this after compressing your episodes using the instructions from prepare_wrap. The text must contain exactly 4 sections: ## State, ## Patterns, ## Decisions, ## Context. The server validates structure, checks graduation citations against real episodes (cited IDs must exist), checks explanation overlap (evidence must reference actual episode content), detects citation gaming (suspicious reuse of single episodes), and may demote ungrounded graduations. Each pattern's level is also capped against the level the store last saved for it: a new p…

  • spore_add

    Plant a spore — an open cognitive loop in the PROSPECTIVE layer (a thing that must RESOLVE), distinct from episodic/continuity memory (which accretes and never completes). Use for an open intention you want to carry forward and close later: a `task` (open doing), a `question` (open not-knowing), or a `thought` (open idea). Set `tier` to weight intent (hot/warm/cold/parked) and `next` (YYYY-MM-DD) to ask for re-surfacing on a date. Resolve later via spore_descend (compost) or spore_ascend (transmute into memory/a project).

  • spore_ascend

    Resolve a spore UPWARD — the membrane INTO retrospective memory. The spore became real work: record a `ref` (a pointer to what it became — a project path, an episode id, a pattern name). `kind` must fit the type: task -> project|thread; question -> episode|pattern; thought -> essay|pattern|project. In v1 this RECORDS the pointer; the actual episode/continuity write stays the host's act.

  • spore_descend

    Resolve a spore DOWNWARD — compost / self-clean. `kind` must fit the spore's type: task -> done|dropped|composted; question -> answered|mooted|composted; thought -> explored|dropped|composted ('composted' is the universal neglect-descent). This is the close that does NOT cross into retrospective memory.

  • spore_get

    Fetch one spore by id (searches open first, then resolved). Returns its full record including computed germination and any resolution.

  • spore_list

    List OPEN spores, ranked by tier then salience then germination. Germination is computed at read-time (growing <3d / resting 3–7d / dormant >7d or past its `next:` / parked). Filter by type, tier, domain, or germination. This is the working view; for the salience-generator surface use spore_surface.

  • spore_surface

    The seed-side surface a salience generator consumes. With top_of_mind=true, only the Top-of-Mind contribution (spores that are 'hot' OR 'growing', ranked, across all three types); otherwise all open spores, ranked. The downstream consumer composes the full Top of Mind from this x active threads x recent ships.

  • spore_touch

    Engage a spore: set `seen` to today and clear an elapsed `next:` alarm (returning it to 'growing'). Call when you revisit an open loop but aren't resolving it — keeps germination honest.

  • spore_update

    Metadata surgery on an OPEN spore. Only the fields you pass change; pass an empty string to next/pointer/domain to CLEAR them. Does NOT bump `seen` (use spore_touch to signal engagement). Use add_note to append a dated note.

Show 2 more tools
  • status

    Get memory health metrics. Call this at session start to understand memory state, or when diagnosing issues. Returns episode counts (total and since last wrap), wrap history, continuity file size, episodes by type, whether a wrap is currently in progress, association network metrics (links formed before the store stopped forming them; no new links since 1.0.2), and audit trail health (enabled/disabled, entry count, log path, retention window). Use `anneal-memory verify` from the CLI to validate the audit hash chain itself — status() only surfaces cheap health signals, not integrity proof.

  • wrap_cancel

    Abandon a wrap that is in progress, clearing the wrap-in-progress state so a fresh prepare_wrap can run. Call this when prepare_wrap refuses with 'a wrap is already in progress' and that wrap is NOT going to be finished — typically one an earlier session opened and then ended without saving, so nothing is left to compress it. Episodes are NOT deleted: cancelling discards the frozen snapshot and its handshake token, and every episode in the abandoned window is still recorded and is picked up by the next prepare_wrap. The cancellation is written to the audit trail with the abandoned token and ep…

Signals

Stars
12
Forks
2
Open issues
0
Weekly downloads
8,106
Last commit
Oct 23, 2026 (5 days ago)
Last release
Oct 18, 2026 (10 days ago)
Last package publish
Oct 18, 2026 (10 days ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.phillipclapham/anneal-memory
Version
0.1.1
Auth
No auth
Packages
pypi anneal-memory
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026
Cite this page

Anneal Memory MCP server. Agent Mart. https://agentmart.dev/connectors/phillipclapham-anneal-memory (last updated 2026-10-24)