AgentRecall
AgentRecall is an MCP server that gives AI agents persistent, structured memory—especially for corrections—with session lifecycle management and honest measurement of behavioral change.
Start a session (
session_start): Load project context infullmode (rich payload) orlitemode (≤500-token briefing), automatically surfacing prior corrections, insights, and session history.End a session (
session_end): Explicitly persist everything learned—write a journal entry, consolidate knowledge, and optionally open or close pipeline phases with reflections. Nothing auto-saves.Remember facts and decisions (
remember): Store individual decisions, corrections, facts, or insights mid-session with routing hints (e.g.architecture,blocker,goal,lesson) for automatic classification into the correct memory layer.Recall past memory (
recall): Search stored memory using keyword + RRF (Reciprocal Rank Fusion) retrieval, with optional time filtering and feedback ratings to improve future ranking.Check understanding and alignment (
check): Validate the agent's interpretation against human intent before risky actions. Supports Bayesian decision trails (prior → evidence → posterior), assumption logging, and correction recording.Multiple memory layers: Episodic journal, semantic palace rooms, procedural rules, narrative pipeline phases, and a dedicated corrections ledger—all stored locally under
~/.agent-recall/projects/.Flexible integration: Use via MCP in Claude Code, Cursor, VS Code, etc., or programmatically via
agent-recall-sdkandagent-recall-cli.
Allows importing project context, commit history, and architecture from local Git repositories to bootstrap memory for AI agents.
Supports semantic recall using pgvector on PostgreSQL, enabling efficient similarity search over memory embeddings with RRF scoring.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AgentRecallsave this discussion about the new feature"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
English · 中文
1. Install the MCP server (Claude Code):
claude mcp add --scope user agent-recall -- npx -y agent-recall-mcpGeneric MCP JSON for other clients:
{ "mcpServers": { "agent-recall": { "command": "npx", "args": ["-y", "agent-recall-mcp"] } } }2. First message of every new session, run the loop:
At the start of a session, call session_start to load context.
When the human corrects you, call remember with type "correction".
At the end of a session, call session_end to compound what you learned.What it does
AgentRecall is two things:
A governed corrections ledger — every time you correct your agent ("no, not that version", "put this section first", "ask me before you assume"), that correction is stored as a structured record with severity, evidence, and outcome tracking. It persists across sessions, projects, and agent restarts.
A measurement instrument — the only open-source system that tracks whether a correction actually changed what the agent does in a later session. Every correction accumulates
retrieved_count, and every time the agent encounters the same situation, the outcome is recorded (heededorrecurred).
No other agent memory tool measures that second step. Every benchmark in the field tests retrieval; none tests behavioral change across sessions. We built the measurement harness first — and we publish what we found, including the unflattering numbers.
Related MCP server: knowledgeplane
Measured, not promised
Most agent memory tools claim "never repeats the same mistake." None of them publish a number for it.
Here is what our own instrument found on our own live corpus (2026-07-03):
Metric | Value | Artifact |
Correction capture recall (dual-blind audit, n=59) | 35.3% [17.3–58.7 CI] |
|
Heed rate, pre-2026-07-03 (instrument-biased upper bound — do not cite) | 92.5% [Wilson 60.1–100] |
|
Heed rate, evidence-grounded (post-reset) | 0/3 events |
|
Correction transfer recall (offline bench, achievable) | 0/4 [Wilson 0–49%] |
|
Median session_start injection | 1,489 tokens (was 2,010; Mem0 anchor ~7K) |
|
p95 session_start latency (warm) | 363 ms (was 1,132) |
|
The heed instrument defaulted to "heeded" absent evidence before 2026-07-03; the reset default is "unknown" — the honest 0/3 is the correct starting point, not a regression. Transfer recall cannot support a point-estimate claim below 39 classes (claim-gate ledger, benchmark spec §2.6).
Verify it yourself: every number above regenerates from the committed artifacts — see docs/eval/REPRODUCE.md.
What this means: we captured 35% of real corrections in our own live use. The heed instrument was biased and we reset it. The offline transfer benchmark scores 0 on our own corpus — which is a density problem (32 active corrections across 19 projects is too sparse to front-run mistakes), not a retrieval architecture problem (confirmed 5× by internal experiments).
The learning loop framing is correct — the system is designed to track whether corrections change behavior — but the data we have so far is insufficient to quantify the uplift. We are publishing the measurement harness and running the experiment.
Why this is different from every other memory tool
In mid-2026, the agent-memory field is crowded (Mem0 ~60K stars, Graphiti/Zep ~28K, Supermemory ~28K, Letta ~24K). Most published benchmark numbers in this space are self-reported on the same 2–3 retrieval benchmarks and are hard to reproduce independently.
The confirmed gap (from our research report docs/research/agent-memory-landscape-2026-07.md §2): no public benchmark measures whether a captured correction changes what a fresh agent does in a new session. LongMemEval, LoCoMo, MemoryAgentBench, Letta Leaderboard — all test retrieval or within-session updates.
AgentRecall owns two pieces of the unclaimed ground:
The corrections ledger — a governed data model (
corrections-export/v1, scrubbed egress, retraction, severity, proof-confidence) that any engine can integrate against.The measurement harness —
predict-loo(leave-one-out, anti-self-confirming, dual denominators) and the correction-transfer benchmark spec (HeedBench v1— provisional name), which implements the missing pipeline: capture → persist → fresh session → measure recurrence.
Benchmark numbers in agent memory are typically self-reported and hard to reproduce. Ours regenerate from a fixed, hash-locked corpus with one command (npm run bench) — including the scores that make us look bad.
Quick Start
Visual setup guide — all 13 clients, copy-paste prompts: open
warroom/install.htmlfrom the repo (or after unzipping the War Room release) in any browser. No server needed.
MCP Server — for AI agents
# Claude Code
claude mcp add --scope user agent-recall -- npx -y agent-recall-mcp
# Cursor — .cursor/mcp.json
{ "mcpServers": { "agent-recall": { "command": "npx", "args": ["-y", "agent-recall-mcp"] } } }
# VS Code — .vscode/mcp.json
{ "servers": { "agent-recall": { "command": "npx", "args": ["-y", "agent-recall-mcp"] } } }
# Windsurf — ~/.codeium/windsurf/mcp_config.json
{ "mcpServers": { "agent-recall": { "command": "npx", "args": ["-y", "agent-recall-mcp"] } } }
# Codex
codex mcp add agent-recall -- npx -y agent-recall-mcpSkill (Claude Code only):
mkdir -p ~/.claude/skills/agent-recall
curl -o ~/.claude/skills/agent-recall/SKILL.md \
https://raw.githubusercontent.com/Goldentrii/AgentRecall-X/main/SKILL.mdSDK & CLI
npm install agent-recall-sdk # JS/TS apps
npx agent-recall-cli recall "topic" # terminal & CIimport { AgentRecall } from "agent-recall-sdk";
const memory = new AgentRecall({ project: "my-app" });
await memory.capture("What stack?", "Next.js + Postgres");
const ctx = await memory.recall("rate limiting");5 Memory Layers
The canonical cognitive-psychology taxonomy mapped to your agent's filesystem:
Layer | Type | What it holds | Path |
1 | Episodic | What happened in each session, chronologically. Auto-written during work. |
|
2 | Semantic | Topic-clustered facts with |
|
3 | Procedural | IF-THEN production rules — reusable how-tos. |
|
4 | Narrative | Project phases: Goal → What was hard → How solved → Synthesis. |
|
5 | Correction | Behavioral calibration: rules the agent must follow, with severity and outcome tracking. |
|
+ | Awareness | Cross-project insights promoted from N-confirmed corrections — the compounding layer. |
|
All layers share one canonical naming grammar so any agent can compose retrieval paths from intent. Existing files keep working via a legacy_path view — no migration needed.
The Session Loop
flowchart LR
A([session start]) --> B["/arstart — open<br/>board → pick → load context"]
B --> C{work}
C -->|need past knowledge| D["/arrecall — search"]
D --> C
C --> E["/arsave — save<br/>journal + compound"]
E --> F([session end])
F -. every K sessions .-> G["/arreflect — consolidate"]
G -.-> ACommand | When | What it does |
| First — every session | OPEN. No args = status board across ALL projects (pending work, blockers) → pick by number → load that project's deep context (palace rooms, corrections, task recall). |
| Last — every session | SAVE. Write journal + palace consolidation + awareness compounding. |
| Mid-session, on demand | SEARCH. Surface past knowledge for the current task — documented fixes, prior decisions, patterns. |
| Every K sessions | CONSOLIDATE. Periodic triage: confirm recurrence/phantom matches, cluster new error classes, propose rule re-abstractions (rule edits stay owner-gated). |
Without
/arstart, a fresh agent has zero orientation. Without/arsave, nothing compounds. Those two are the spine;/arrecalland/arreflectcompound it.
The Automaticity Principle
Memory only compounds if it fires automatically, not on demand. Every pull-channel tool (recall, memory_query) saw zero organic calls across 44 projects over weeks of real use — including from the agent that built them. That is why only 5 tools ship by default; the two-verb model (session_start / session_end) carries all the compounding value, and everything else is opt-in via --full.
Dreaming — Nightly Consolidation (optional)
An autonomous overnight agent that runs while you sleep and compounds everything your sessions wrote during the day.
What it does | Result |
Mine patterns across all projects | Repeated corrections promote to |
Ebbinghaus salience decay | Low-signal rooms fade; your palace stays sharp |
Journal rollups | Entries >30 days compress into summary rooms |
Awareness graduation | Corrections confirmed N× times go cross-project |
Telegram report | Nightly summary: learned · decayed · crystallized |
Requires a live Claude Code login. If the session expires, dream skips with a Telegram alert.
# Fix expired login (run this when dreaming stops)
claude loginDream reports are saved locally to ~/.agent-recall/dreams/YYYY-MM-DD.md.
Experimental: Recurrence & Reflection Harness Kit
The question this answers: does a correction actually change behavior, or does the same mistake come back? A logged correction whose error class recurs after the rule was encoded is a phantom gradient step — the write cost was paid, the behavior never changed.
The kit in experimental/harness-kit/ is a Claude Code harness layer that closes this loop on top of AgentRecall:
Piece | What it does |
| Health digest every session: correction flow, insight promotion rate, loop health, phantom counts, reflection cadence |
| Error-class taxonomy over your corrections; mechanical phantom detection (violation dated after its rule) |
| The four memory verbs (open · save · search · consolidate) as slash commands |
| Periodic triage: confirm provisional matches, cluster new error classes, propose rule re-abstractions — rule edits stay owner-gated |
| Surfaces overdue reflection mid-session — memory pushed to the moment of action, not left to be remembered |
| Warn-only guard for an explicit-model dispatch policy — an example of mechanizing a rule that text alone failed to enforce |
North-star metric: post-re-abstraction phantom rate → 0 for treated classes. First validation run (2026-07-14, one power-user harness): 8 error classes and 18 confirmed phantom gradient steps found in 109 corrections; 6 rules re-abstracted the same day.
Status: experimental. Validated on one harness; Python 3 stdlib only; install steps and caveats in the kit's README. Since v3.4.37 the same phenomenon is also measured natively: failure_class + the cross-project recurrence join.
War Room Dashboard — Download & Deploy
A local-first visual dashboard for your memory: an activity calendar, per-project status, corrections, and insights — all rendered from your local ~/.agent-recall/ data. Fully offline (vendored assets), no Node and no build step.
Download
ar-warroom-v3.4.32.zipfrom the latest GitHub Release.Unzip it, then serve it locally:
cd warroom
python3 -m http.server 8080This is the recommended onboarding for Hermes / OpenClaw / OpenCode users too — one offline page to see everything your agent has learned.
Architecture
TypeScript monorepo, 4 published packages: core (storage + tool logic), mcp-server (thin MCP wrappers), sdk (programmatic API), cli (the ar command). All memory is local markdown under ~/.agent-recall/projects/<slug>/ — journal/, corrections/, and palace/ (rooms, skills, pipeline, awareness). An optional Supabase mirror adds pgvector semantic recall; all-local stays the default.
Retrieval: keyword + RRF (Cormack 2009). FSRS-lite decay (Ebbinghaus → SuperMemo → FSRS-6). A Modern Hopfield re-rank primitive (Ramsauer 2020) is in the codebase but not wired into the default path — what runs today is local keyword/substring matching (stemming + synonym expansion + lightweight IDF, per-source ranking) merged via RRF, plus optional vector search when OPENAI_API_KEY is set. No inverted index or BM25 k1/b tuning — a real BM25 index is a possible future upgrade, not what's running now.
Platform Compatibility
Platform | Mechanism | Status |
Claude Code | MCP server + skill + hooks | Primary |
Cursor · Windsurf · VS Code (Copilot) · Codex | MCP server | Supported |
Any JS/TS app | SDK ( | Supported |
Terminal / CI | CLI ( | Supported |
Links
Full reference → README.full.md
Docs → docs/ — command reference, architecture deep-dives
Changelog → UPDATE-LOG.md — phase-by-phase evolution + design reasoning
Benchmark spec → docs/proposals/2026-07-02-correction-transfer-benchmark-spec.md
Landscape research → docs/research/agent-memory-landscape-2026-07.md
Skill → SKILL.md — Claude Code skill definition
Community → Telegram · GitHub Issues
Contributing
PRs welcome. Open an issue first for anything substantive — the design is opinionated and grounded in published research; we want changes grounded the same way.
License
MIT — see LICENSE.
Available Tools
5 toolscheckCheck UnderstandingA
[MID-SESSION — safe any time; for alignment, before risky decisions] Use when the user asks to validate understanding, verify alignment, or check if their interpretation matches the human's intent. Also call BEFORE a high-risk action — publish, deploy, delete, credential exposure, external send/message, or any other irreversible write — passing action_description (one sentence, what you're about to do). Returns matching corrections/rules/insights plus a verdict: blocked means an authoritative correction OVERRIDES the plan — read it before proceeding.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | No | The goal or decision question you're checking alignment on. Required for alignment checks; optional when recording a pure decision trail (prior/posterior/evidence). | |
| delta | No | The gap between your understanding and reality (or 'none'). | |
| prior | No | Initial probability estimate (0-1). Start of Bayesian decision trail. | |
| outcome | No | Final decision result: 'confirmed', 'rejected', 'partial', or free text. Triggers decision trail persistence. | |
| project | No | auto | |
| evidence | No | Evidence collected since prior. Each entry shifts probability. | |
| posterior | No | Updated probability after considering evidence (0-1). | |
| confidence | No | How confident you are. Defaults to medium. | medium |
| assumptions | No | Key assumptions you're making. | |
| decision_id | No | Link multiple check calls to the same decision. Auto-generated if not provided. | |
| understanding | No | Alias for goal — use when saying 'check my understanding: X'. Provide either goal or understanding. | |
| human_correction | No | After human responds: what they actually wanted (or 'confirmed'). | |
| action_description | No | What you're about to DO, one sentence — pass this before publish/deploy/delete/credential/external-send/irreversible-write actions. Returns matching corrections/rules/insights on the result's `action_check` field, with `verdict: "blocked"` when an authoritative correction overrides the plan. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It explains the return format (corrections/rules/insights plus a verdict) and the critical meaning of 'blocked' (authoritative correction overrides the plan). This goes beyond the schema by explaining behavioral semantics, though it omits mention of any recording/persistence side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is informative but a bit dense, with multiple clauses and parentheticals. It is still well-structured, front-loads the most important usage, and each sentence adds value (usage, pre-action trigger, return semantics). Minor trimming could improve readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 13 optional parameters and no output schema, the description provides crucial context: when to invoke, what to pass for risky actions, and how to interpret the response. It could be more complete by explaining decision trail persistence, but the essential information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 92%, so the baseline is 3. The description adds meaningful guidance for `action_description` (one sentence, what you're about to do) and mentions `goal` implicitly, but most other parameters are only documented in the schema. This is adequate but not exceptional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool's purpose: validate understanding, verify alignment, and check interpretation against human intent. It also names a distinct second purpose (pre-action safety check before irreversible writes), which differentiates it from sibling tools like remember/recall.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use scenarios (user asks for alignment, before high-risk actions) and even lists example actions (publish, deploy, delete). It does not explicitly state when not to use the tool or name alternatives, but the context is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recallRecallA
[RETRIEVE — use freely, any time] Use when the user asks to recall, search, find, or look up previous memory, context, or decisions.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results after RRF merge. | |
| query | Yes | What to search for. | |
| since | No | ISO date ("2026-05-01") or relative duration ("7d"). Filters journal results. | |
| project | No | auto | |
| feedback | No | Rate previous recall results to improve future ranking. Pass {id, useful:true} for each result you actually used; {id, useful:false} for noise. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states the tool's purpose and that it can be used freely. It does not mention side effects, authentication needs, rate limits, or any constraints beyond being a retrieval operation. This is insufficient for a tool with multiple parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single line with a tag and purpose statement. It is front-loaded with the retrieval tag and immediately useful information. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 5 parameters (1 required) and no output schema, the description provides no context about the feedback mechanism, the 'since' parameter, or the limit parameter. It does not explain the return format or behavior for complex queries. The description is too sparse for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema coverage is 80%, meaning most parameters have descriptions. The tool description adds no additional meaning beyond the schema; it only describes the overall purpose. Baseline for high coverage is 3, so no extra credit for parameter insights.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to recall, search, find, or look up previous memory, context, or decisions. It uses specific verbs and identifies it as a retrieval operation, distinguishing it from siblings like 'remember' (likely for storage). The tag '[RETRIEVE — use freely, any time]' reinforces its role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: 'Use when the user asks to recall, search, find, or look up previous memory, context, or decisions.' It also includes the tag 'use freely, any time,' implying no restrictions. However, it does not mention when not to use or explicitly name alternatives, though sibling tools suggest boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rememberRememberA
[MID-SESSION WRITE — single fact/decision; saying it is not saving it] Use when the user asks to remember, store, note, or save a specific decision, fact, or insight.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | What to remember. | |
| context | No | Routing hint. Values: 'architecture' or 'decision' → palace/architecture room. 'blocker' or 'blocked' → palace/blockers room. 'goal' → palace/goals room. 'lesson' or 'insight' → awareness. 'qa' or 'capture' → Q&A log. Omit for auto-classification. Note: bug/fix/error content previously routed to standalone knowledge/ dir now routes to journal (purity-census-2026-07-05: knowledge/ is write-only, not surfaced by recall or session_start). | |
| project | No | auto |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior itself. It does note it is a write and that 'saying it is not saving it,' which is a valuable behavioral insight. However, it omits details about side effects, persistence scope, or potential errors, relying on schema routing hints for additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with a parenthetical qualifier. It is concise, informative, and avoids redundancy, earning its place without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple write tool with no output schema, the description and schema collectively cover the core invocation steps, including trigger phrases and routing. However, the undocumented project parameter and lack of confirmation/return behavior leave minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides descriptions for content and context (67% coverage), with the context parameter richly documented through routing hints. The project parameter has no description and the tool description does not explain it, leaving a noticeable gap in parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly identifies this as a MID-SESSION WRITE for a single fact or decision, and lists specific trigger phrases ('remember, store, note, save'). It distinguishes itself from likely read or session siblings by focusing on persistence of a specific item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage guidance with concrete triggers ('Use when the user asks to remember, store, note, or save a specific decision, fact, or insight.'). It does not provide when-not-to-use exclusions or alternatives, but the context is unambiguous for a write operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_endEnd SessionA
[ON SAVE/EXIT — YOU must call this; nothing auto-saves] Use when the user asks to save, checkpoint, summarize, end, retain, or persist the current session. Optionally pass close_phase / open_phase to update the project pipeline narrative spine in the same call.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | auto | |
| summary | Yes | What happened this session. Simple session: 2-3 sentences. Multi-phase session: one paragraph per completed phase (e.g. 'Phase 1 — Name: what happened. Phase 2 — Name: what happened. Decisions: X. Blockers: Y.'). Never compress a multi-phase session to 2 sentences — it makes the journal useless. | |
| insights | No | Insights learned this session. | |
| open_phase | No | Open a new pipeline phase as part of this save (e.g. when a watershed session pivots into the next strategic direction). | |
| trajectory | No | Where is the work heading next. | |
| close_phase | No | Close the currently active pipeline phase as part of this save. Provide all three reflection fields explicitly — never auto-generated. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the critical behavioral trait 'nothing auto-saves; you must call this', which is vital for correct invocation. It also reveals the optional pipeline update capability. However, it does not describe idempotency or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no waste. The first sentence is an imperative warning that front-loads the most critical behavioral instruction. The second sentence concisely describes optional parameters. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description should cover return values or side effects. It mentions that the tool persists session state and optionally updates the pipeline narrative, but does not state what the tool returns (e.g., confirmation) or whether it fails silently. The description is adequate for a simple end-point but lacks full closure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 83%, so baseline is 3. The description adds minimal meaning beyond existing schema descriptions—it mentions that close_phase/open_phase update the 'project pipeline narrative spine', but the schema already explains their purpose. The extra context is helpful but not substantial enough to raise the score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool ends a session and must be called on save/exit. It lists specific triggers like 'save, checkpoint, summarize, end, retain, or persist' which distinguishes it from sibling tools like session_start (opposite) and check/recall/remember (retrieval-focused). The verb 'End' and resource 'Session' are precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool (when user asks to save/end/etc.) and mentions an optional feature (close_phase/open_phase) available in the same call. It does not include explicit when-not-to-use statements, but the context of session ending is clear given sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_startStart SessionA
[ENTRY — call FIRST, before acting] Use when the user asks to start, load, continue, resume, or open memory for a project. Set mode='lite' for a ≤500-token briefing (good for fresh conversations where the agent will pull memory on demand via recall()).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 'lite' = ≤500-token sketch; agent must pull on demand. 'full' = current rich payload. | full |
| context | No | Optional context for matching cross-project insights | |
| project | No | auto | |
| verbose | No | Set true to get full JSON context instead of terse summary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It reveals that the tool is an entry point and explains lite mode's ≤500-token briefing behavior, but it does not state what 'full' actually returns beyond schema hints, nor any side effects like session state resets. Some context is added, but gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense paragraph with the critical instruction front-loaded in brackets. Every clause earns its place: entry order, trigger phrases, and lite mode trade-off. No fluff or repetition of schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a session-start tool with no output schema, the description covers the essential context: when to call, what it does, and mode behavior. It lacks explicit mention of return value or project auto-selection, but the schema covers those parameters, and the lite/full distinction implies the output payload. Good enough for a tool with four optional params and no nested objects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 75% schema description coverage, the description adds significant semantic value by explaining when to choose mode='lite' and tying it to recall(). The context and verbose parameters are left to the schema, but the mode guidance elevates the description above the baseline schema detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with '[ENTRY — call FIRST, before acting]', clearly identifying the tool as the session initialization entry point. It specifies exact user intents ('start, load, continue, resume, or open memory') and distinguishes it from siblings like recall and remember.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to call FIRST before acting, defines when to use it (user asks to start/load/continue/resume/open memory), and provides a concrete use case for mode='lite' in fresh conversations, even referencing recall() as an alternative for on-demand memory retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v3.4.40- Added
check - Added
remember - Added
session_start
3 tool updates
v3.4.38- Removed
check - Removed
remember - Removed
session_start
5 tool updates
v0.1.0- First observed
check - First observed
recall - First observed
remember - First observed
session_end - First observed
session_start
TDQS
Each tool has a clearly distinct purpose: check validates alignment before actions, session_start begins a memory session, session_end saves/exits, remember stores a single fact, and recall retrieves context. There is no meaningful overlap that would cause selection ambiguity.
Tool names follow a mostly consistent lowercase verb style, with session_start and session_end adhering to a predictable prefix pattern. The remaining tools (check, remember, recall) are bare verbs, but the naming remains readable and intuitive overall.
Five tools is well-scoped for a memory/session management server, covering entry, mid-session operations, retrieval, and exit. Each tool earns its place without unnecessary bloat.
The tool surface covers the core lifecycle: starting, saving, remembering, recalling, and pre-action validation. Minor gaps exist, such as no explicit update/delete for individual memories, but agents can work around these by using remember to overwrite or session_end to checkpoint.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP memory server. One memory your agents share — across models, devices and apps.
Persistent personal memory for AI assistants — save, search, and recall across every MCP client.
- memnodeOAuthdev.memnode
Persistent, inspectable memory for AI agents with lineage, correction, and a hosted MCP endpoint.
Persistent AI memory shared across Claude, ChatGPT, coding agents, and compatible MCP clients.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for long-term agent memory, providing persistent memory, searchable knowledge, and evolving identity for AI agents.53Apache 2.0
- FlicenseNot gradedqualityCmaintenanceMCP server that gives AI agents and teams persistent, shared memory using a knowledge graph with vector embeddings, automatic consolidation of related facts, and hybrid search.3-
- AlicenseNot gradedqualityCmaintenanceMCP server that provides AI agents with persistent memory, cross-agent sharing, and context management, enabling them to remember conversations, track complex tasks, and evolve skills across tools.2MIT
- AlicenseAqualityDmaintenanceMCP server for persistent, semantic memory across AI sessions; store context, decisions, and learnings and recall them with natural language search.265MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Goldentrii/AgentRecall-X'
If you have feedback or need assistance with the MCP directory API, please join our Discord server