Skip to main content
Glama

codex-agent-mem

Ask DeepWiki

Other languages: Español | Deutsch | Português do Brasil | 中文 | 日本語

Portable, auditable, local-first MCP memory for MCP-compatible AI agents and coding workflows.

codex-agent-mem keeps durable project memory outside the model runtime, compresses continuity into smaller working packs, and carries forward operational state so MCP-compatible AI agents can resume with less repetition, fewer false “done” claims, and more control over what stays in context.

Everything is stored and processed locally by this MCP: SQLite database, FTS index, snapshots, telemetry metadata, and the optional inspector UI. codex-agent-mem does not send your memory, project data, prompts, or telemetry to any external server. MCP clients may still expose tool results to the model or service you configure, so treat retrieved memory as local tool output handed to that client.

Born for Codex and GPT workflows, codex-agent-mem has grown into a portable MCP memory layer for MCP-compatible runtimes including Codex CLI/Desktop, Claude Code, Google Gemini CLI, Qwen Code workflows using Ollama models, and other local or third-party CLI agent stacks. Validation is tracked per client/runtime and evidence level. Model-specific details stay in the validation docs so the README can describe the public surface without overclaiming one runtime.

codex-agent-mem lives locally, keeps memory auditable and pull-based, and does not send your stored memory to any external service.

Public baseline. Built in small, testable slices and still evolving, but already aligned for real use.

What’s new in v1.0.x

  • v1.0.2 fixes a project identity edge case where generated codex-agent-mem context inside AGENTS.md could be mistaken for active project scope by MCP hosts or agent clients. It also lets manual notes initialize a missing local project record and preserves existing project root metadata on conflicting updates.

  • v1.0.1 fixes one local daemon/stdio bridge idle-timeout path that could surface as a false Transport closed incident when --daemon-url is used.

  • v1.0.1 serializes shared request handling inside the optional threaded local daemon so one SQLite-backed server instance is not driven concurrently.

  • v1.0.1 hardens the public local-first daemon surface: loopback-only bind validation, optional bearer-token auth for /mcp, sanitized /health, and token forwarding from the stdio bridge.

  • v1.0.1 adds a generated-context instruction-hierarchy guardrail: retrieved memory is advisory project context, not a higher-priority instruction; this is a basic guardrail, not prompt-injection proof.

  • v1.0.1 documents that local SQLite memory is plaintext by default in the public 1.0.x line and must not be treated as a secrets vault.

  • v1.0.1 normalizes list-returning MCP tool payloads so structuredContent uses object roots like {items, count} instead of root arrays for stricter clients such as Claude Code.

  • v1.0.1 adds session-aware retrieval for persisted memory: mem_session_list lists recent sessions, mem_scope_resolve ranks persisted lanes from explicit thread/path hints, mem_bootstrap_context avoids project-wide startup packs for ambiguous containers, and optional session_id filters retrieval tools so broad project scopes do not mix chats or agents. Project-wide packs that span multiple sessions or inferred sub-scopes emit a visible scope warning and recommend narrowing first. This is not live current-turn awareness.

  • v1.0.1 keeps normal continuity installs writable by default; --read-only is an explicit retrieval-only audit/debug mode, not the default operating mode.

  • low-impact MCP runtime profiles: minimal, standard, and full

  • explicit --read-only audit/debug mode that blocks mutating tools and avoids closure writes

  • lazy SQLite initialization so unused MCP connections stay cheap

  • compact MCP responses by default, with full payloads kept in structuredContent

  • known_pack_hash / not_modified support so unchanged continuity packs are not resent

  • runtime heartbeat diagnostics, spawn-storm warning, optional telemetry, and an optional daemon/stdio bridge

Latest releases: v1.0.2 Identity + Scope Patch | v1.0.1 Transport + Local Security Hotfix | v1.0.0 Low-Impact Runtime

Related MCP server: mcp-chest-memory

Snapshot (synthetic v1.0 fixtures)

Scenario

Profile

Source tokens

Pack tokens

Saved

not_modified

Tools

Lazy init

Read-only

Small project continuity

minimal

1,841

253

86.26%

true

4

false->true

true

Medium agent workflow

minimal

4,855

270

94.44%

true

4

false->true

true

Large repeated audit

minimal

9,731

269

97.24%

true

4

false->true

true

Sub-agent handoff example

minimal

6,523

276

95.77%

true

4

false->true

true

Across these reproducible fixtures, repeated operational context was reduced from ~22,950 source tokens to ~1,068 memory-pack tokens, an approximate 95.35% reduction. This is not a universal guarantee; it shows the effect when an agent would otherwise resend the same project continuity.

Tools=4 refers to the pre-session-aware minimal profile used by these fixtures. In v1.0.1, minimal also includes mem_session_list, mem_scope_resolve, and mem_bootstrap_context, and the standard profile exposes 20 tools for broader retrieval, governance, and audit workflows.

Runtime validation snapshot

Runtime

Setup

Observed metrics

Result

Writable MCP default

Codex/Gemini/Claude local daemon bridges, read_only=false; full where writable tools are required

mem_note_create wrote indexed manual notes and mem_search / mem_context_pack recovered them; mem_snapshot_create(project_key, label, session_id) recorded high-confidence provenance

Writable manual-note and snapshot-provenance smokes passed

Codex Desktop

Codex Desktop, MCP stdio, explicit retrieval-only minimal, read-only, compact synthetic v1.0 fixtures

~22,950 source tokens -> ~1,068 pack tokens, ~95.35% repeated-context reduction, not_modified=true on repeated packs

Retrieval-only MCP validation plus public reproducible verification; writable continuity is covered by the writable default row

Codex CLI / codex exec

Codex CLI MCP stdio path, short-lived / ephemeral execution

same local MCP server and config style as Desktop; short-lived CLI lifecycle validated separately from the long-lived Desktop host behavior

Validated Codex CLI path

Google Gemini CLI

codex-agent-mem MCP stdio, explicit retrieval-only standard, read-only; compact when structured payloads are visible, otherwise verbose

stable process, request counter increased as expected, object-root payloads verified where visible

Retrieval-only MCP validation with client-exposure caveat

Claude Code

Claude Opus 4.7, codex-agent-mem MCP stdio only, explicit retrieval-only standard, read-only, compact

requests 3 -> 8, lazy init false -> true, same_db_process_count=2 with one Claude Code host active, spawn_storm_warning=false, mem_search count=2

Retrieval-only MCP validation passed

Qwen Code

Qwen Code 0.15.0, local Ollama, qwen3.6:latest, explicit retrieval-only standard, read-only, compact

real MCP calls to mem_context_pack, mem_search, mem_open_work, mem_completion_check, mem_health_runtime; requests 8, lazy init true, spawn_storm_warning=false, not_modified=true

Retrieval-only local MCP validation passed

Qwen local model smokes

Qwen Code 0.15.0 with Ollama models qwen3.6:35b-a3b-q8_0 and qwen3.5:9b

both models answered CLI smoke tests and invoked mem_health_runtime through MCP stdio; retrieval-only read_only=true, clean stdin_eof exits

Retrieval-only local model smokes passed

DeepSeek-V3.2

Qwen Code 0.15.0, deepseek-v3.2:cloud through Ollama Cloud, explicit retrieval-only standard, read-only, compact

real MCP calls to mem_context_pack, mem_search, mem_health_runtime; requests 6, spawn_storm_warning=false, not_modified=true

Retrieval-only cloud-backed MCP validation passed

Minimax M2.5

Qwen Code 0.15.0, minimax-m2.5:cloud through Ollama Cloud, explicit retrieval-only standard, read-only, compact

real MCP calls to mem_context_pack, mem_search, mem_health_runtime; requests 6, not_modified=true

Retrieval-only cloud-backed MCP validation passed

Kimi Code CLI

Kimi Code CLI 1.38.0, codex-agent-mem MCP stdio, explicit retrieval-only standard, read-only, compact

kimi mcp test codex-agent-mem connected and listed the expected standard-profile tools; Kimi K2.5 / Kimi K2.6 full model tool-call validation remains in continuous evaluation

Retrieval-only MCP connection validated; model-run validation not claimed

Grok / xAI

Protocol-level compatibility note

MCP stdio / JSON-RPC protocol behavior reviewed

Protocol note

Grok / xAI is listed as a protocol-level compatibility note, not live model tool-call validation. The live validated rows are the MCP client/model pairs measured directly: Codex Desktop/CLI, Google Gemini CLI, Claude Code, Qwen Code, Qwen local model smokes, DeepSeek-V3.2 through Ollama Cloud, Minimax M2.5 through Ollama Cloud, and Kimi Code CLI connection validation. More generally, codex-agent-mem is model-agnostic at the MCP layer; new pairs are added as their live measurements are captured.

Verifiable Results

codex-agent-mem includes a reproducible verification sandbox and a public evidence export for v1.0.0. The fixture approach is intentional: the MCP optimizes repeatable operational-context handling, so the public evidence keeps the repeated context controlled instead of turning the benchmark into a different conversation every run.

The public v1.0.x evidence combines reproducible verification fixtures with live MCP runtime validation across the runtimes listed above. It reports context compression, repeated-pack avoidance with known_pack_hash, lazy initialization, minimal tool surface, explicit read-only mode safety, response diet, local telemetry, closure control, and a sub-agent handoff example.

See: Verification Evidence and v1.0.0 Results.

Claude Code and claude-mem

codex-agent-mem runs in Claude Code as a standard MCP stdio server. It does not install session-start hooks, stop hooks, or automatic post-turn summarization. Memory is retrieved on demand through MCP tools such as mem_context_pack, mem_search, mem_open_work, and mem_completion_check.

If you already use claude-mem, both tools can technically coexist. For lower-overhead, lower-latency workflows, use one active memory layer at a time. In local validation with one Claude Code host active, codex-agent-mem alone kept the runtime compact (same_db_process_count=2, spawn_storm_warning=false). Running it alongside claude-mem increased visible tool surface to 61 tools, added a session-start memory block of about 6,995 tokens, and showed post-turn stop-hook delays. This does not break codex-agent-mem, but it makes results harder to compare and can increase overhead and latency.

Use codex-agent-mem when you prefer local-first, auditable, pull-based memory with explicit retrieval and deterministic closure checks. Use additional memory plugins only when you intentionally want their automatic hook-based behavior.

For token-sensitive Claude Code workflows, codex-agent-mem is designed for low overhead by default: no session-start injection, no stop-hook summarization, compact responses, explicit budgets, and pack_hash / not_modified short-circuiting for unchanged packs.

Optional companion: clean-process-ended

codex-agent-mem v1.0.1 and clean-process-ended (GitHub) v0.7.2 work independently, but they solve adjacent problems in local agent workflows.

  • codex-agent-mem preserves continuity: project memory, scoped context packs, manual notes, snapshots, open work, blockers, and deterministic closure checks.

  • clean-process-ended handles local process hygiene: ownership-first diagnostics, dry-run close checks, and compact janitor receipts.

Together they improve end-of-task workflows: recover context, finish the work, check local process state, and store compact close evidence without making either MCP a hard dependency of the other.

What you get

Continuity

  • Compact continuity, not raw replay: turns repeated session context into smaller AGENTS.md working packs when compression is actually favorable

  • Operational state across sessions and agents: keeps objective, constraints, pending work, blockers, Definition of Done, and scope guardrails visible and reusable so context is not captive to one model, one session, or one provider UI

  • MCP-native integration: runs as a local MCP stdio server for Codex, Claude Code, Google Gemini CLI, Qwen Code, and other MCP-compatible clients; Codex notify and optional AGENTS.md sync remain available where useful

  • Token efficiency for agent workflows: improves the token economy of repeated agent work by reducing continuity replay when the compact pack wins; the public v1.0 fixtures show 86% to 97% reduction on repeated-context scenarios

Closure Control

  • Deterministic closure control: exposes mem_open_work and mem_completion_check so open work beats stale completion claims

  • Scope retention: carries forward must-not-drop continuity, recent changes, and active blockers instead of only decisions

Governance and Audit

  • Governed memory selection: applies project policies, inheritance rules, and repair events instead of mixing everything blindly

  • Inspectable MCP memory: the local /ui lets you navigate recent changes, scope guard, provenance, health, snapshots, governance state, and stored memory without opening the SQLite database by hand

  • Fully local and auditable: SQLite + FTS5, provenance, health diagnostics, snapshots, and a local inspector UI with no external memory service and no outbound memory sync

  • Clear local security boundary: v1.0.1 hardens loopback daemon access, optional bearer-token auth, sanitized health output, and generated-context instruction hierarchy; this is not prompt-injection proof, and the public 1.0.x SQLite database remains plaintext by default and should not be used as a secrets vault

Key docs: AGENTS.md | Quickstart | Codex Integration | Codex Desktop Note | Support Matrix | Design Decisions

Built for long audits, multi-step project continuity, and workflows where the real failure mode is not only forgetting decisions, but also dropping scope, losing blockers, and declaring completion too early.

Status

1.0.2 is the current 1.0.x maintenance release. 1.0.0 remains the public verification baseline for the reproducible metrics below.

What works today:

  • Codex notify ingestion on agent-turn-complete

  • local SQLite persistence with FTS5

  • heuristic extraction of session_summary, decision, objective, constraint, pending_item, completed_item, blocker, and completion_claim

  • hierarchical Definition of Done tracking across project_dod, mission_dod, and session_dod

  • generated working-memory packs with approximate token budget and compression stats

  • budgeted packs for micro, normal, and full reinjection

  • opt-in AGENTS.md sync through --sync-project-doc when the generated pack is smaller than the source context

  • operational-state carry-forward so the next run can recover objective, pending work, blockers, and scope guardrails

  • deterministic closure control with mem_open_work and mem_completion_check

  • recent-change deltas through mem_recent_changes

  • scope continuity and must-not-drop guardrails through mem_scope_guard

  • false-completion guardrails that keep “done” from overriding open work when pending items, blockers, or DoD gaps still exist

  • context sync and closure metrics persisted per project

  • automatic budget selection for context packs when budget=auto

  • memory provenance persisted per observation and queryable through mem_provenance

  • diagnostic health reporting through mem_health

  • MCP runtime diagnostics through mem_health_runtime

  • manual operational notes through mem_note_create, indexed for mem_search and eligible for mem_context_pack

  • versioned project snapshots through mem_snapshot_create, mem_snapshot_list, and mem_snapshot_restore

  • governed memory policies through mem_policy_validate, mem_policy_add, mem_policy_list, and mem_policy_remove

  • selective inheritance links through mem_inheritance_add, mem_inheritance_list, and mem_inheritance_remove

  • governed repair proposals and derived repair events through mem_repair_propose and mem_repair_apply

  • low-impact MCP profiles through --profile minimal|standard|full

  • explicit read-only audit/debug mode through --read-only

  • compact MCP response text with full structuredContent

  • known_pack_hash / not_modified continuity-pack reuse

  • short in-process caching for expensive read tools

  • lazy SQLite initialization for cheap unused MCP connections

  • enriched runtime health with profile, mutability, cache, lazy-init, heartbeat, and spawn-storm diagnostics

  • optional local runtime telemetry through --telemetry-mode off|summary|debug

  • optional local daemon through codex-agent-mem-daemon and stdio bridge mode with --daemon-url

  • FastAPI inspection API

  • local inspection UI at /ui, including recent changes, scope guard, provenance, health, snapshots, and governance state

  • local policy CLI with codex-agent-mem-policy

  • MCP stdio server with:

    • mem_search

    • mem_get

    • mem_recent

    • mem_session_list

    • mem_scope_resolve

    • mem_bootstrap_context

    • mem_project_brief

    • mem_open_work

    • mem_completion_check

    • mem_recent_changes

    • mem_scope_guard

    • mem_context_pack

    • mem_provenance

    • mem_health

    • mem_health_runtime

    • mem_snapshot_list

    • mem_note_create

    • mem_snapshot_create

    • mem_snapshot_restore

    • mem_policy_list

    • mem_policy_validate

    • mem_policy_add

    • mem_policy_remove

    • mem_inheritance_list

    • mem_inheritance_add

    • mem_inheritance_remove

    • mem_repair_propose

    • mem_repair_apply

  • automated tests

What is intentionally not in scope yet:

  • embeddings

  • vector stores

  • Codex App Server ingestion

  • Codex hooks adapter

  • Ollama adapter

  • multi-agent orchestration

Why this repository exists

  • Agent workflows often need durable context that stays outside one runtime process.

  • Retrieval alone does not solve the bigger failure mode: losing scope and forcing the user to restate prior context.

  • A compressed continuity block or MCP context pack can reduce how much prior context must be replayed manually.

  • Carrying only decisions is not enough; the runtime also needs active objective, open work, blockers, and a rule against false closure.

  • SQLite keeps the implementation local-first, auditable, and easy to inspect.

  • The current release intentionally focuses on a narrow, testable slice rather than a broad unfinished platform.

  • Long-lived and short-lived MCP hosts can behave differently under runtime load; see the validation docs for the exact runtime boundary.

Installation model

codex-agent-mem is installed as a local Python package and exposed to MCP-compatible clients through stdio commands.

The stable pattern is:

  1. install the package

  2. point the MCP client at the installed command

  3. keep the memory database local and auditable

Codex-specific notify and mcp_servers snippets are generated by codex-agent-mem-bootstrap-codex; other MCP clients use their own configuration files.

Quickstart

If you want the shortest path from clone to a working local setup:

PowerShell / Windows

git clone https://github.com/MarceloCaporale/codex-agent-mem.git
cd codex-agent-mem
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e .[dev]
codex-agent-mem-smoke
codex-agent-mem-bootstrap-codex --db-path C:\Users\YOU\.codex_agent_mem\codex_agent_mem.db

bash / macOS / Linux

git clone https://github.com/MarceloCaporale/codex-agent-mem.git
cd codex-agent-mem
python3 -m venv .venv
source .venv/bin/activate
pip install -e .[dev]
codex-agent-mem-smoke
codex-agent-mem-bootstrap-codex --db-path "$HOME/.codex_agent_mem/codex_agent_mem.db"

For Codex, paste the generated snippet into ~/.codex/config.toml. For other MCP clients, use the common stdio command in Configure MCP clients.

Install

Option A: pipx from GitHub

Install directly from the repository URL:

pipx install "git+https://github.com/MarceloCaporale/codex-agent-mem.git"
codex-agent-mem-smoke
pipx install "git+https://github.com/MarceloCaporale/codex-agent-mem.git"
codex-agent-mem-smoke

Option B: local development install

git clone https://github.com/MarceloCaporale/codex-agent-mem.git
cd codex-agent-mem
python3 -m venv .venv
source .venv/bin/activate
pip install -e .[dev]
pytest -q
codex-agent-mem-smoke
git clone https://github.com/MarceloCaporale/codex-agent-mem.git
cd codex-agent-mem
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e .[dev]
pytest -q
codex-agent-mem-smoke

Configure MCP clients

The MCP server entry point is the same for every compatible client:

codex-agent-mem-mcp --db-path "$HOME/.codex_agent_mem/codex_agent_mem.db"
codex-agent-mem-mcp --db-path C:\Users\YOU\.codex_agent_mem\codex_agent_mem.db

Point your MCP-capable client at that installed stdio command. The validated public v1.0.x paths include Codex CLI/Desktop, Claude Code, Google Gemini CLI, Qwen Code with local Qwen models through Ollama, DeepSeek-V3.2 and Minimax M2.5 through Ollama Cloud, plus Kimi Code CLI connection validation.

Codex helper

Generate a ready-to-paste snippet:

codex-agent-mem-bootstrap-codex --db-path "$HOME/.codex_agent_mem/codex_agent_mem.db"
codex-agent-mem-bootstrap-codex --db-path C:\Users\YOU\.codex_agent_mem\codex_agent_mem.db

For Codex, that prints the notify block, the [mcp_servers."codex-agent-mem"] block, an explicit stdio idle-timeout, and MCP tool approvals you can paste into ~/.codex/config.toml.

For long-lived Codex Desktop sessions, prefer a longer MCP idle timeout such as --idle-timeout-seconds 1800 so the Desktop thread is less likely to keep a closed stdio transport. For short CLI or codex exec runs, 300 seconds is usually enough and keeps cleanup faster.

Automatic AGENTS.md reinjection is now opt-in. Add --sync-project-doc to the notify command only if you want generated working-memory blocks written back into the working directory.

How agents should use it

Once configured, the agent should use codex-agent-mem proactively when continuity matters. You should not need to repeat "use the memory MCP" every few turns.

Recommended pattern:

  • start with mem_bootstrap_context when prior decisions, pending work, blockers, constraints, or project state may matter; pass thread, chat-title, cwd, or repo hints when the host exposes them

  • call mem_context_pack directly only when the scope is already explicit, preferably with session_id for broad workspaces

  • pass known_pack_hash on repeated checks so unchanged packs return not_modified instead of resending context

  • use mem_search only when the compact pack is not enough

  • before claiming done, call mem_open_work and mem_completion_check for implementation, validation, publishing, migration, or documentation tasks

This is where the practical token economy comes from: compact continuity first, targeted expansion only when needed, and no repeated pack when nothing changed.

Example files live under examples/codex, with Ollama workflow notes under examples/ollama.

Run locally

Start the inspection API:

codex-agent-mem-api --db-path "$HOME/.codex_agent_mem/codex_agent_mem.db"
codex-agent-mem-api --db-path C:\Users\YOU\.codex_agent_mem\codex_agent_mem.db

Then open:

http://127.0.0.1:37770/ui

Start the MCP server:

codex-agent-mem-mcp --db-path "$HOME/.codex_agent_mem/codex_agent_mem.db"
codex-agent-mem-mcp --db-path C:\Users\YOU\.codex_agent_mem\codex_agent_mem.db

The current MCP transport is stdio. That means one process per host connection is normal; it is not a singleton daemon. The defensive idle timeout is there to let unused or orphaned instances exit cleanly.

Recommended defaults: use a longer timeout for Codex Desktop sessions, for example 1800 seconds, and a shorter timeout for CLI/ephemeral runs, for example 300 seconds.

Manually rebuild the generated continuity block for one directory:

codex-agent-mem-refresh-context --db-path "$HOME/.codex_agent_mem/codex_agent_mem.db" --project-key YOUR_PROJECT --cwd /path/to/project
codex-agent-mem-refresh-context --db-path C:\Users\YOU\.codex_agent_mem\codex_agent_mem.db --project-key YOUR_PROJECT --cwd C:\Path\To\Project

Quick verification

Run the smoke test:

codex-agent-mem-smoke --db-path "$HOME/.codex_agent_mem/codex_agent_mem.db"
codex-agent-mem-smoke --db-path C:\Users\YOU\.codex_agent_mem\codex_agent_mem.db

That inserts a sample turn, extracts observations, and verifies recent retrieval and project brief generation.

Token efficiency: what saves tokens now

  • The package compiles a smaller working-memory pack from recent turns, durable decisions, and derived operational state.

  • When --sync-project-doc is enabled and that pack is actually smaller than the source context, it is synced into AGENTS.md for the working directory.

  • MCP retrieval and optional AGENTS.md sync let future sessions start with compressed continuity instead of forcing you to restate old scope.

  • mem_context_pack exposes the same compact pack over MCP for on-demand retrieval.

  • The pack now carries forward pending work and blockers, so a future run can recover “what remains” instead of only “what was decided.”

This is token efficiency for agent workflows, not magic compression. codex-agent-mem improves the token economy by reducing repeated project context, reusing unchanged packs through known_pack_hash, and letting agents expand only the memory they need.

Approximate token savings

In plain language: this usually aims to cut down the amount of repeated context you have to replay, not to eliminate it completely.

What we can say honestly from local validation:

  • the public v1.0 fixtures reduced repeated context from ~22,950 source tokens to ~1,068 memory-pack tokens, about 95.35% in that controlled scenario

  • individual repeated-context scenarios in the fixture suite landed between 86% and 97% reduction

  • live runtime checks confirmed compact MCP retrieval, stable process lifecycle, object-root/no-reinjection behavior where visible, and writable snapshot provenance for local Codex/Gemini/Claude daemon bridges

Examples from the public v1.0 verification sandbox:

  • 1,841 -> 253 approximate tokens

  • 4,855 -> 270 approximate tokens

  • 9,731 -> 269 approximate tokens

  • 6,523 -> 276 approximate tokens

Important: this is not a fixed guarantee per prompt. If the compact pack is not actually smaller than the source context, codex-agent-mem skips reinjection instead of pretending it saved tokens.

What this helps catch now

  • losing the original objective after a few runs

  • silently narrowing scope when the user asked for more

  • declaring completion while pending work still exists

  • forgetting blockers and re-entering the next run as if the task were finished

Repository layout

Documentation map

Release surface

This repository includes:

  • clean root package layout

  • installable pyproject.toml

  • command entry points

  • tests

  • CI workflow

  • license

  • changelog

Author

Created and maintained by Marcelo Caporale.

Available Tools

28 tools
mem_bootstrap_contextC

Return defensive startup context: resolve scope from optional thread/path hints and avoid project-wide packs for ambiguous containers.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYes
hintNo
thread_hintNo
chat_titleNo
active_chat_labelNo
current_cwdNo
repo_pathNo
mentioned_filesNo
session_idNo
budgetNo

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions 'defensive' behavior and avoiding project-wide packs for ambiguous containers, which gives some insight. However, it does not disclose side effects, authorization requirements, or what happens with invalid inputs. Since no annotations are provided, more detail would be beneficial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 18 words, concise and front-loaded with the main action. However, it uses jargon that might require background knowledge. Overall, it earns its space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (10 parameters, no output schema, no annotations), the description is too brief. It does not explain the return format, how hints work, or the role of budget/session_id, leaving significant gaps for correct tool use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Most of the 10 parameters are not explained in the description. Only 'thread/path hints' are vaguely referenced, but without mapping to specific parameters. With 0% schema description coverage, the description fails to provide meaningful parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns 'defensive startup context' and resolves scope from hints, which distinguishes it from siblings like mem_scope_resolve or mem_context_pack. However, the term 'defensive startup context' is somewhat vague and may not be immediately intuitive to all agents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for startup when scope is ambiguous, but it provides no explicit guidance on when to use this tool versus alternatives like mem_scope_resolve or mem_context_pack. No when-to-use or when-not-to-use information is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_completion_checkC

Return a deterministic closure check for one project, optionally scoped to one persisted session.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYes
session_idNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior. It mentions 'deterministic' implying no side effects, but does not specify whether it is read-only, requires permissions, or any other traits. The behavioral disclosure is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the key action. No unnecessary words, and it effectively communicates the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, no annotations, and 0% parameter coverage, the description is insufficient. It omits what a 'closure check' means, the format of the return value, and any prerequisites or usage constraints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds minimal meaning: 'one project' for project_key and 'optionally scoped to one persisted session' for session_id. This adds some context but does not fully compensate for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a 'deterministic closure check for one project' with optional session scoping. It uses a specific verb and resource, distinguishing it from sibling tools like 'mem_note_create' or 'mem_search', though the term 'closure check' may require domain knowledge.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, when not to use it, or prerequisites. The description only states the action without context for appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_context_packC

Return a compact continuity pack optimized to carry project or persisted-session context forward with fewer tokens.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYes
budgetNo
max_charsNo
known_pack_hashNo
session_idNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It mentions optimization for fewer tokens but does not disclose side effects, permissions, idempotency, or whether the pack is read-only. The behavioral traits are minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded with the core purpose. It is concise without fluff, though could expand slightly on key behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, no output schema, and no annotations, the description is too brief. It fails to explain return format, error conditions, or parameter interactions, which are critical for correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description adds no meaning to any of the 5 parameters (project_key, budget, max_chars, known_pack_hash, session_id). Agent cannot infer how to set them beyond their names and basic types/enums.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns a compact continuity pack to carry context forward with fewer tokens, which is a specific verb and resource. It distinguishes from siblings like mem_get by focusing on a 'pack' rather than a single context item, but could be more explicit about the exact format.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like mem_session_list or mem_get. The description lacks any context about prerequisites or suitability for different tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_getB

Get one stored observation by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
observation_idYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose whether the tool is read-only, requires permissions, or any side effects. It only states the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, straightforward sentence that effectively communicates the core action. It is concise and front-loaded, though could benefit from more structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description fails to explain what is returned. It also does not differentiate from sibling tools sufficiently, making it incomplete for an agent assessing completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The parameter 'observation_id' is described only as 'by id', adding no meaning beyond the schema. With 0% schema description coverage, the description should provide more context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'one stored observation', differentiating it from other tools that retrieve multiple observations or perform other actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for retrieving a single observation by ID but lacks explicit guidance on when to use it versus alternatives like mem_search or mem_recent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_healthB

Return a deterministic health report for one project: duplicates, contradictions, stale items, DoD coverage, and suggestions.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states the tool is 'deterministic', implying no side effects, but lacks details on error handling, authentication needs, or behavior with invalid project keys. Given no annotations, more disclosure would be beneficial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the tool's purpose and output without redundant words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lists report contents (duplicates, contradictions, etc.) but omits output structure, format, and additional context about project keys. For a tool with no output schema and 0% param coverage, more detail is needed for full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain the 'project_key' parameter beyond its role. No format, constraints, or usage context is provided, leaving the agent to infer meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Return' and the resource 'health report', listing specific contents (duplicates, contradictions, etc.). It distinguishes from sibling tools like mem_health_runtime by specifying 'deterministic' and 'for one project'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is provided. The description implies analysis use but does not differentiate from similar tools like mem_health_runtime or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_health_runtimeA

Return runtime health for this stdio MCP process: pid, uptime, idle timeout, request counts, and exit diagnostics.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description carries the full burden. It adequately indicates that the tool is a read-only health check (returns data without side effects), but it does not explicitly state that it is non-destructive or require any authentication. The behavioral traits are implied but not fully disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence of 15 words that efficiently conveys purpose and outputs. Every word earns its place, with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, no output schema, and no annotations, the description is reasonably complete. It lists key return fields, though it could mention that the output format is likely JSON or provide an example. Still, it is sufficient for an agent to understand the tool's function.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the baseline is 4. The description adds value by listing the specific outputs (pid, uptime, etc.), which enriches understanding beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool returns runtime health information including pid, uptime, idle timeout, request counts, and exit diagnostics. It uses a specific verb ('Return') and resource ('runtime health'), and it distinguishes from the sibling 'mem_health' tool by specifying the focus on stdio MCP process runtime details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'mem_health'. The description does not mention any prerequisites or context for invocation, leaving the agent without decision support.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_inheritance_addC

Add one inheritance link to a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYes
source_project_keyYes
modeYes
selectorNo
enabledNo

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must disclose behavioral traits. It only says 'Add one inheritance link', which is minimal. It does not mention idempotency, side effects, permissions, or limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise, but it is too short to be informative. It sacrifices clarity and completeness for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters (3 required, with nested objects) and no output schema, the description is completely inadequate. It fails to explain essential details about the tool's behavior and usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides no information about the five parameters (project_key, source_project_key, mode, selector, enabled). This leaves the agent without guidance on how to use the parameters correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Add' and the resource 'inheritance link to a project', which is specific and distinguishes it from sibling tools like list and remove. However, it does not elaborate on what an inheritance link is, leaving some ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance is provided. There is no mention of when to use this tool, when not to, or alternatives. The description simply states the action without context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_inheritance_listB

List inheritance links for one project.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey behavioral traits. It only states the action without disclosing side effects, read-only nature, or error conditions, offering minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no unnecessary words. It is front-loaded with the essential action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema or additional context, the description fails to specify return format, pagination, or what constitutes inheritance links, leaving the agent underinformed for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds no meaning beyond the schema. It implies project_key identifies a project but omits format, constraints, or examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action 'List' and resource 'inheritance links', scoped to 'one project', which effectively distinguishes it from sibling tools like mem_inheritance_add and mem_inheritance_remove.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as mem_inheritance_add or other listing tools. The description lacks context about prerequisites or suitable scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_inheritance_removeB

Remove one inheritance link from a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYes
inheritance_idYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits, but it only states the basic operation. Missing details like idempotency, error handling, or side effects (e.g., if inheritance_id doesn't exist).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. However, it may be too terse, sacrificing necessary detail. Could be expanded slightly while maintaining conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool involves mutation and no output schema, the description lacks completeness: no mention of return values, confirmation, or error conditions. Does not adequately prepare the agent for safe invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description should compensate. It implies project_key identifies a project, but does not explain inheritance_id or its valid range (schema shows minimum 1). Some meaning added, but insufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Remove') and the resource ('one inheritance link from a project'). It effectively distinguishes from sibling tools like mem_inheritance_add (add) and mem_inheritance_list (list).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool, prerequisites, or alternatives. The agent has no context to decide appropriateness relative to other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_note_createB

Create one manual operational memory note that is indexed for mem_search and eligible for context packs.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYes
textYes
session_idNo
titleNo
tagsNo
importanceNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description provides some behavioral context (indexed, eligible for context packs), but lacks details on side effects, idempotency, permissions, or limits. It is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence conveying the core purpose and key behaviors without any filler. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has six parameters (two required), no output schema, and no annotations. The description only covers high-level purpose, leaving parameter meanings and return behavior completely unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides no explanation of any of the six parameters (project_key, text, session_id, title, tags, importance). With 0% schema coverage, the agent relies solely on the description, which is insufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create one manual operational memory note', specifying the verb and resource. It also adds key behaviors: 'indexed for mem_search' and 'eligible for context packs', which distinguishes it from sibling tools like mem_get (retrieve) or mem_bootstrap_context (setup).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies that this tool is appropriate when the goal is to create a note that will be searchable and included in context packs. However, it does not explicitly say when not to use it or compare with similar siblings like mem_open_work, so some guidance is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_open_workA

Return deterministic open work for one project, optionally scoped to one persisted session.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYes
session_idNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must convey behavior. It mentions the tool returns 'deterministic' open work and can be scoped to a session, which adds some behavioral context. However, it does not discuss read-only nature, error handling, or what the output contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence of 12 words, front-loading the core purpose and optional scoping. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and many sibling tools, the description provides a high-level purpose but omits return format, potential errors, and how the tool fits into the larger workflow. It is adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It clarifies that project_key identifies the project and session_id optionally scopes to a persisted session. This adds meaning beyond the parameter names and types, but lacks details on formats or valid values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description explicitly states the tool returns deterministic open work for a specific project, optionally filtered by a session. This clearly distinguishes it from sibling tools like mem_get (general retrieval) and mem_search (search).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs. alternatives. The purpose implies it's for retrieving open work items, but there is no mention of prerequisites, when not to use, or comparison with mem_get or mem_search.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_policy_addC

Add one memory policy to a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYes
policy_kindYes
ruleYes
enabledNo

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure, but it only says 'Add' without explaining side effects, permissions, idempotency, or what happens if a policy with the same kind already exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single 7-word sentence, which is extremely concise but at the cost of necessary information. It is under-specified for the complexity of the tool (4 params, nested object).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters, a nested object, no output schema, and no annotations, the description is severely incomplete. It does not explain the 'rule' object or any parameter behavior, making it insufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any of the 4 parameters (project_key, policy_kind, rule, enabled). It fails to add meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Add' and the resource 'one memory policy' within a project. It is specific and distinguishes from sibling tools like mem_policy_list or mem_policy_remove.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or conditions for adding a policy. No context on when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_policy_listC

List active and inactive memory policies for one project.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It states 'List' implying read-only, but fails to disclose pagination, ordering, or whether the list reflects current state exclusively. With zero annotation support, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 7 words—highly concise. However, conciseness is slightly undermined by missing critical details (e.g., return format) that could be added without significant verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 27 sibling tools, the description does not sufficiently equip an agent to select this tool. It omits output schema details, does not explain what a 'memory policy' is, and lacks context on how the results integrate with other tools like mem_policy_add or mem_policy_validate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter `project_key` has 0% schema description coverage. The description adds the phrase 'for one project,' which contextualizes the parameter as a project identifier, but does not specify its format, constraints, or examples. This adds little beyond the schema's type declaration.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists memory policies, specifying both active and inactive categories and targeting a single project. This provides a clear verb-resource pair and distinguishes it from other list tools like mem_inheritance_list, though it could further clarify what constitutes a 'policy'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as mem_policy_add or mem_policy_remove. No when-not-to-use or prerequisite information is provided, leaving the agent to infer context from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_policy_removeC

Remove one memory policy from a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYes
policy_idYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. 'Remove' implies destruction, but there is no detail on side effects, reversibility, permissions, or impact on related data. This is insufficient for a mutating operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no unnecessary words. However, it could be structured to include more detail while remaining concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and minimal parameter explanation, the description is incomplete. The agent cannot fully understand the tool's behavior, return value, or when to use it, especially with many sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain parameters. It does not mention project_key or policy_id at all, leaving the agent without context for what these parameters mean.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Remove') and the resource ('one memory policy from a project'). It distinguishes from sibling tools like mem_policy_add and mem_policy_list, which have different verbs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., mem_policy_add, mem_policy_list). No mention of prerequisites or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_policy_validateC

Validate one memory policy definition before adding it.

ParametersJSON Schema
NameRequiredDescriptionDefault
policy_kindYes
ruleYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It only states 'Validate' without disclosing side effects, error handling, idempotency, or whether changes are made. For a validation tool, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is concise and to the point. However, it could be more structured (e.g., using bullet points or sections) without adding verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, no annotations, and low schema coverage, the description fails to provide enough context. Agents need to know validation criteria, expected errors, and prerequisites, which are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any parameters (policy_kind, rule). Agents have no guidance on valid values or the structure of the rule object, making invocation error-prone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool validates a memory policy definition before adding it, using a specific verb and resource. It distinguishes from siblings like mem_policy_add (adds) and mem_policy_list (lists). However, it lacks detail on what 'validate' entails (e.g., syntax, semantics).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'before adding it' implies sequential use with mem_policy_add, providing some context. But no explicit when-to-use or when-not-to-use, nor alternatives mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_project_briefC

Return a compact brief for one project, optionally scoped to one persisted session.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYes
session_idNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It only states 'return a compact brief' without disclosing side effects, authentication needs, or what 'compact' means. The read-only nature is implied but not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with zero filler. Every word earns its place, clearly stating action and optional parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is too sparse for a retrieval tool with no output schema. 'Compact brief' is vague; the return format and what constitutes a project are not explained. More context is needed given the many sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description adds meaning by explaining session_id's role ('optionally scoped to one persisted session'). However, project_key remains completely undescribed, relying on the schema's type string only.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a compact brief for one project, with optional session scoping. However, it does not differentiate from sibling tools like mem_get or mem_context_pack.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool over alternatives. The description implies retrieval of project briefs but provides no exclusions or context for decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_provenanceC

Return audit provenance for one stored observation, including the original turn context.

ParametersJSON Schema
NameRequiredDescriptionDefault
observation_idYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, and the description does not disclose behavioral traits such as read-only nature, authentication needs, rate limits, or side effects. It only states what is returned, not the tool's operational characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that immediately communicates the action and resource. While concise, it sacrifices explanatory depth, but for a tool with one parameter, it is appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, no annotations, and a single parameter, the description should explain the return value and any constraints. Terms like 'audit provenance' and 'original turn context' are undefined, leaving an agent uncertain about the tool's output and behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description does little to explain the observation_id parameter beyond implying it identifies an observation. It fails to clarify the format, source, or how to obtain valid IDs, which could lead to invocation errors.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Return audit provenance') and the specific resource ('for one stored observation'), including additional detail ('original turn context'). It distinguishes from sibling tools like mem_get (which likely returns the observation itself) and mem_search (which finds observations).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, typical use cases, or conditions that would make provenance retrieval appropriate compared to other mem_ tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_recentB

Return recent observations, optionally scoped to one project or persisted session.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyNo
session_idNo
limitNo

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility for disclosing behavioral traits. It doesn't state that the operation is read-only, safe, or idempotent, nor does it mention any ordering or pagination details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words, front-loading the main action. However, it could be slightly more informative without sacrificing brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is incomplete. It does not clarify what 'observations' are, the meaning of 'recent' (time window), or the return format. For a tool with 3 optional parameters, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds meaning by mentioning 'scoped to one project or persisted session', but does not explicitly describe the `limit` parameter or the semantics of `session_id` and `project_key`. The parameter names are somewhat self-explanatory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Return recent observations' with optional scoping by project or session. This verb+resource+scope pattern distinguishes it from siblings like mem_get (specific observation) and mem_search (query-based).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving recent observations with optional filters, but lacks explicit guidance on when not to use it or alternatives. For example, it doesn't mention that mem_get is better for a single known observation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_recent_changesA

Return changes since the last stable context sync: new pending items, resolved work, blocker changes, DoD gap changes, and new decisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYes
session_idNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description provides substantial behavioral context: it returns a changelog of specific categories. It implies a read-only operation without side effects. However, it does not disclose how the 'last stable context sync' is determined or whether results are scoped to the project/session.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the key action and enumerates return categories. No unnecessary words or repetitions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and 28 sibling tools, the description could clarify how this tool fits into the workflow (e.g., when to use after a sync) and explain return format. It lists categories but not structure. Adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides no information about the two parameters (project_key, session_id) beyond what the schema offers. With 0% schema description coverage, the description fails to add meaning—e.g., what session_id does or why project_key is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: returning changes since the last stable context sync, listing specific categories (new pending items, resolved work, blocker changes, DoD gap changes, new decisions). This is a specific verb-resource combination that distinguishes it from siblings like mem_get or mem_recent, which do not mention sync-related changelogs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage after a stable context sync, but does not explicitly state when to use this tool versus alternatives like mem_recent (recent changes) or mem_get (generic retrieval). No exclusions or prerequisites are given, leaving ambiguity for the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_repair_applyC

Apply one supported repair proposal as a derived repair event.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYes
repair_kindYes
health_report_idNo

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose whether this tool modifies state, requires specific permissions, or what side effects occur. The term 'apply' implies modification, but details are missing. With zero annotation coverage, the description should compensate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise. However, it could be restructured to front-load key information. It is not verbose but lacks clarity in the phrase 'derived repair event.'

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema and no parameter descriptions, the description is too sparse. It does not explain the return value, error conditions, or what 'derived repair event' means. An agent would lack sufficient context to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 3 parameters with no descriptions. The tool description does not explain what project_key, repair_kind, or health_report_id mean. Schema description coverage is 0%, and the description adds no value for parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses 'Apply' as a verb and 'repair proposal' as the resource, clearly indicating the action of applying a repair. However, the phrase 'as a derived repair event' is jargon and may confuse agents unfamiliar with the domain. It distinguishes from sibling mem_repair_propose by being the application step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like mem_repair_propose or other repair tools. It does not specify prerequisites (e.g., must have a repair proposal first), context, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_repair_proposeA

Return governed repair proposals based on the latest health report for a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It indicates a read operation ('Return') but does not explicitly state whether the tool is read-only, idempotent, or has side effects. This is a gap, but the purpose implies non-destructive behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the action and resource. No wasted words; it efficiently conveys the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single parameter and no output schema, the description is minimally complete. It explains the tool's action but does not describe the return format, any prerequisites (e.g., existing health report), or behavioral constraints. It is adequate but could be more informative.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage for the single parameter 'project_key'. The tool description does not explain what 'project_key' is or its format. This leaves the parameter underdocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool returns governed repair proposals based on the latest health report for a project. It uses a specific verb ('Return') and resource ('repair proposals'), and distinguishes from sibling tools like mem_repair_apply (applies repairs) and mem_health (returns health report).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage in a workflow: first check health report (mem_health), then propose repairs (this tool), then apply (mem_repair_apply). However, it does not explicitly state when to use or when not to use this tool, nor does it mention alternatives or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_scope_guardC

Return compact scope guardrails for one project, optionally scoped to one persisted session.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYes
session_idNo

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It implies a read operation ('return') but does not disclose side effects, authentication needs, error behavior, or what happens if the project does not exist. Minimal behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence of 13 words, front-loaded action. No redundancy. However, slight under-specification given the lack of parameter details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with 2 params, no output schema, no annotations. Description fails to define 'compact scope guardrails' or what the return value looks like. Lacks prerequisites or usage context, leaving the agent with significant ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It mentions 'optionally scoped to one persisted session' for session_id but does not explain project_key at all. No format, rules, or constraints beyond what the schema provides (type, required).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('return'), the resource ('compact scope guardrails'), and the scope ('for one project, optionally scoped to one persisted session'). It distinguishes from siblings like mem_scope_resolve by using 'guardrails' implying a different output, but does not explicitly differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., mem_scope_resolve). No mention of prerequisites, context, or scenarios where this is preferred. The description only states what it does, not when to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_scope_resolveD

Resolve a broad project plus optional thread/path hint into persisted session/sub-scope candidates before requesting active context.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYes
hintNo
current_cwdNo
repo_pathNo
mentioned_filesNo
limitNo

TDQS

D1.9/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. The description does not disclose any behavioral traits (e.g., read-only, destructive, auth requirements, side effects). Full burden falls on description, which is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence is concise and front-loaded, but lacks critical detail. Efficiency is undermined by vagueness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 6 parameters, no output schema, and no annotations, the description is far too brief. It omits return values, parameter semantics, and any behavioral context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 0% description coverage for 6 parameters. The description only vaguely references 'project' and 'hint', leaving current_cwd, repo_path, mentioned_files, and limit unexplained. Does not add meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it resolves a project and optional hint into candidates, but uses jargon ('persisted session/sub-scope candidates') that lacks clarity. It does not distinguish from sibling tools like mem_scope_guard or mem_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. Only a vague mention of 'before requesting active context' but no explicit context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_session_listB

List recent persisted sessions/chats for one project so agents can select a scoped continuity lane.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYes
limitNo
queryNo
sub_scope_hintNo

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must fully disclose behaviors. It only says 'list recent' with no mention of ordering, default limit, pagination, non-destructiveness, or error states. This is insufficient for an agent to anticipate tool behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loading the action and resource. It is concise, though it omits essential details about parameters and behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters, no output schema, and no annotations, the description is incomplete. It does not explain return format, parameter meanings, or behavioral traits like 'recent' definition, making it insufficient for reliable tool usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description provides zero explanation of the four parameters (project_key, limit, query, sub_scope_hint). An agent has no guidance on how to use them correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('persisted sessions/chats for one project'), and provides a clear purpose: 'so agents can select a scoped continuity lane.' This distinguishes it from siblings like mem_search or mem_get by narrowing to session/chat listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when an agent needs to pick a session for continuity, but does not specify when not to use, prerequisites, or contrast with alternatives such as mem_search or mem_context_pack.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_snapshot_createC

Create a versioned memory snapshot for one project.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYes
labelYes
session_idNo

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description does not disclose any behavioral traits beyond the basic creation action. With no annotations provided, it fails to inform about permissions, side effects, or what 'versioned' implies operationally.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence is concise, but it omits critical information. Acceptable for a minimally viable description, but not optimally balanced.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given three parameters, no output schema, and no annotations, the description is too brief. It lacks details on return values, error conditions, and operational semantics, leaving significant gaps for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds no meaning for any of the three parameters. It does not clarify the role of project_key, label, or session_id beyond their schema declarations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create'), the resource ('versioned memory snapshot'), and the scope ('for one project'). It effectively distinguishes from sibling tools like mem_snapshot_list and mem_snapshot_restore.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., mem_snapshot_list or mem_snapshot_restore). Missing context on prerequisites or postconditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_snapshot_listC

List stored memory snapshots for one project.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYes
limitNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. The description lacks details on ordering, filtering, or whether it returns metadata or content. For a list tool, more behavioral info is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise but lacks necessary detail. It is front-loaded but too brief to be fully effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and unexplained parameters, the description is incomplete. It fails to describe the return format or any operational details like pagination.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, and the description does not explain the parameters. It mentions 'for one project' but does not describe project_key or limit, leaving the agent without needed context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and resource 'memory snapshots', and specifies scope 'for one project'. It distinguishes from sibling tools like mem_snapshot_create and mem_snapshot_restore.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like mem_snapshot_create or mem_search. The description only states what it does, without context for when to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mem_snapshot_restoreB

Restore one stored snapshot into the generated AGENTS.md continuity block when the project root path is known.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYes
snapshot_idYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must disclose behavioral traits. It fails to mention side effects (e.g., overwriting existing content), required permissions, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded, no verbosity. However, the lack of critical information makes it feel under-specified, not just concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a restore operation with 2 parameters and no output schema, the description fails to explain return values, error handling, or the relationship between project_key and snapshot_id. Incomplete for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage and the description does not explain the two parameters (project_key, snapshot_id). The agent receives no meaning beyond parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action (restore), resource (snapshot), and target (AGENTS.md continuity block). Distinguishes from siblings like mem_snapshot_create and mem_snapshot_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a precondition ('when the project root path is known') but lacks explicit when-not or alternative tools. However, the context is helpful and the sibling set suggests no direct alternative for restore.

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.

  1. 28 tool updatesv1.0.2
    • First observedmem_bootstrap_context
    • First observedmem_completion_check
    • First observedmem_context_pack
    • First observedmem_get
    • First observedmem_health
    • First observedmem_health_runtime
    • First observedmem_inheritance_add
    • First observedmem_inheritance_list
    • First observedmem_inheritance_remove
    • First observedmem_note_create
    • First observedmem_open_work
    • First observedmem_policy_add
    • First observedmem_policy_list
    • First observedmem_policy_remove
    • First observedmem_policy_validate
    • First observedmem_project_brief
    • First observedmem_provenance
    • First observedmem_recent
    • First observedmem_recent_changes
    • First observedmem_repair_apply
    • First observedmem_repair_propose
    • First observedmem_scope_guard
    • First observedmem_scope_resolve
    • First observedmem_search
    • First observedmem_session_list
    • First observedmem_snapshot_create
    • First observedmem_snapshot_list
    • First observedmem_snapshot_restore

TDQS

B3/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, but there is some potential overlap between retrieval tools like mem_get, mem_search, mem_recent, and mem_recent_changes. Descriptions help differentiate them, but the distinctions may still cause confusion.

Naming Consistency5/5

All tools follow a consistent mem_verb_noun or mem_noun_verb pattern in snake_case, making them predictable and easy to parse. No mixed conventions are present.

Tool Count3/5

28 tools is on the high side, covering a broad set of memory-related operations. While each tool has a defined purpose, the count feels slightly heavy for a single server.

Completeness3/5

The tool set covers many memory management aspects, but lacks explicit update and delete operations for stored observations (only create via mem_note_create). This creates a notable gap in the typical CRUD lifecycle.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides a persistent, local-first memory for coding agents over MCP, enabling automatic recall and recording of past work, failures, and decisions to reduce repetition and token usage.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Local-first deterministic project memory for AI coding agents, with context packs, decisions, gates, risks, scoped claims and explicit checkpoints in project-owned files.
    -
  • A
    license
    Not graded
    quality
    F
    maintenance
    Local-first, auditable memory for AI agents. Provides durable context for MCP hosts with SQLite storage, CLI, and MCP tools for memory management.
    2
    Apache 2.0

Latest Blog Posts

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/MarceloCaporale/codex-agent-mem'

If you have feedback or need assistance with the MCP directory API, please join our Discord server