cogmemai-mcp
CogmemAi-MCP provides a persistent, intelligent memory system for AI coding assistants, enabling them to remember project context, decisions, and preferences across sessions and tools.
Core Memory Operations
Save memories with importance scoring, tags, categories, scope (global/project/team), and optional TTL expiration
Semantic search/recall using natural language, with filters and optional AI-synthesized summaries
Auto-extract memorable facts from conversations using AI
List, update, delete, bulk-update, and bulk-delete memories
Session & Project Context
Load top-ranked project/global context at session start, filtered by task or context type (debugging, planning, reviewing)
Save session summaries and track file changes since the last session via git snapshots
Preflight tool to check prior context before making suggestions
Knowledge & Intelligence
Link related memories with typed relationships to build a knowledge graph
View memory edit history and explore relationship graphs
AI-consolidate clusters of related memories into richer summaries (with dry-run preview)
Promote project-scoped memories to global scope
Identify stale memories for cleanup; signal feedback to improve future recall ranking
Analytics/health dashboard with usage stats, type breakdowns, and cleanup recommendations
Tasks & Workflow
Create and manage persistent tasks with status (pending/in_progress/done/blocked) and priority
Set session-start reminders with auto-expiry
Save correction patterns (wrong → right approach) to prevent repeated mistakes
Import/Export & Documents
Export/import memories as JSON with automatic deduplication
Ingest documents (READMEs, API docs, architecture docs) to auto-extract memories
Infrastructure
Cloud, local, or hybrid storage modes with quantum-safe encryption
Works with Claude Code, Cursor, Windsurf, Cline, Continue, and any MCP-compatible tool, including a zero-install remote option
Provides persistent project context and memory support for the Windsurf editor, enabling the assistant to maintain long-term knowledge of patterns and decisions within the Codeium-based development environment.
CogmemAi — Cognitive Memory for Any Ai System
Autonomous robots. Self-driving vehicles. Defense systems. Coding assistants. Any Ai system that needs to remember.
CogmemAi is a portable memory layer that gives any Ai system persistent recall across sessions, devices, users, and teams — and captures knowledge autonomously, even when your Ai forgets to save. 95.10% accuracy on LongMemEval — top published score on the field's hardest long-term memory benchmark. 91% on LoCoMo, above human performance (87.9%). Quantum-safe encryption. Works with Claude Code, Cursor, Windsurf, Cline, Continue, and any MCP-compatible tool. Switch editors, switch models, switch machines — your knowledge stays. Not just one score on a test — the most complete Ai memory system available.
What's New in v3
Loud Failures on Firewall Blocks (v3.20.0)
When a request to the CogmemAi backend is intercepted by an upstream firewall, CDN, or proxy, the response is HTML, not JSON. Earlier versions tried to JSON-parse it and threw a confusing Unexpected token '<' error, then silently retried the same blocked payload. v3.20.0 detects HTML responses, names the blocking layer when it can (NinjaFirewall, Cloudflare, ModSecurity), and surfaces a clear actionable error. Retryable 4xx responses with HTML bodies no longer trigger retry loops. The class of incident that can silently drop memory writes is now loud.
Autonomous Memory — Your Ai Doesn't Decide Whether to Save Anymore (v3.15)
Every memory system has the same hidden failure mode: the Ai has to choose to save, and under pressure it doesn't. You can bake instructions into system prompts. You can nudge. But when your Ai is head-down on a coding task, it forgets to save — and the decisions you made two hours ago vanish when the context compacts.
CogmemAi v3.15 moves the decision out of the Ai's hands entirely. Your coding sessions are captured at the infrastructure level — decisions, file changes, bug fixes, and deployments land in memory without a single prompt. At session end, an intelligence pass distills them into structured memories: the right types, the right importance scores, the right scopes. Your Ai never sees this happen.
The result: a day of heavy coding produces 15–20 quality memories instead of 3. Future sessions pick up seamlessly. Your Ai stops re-litigating architectural choices you already made. Stop reminding your Ai to remember. It just does.
Proactive Memory Recall (v3.12)
CogmemAi now thinks before it speaks. Before your Ai assistant suggests any action, approach, or recommendation, CogmemAi checks its memory first — automatically, on every topic.
preflighttool — A fast, lightweight recall designed to be called before every suggestion. Your assistant checks what it already knows about a topic before opening its mouth. "Let's try approach X" → first checks if X was already tried, rejected, or completed. Sub-200ms, near-zero cost.Prior context surfacing — Every time a memory is saved, CogmemAi automatically searches for related prior memories across all topics — people, companies, technical approaches, features, everything — and surfaces them in the response. Your assistant never suggests something redundant.
Smart recall hooks — In Claude Code, CogmemAi reads every user message and automatically injects relevant memories before the assistant responds. No manual recall needed — context arrives before the assistant starts thinking.
Upgraded recall engine — Higher-dimensional semantic understanding, balanced reranking, keyword-expanded search, dual-path memory storage for more reliable retrieval, and adaptive search that expands automatically when initial results are low confidence.
The result: your Ai assistant stops suggesting things you've already tried, people you've already contacted, and approaches you've already rejected. Your brain is no longer the safety net for what your tools should already know.
Wisdom Engine — Auto-Extracted Principles (v3.10)
CogmemAi now automatically detects patterns across your memories and extracts factual principles. While skills tell your Ai HOW to behave ("always use Zustand"), principles tell it what's TRUE about your project ("this codebase never validates inputs at service boundaries"). Principles are extracted from clusters of 5+ related memories, scored by confidence, and injected into every session. Use extract_principles to trigger manually or let it happen automatically.
Remote MCP — Zero Install (v3.9)
CogmemAi now supports Streamable HTTP transport — connect from any MCP client without installing anything. No npm, no config files, no Node.js required. Just point your client to https://hifriendbot.com/mcp/ with your API key and start using persistent memory immediately. Same 35 tools, same Intelligence Engine, same benchmark-topping accuracy — zero setup friction.
Quantum-Safe Encryption (v3.7)
CogmemAi is the first quantum-safe Ai memory system. All memories are encrypted at rest with quantum-resistant encryption — both in cloud mode and local mode. Your data is protected against today's threats and tomorrow's quantum computers. Encryption is automatic, zero-config, and enabled by default. No setup required.
Choose Your Storage Mode (v3.6)
CogmemAi now runs three ways — pick the one that fits your workflow:
Cloud (default) | Local | Hybrid | |
Best for | Full intelligence, team collaboration, cross-device portability | Zero-config start, offline-only environments | Local speed + cloud brains, travel/unreliable networks |
Setup |
|
|
|
API key needed | Yes (free) | Yes (free) — like a license key, your data stays local | Yes (free) |
Search | Semantic (by meaning) | Full-text search (FTS5) | Semantic with local fallback |
Intelligence Engine | Full — auto-linking, contradiction detection, memory decay, auto-skills, query synthesis | FTS5 search + CRUD — data stays on your machine | Full — with offline resilience |
Team collaboration | Yes | No | Yes |
Cross-device sync | Automatic | No — data stays on your machine | Automatic with local cache |
Offline support | Requires internet | Full offline | Falls back to local when offline |
Encryption | Quantum-safe (server) | Quantum-safe (local) | Quantum-safe (both) |
Cloud mode is the recommended experience. It gives you the full Intelligence Engine — semantic search that finds memories by meaning, auto-linking knowledge graph, contradiction detection, self-improving recall, auto-skills, query synthesis, and team collaboration. Everything that makes CogmemAi more than just a database.
Local mode keeps your data on your machine. A free API key is required for registration (like a software license key), but all your data stays local. Full-text search (FTS5) provides quality recall. Works offline after initial setup. When you're ready for semantic search and the full Intelligence Engine, upgrading to cloud takes one command.
Hybrid mode is for developers who travel or work on unreliable networks. Saves to both local and cloud simultaneously. Reads from cloud when available, falls back to local when offline. Unsynced memories automatically push to cloud when connectivity returns.
Intelligence Engine + Auto-Skills (v3.5)
CogmemAi now gets smarter every time you use it. The Intelligence Engine is a self-improving memory system that learns what matters, connects related knowledge automatically, and synthesizes answers from your entire memory. Auto-Skills takes it further — CogmemAi doesn't just remember, it learns how to behave.
Auto-Skills (Closed-Loop Learning)
Behavioral skills — CogmemAi automatically synthesizes your corrections, preferences, and patterns into behavioral directives that tell your Ai assistant HOW to work, not just what to know
Closed learning loop — correct your assistant once, and CogmemAi detects the pattern. After enough evidence accumulates, it generates a skill that prevents the mistake from ever happening again
Confidence tracking — each skill has a confidence score that rises when it works and drops when it doesn't. Low-confidence skills are automatically retired
Self-evaluation — skills periodically review themselves against new evidence and adapt, strengthen, or retire as your practices evolve
Intelligence Engine — 95.10% on LongMemEval, 91% on LoCoMo
CogmemAi scores 95.10% accuracy on LongMemEval — the top published score on the field's hardest long-term memory benchmark — and 91% accuracy on LoCoMo with a 100% retrieval hit rate, above human performance (87.9%). Two benchmarks, two #1-tier scores. CogmemAi finds the right memories when you need them.
Precision reranking — every recall runs a second-pass reranker that re-scores candidates for precision, balanced with the initial ranking signal to surface the most relevant memory first
Self-improving recall — memories that consistently help you rank higher over time; memories you never use fade naturally. Your recall quality improves automatically with every session
Auto-linking knowledge graph — related memories are automatically connected when you save them. Your knowledge builds into a web of relationships, not a flat list
Contradiction detection — when recalled memories conflict with each other, CogmemAi flags the contradiction so you catch stale or outdated information before it causes problems
Context-aware ranking — tell CogmemAi what you're doing (debugging, planning, reviewing) and it boosts the right types of memories. Debugging? Bug reports and patterns surface first. Planning? Architecture decisions lead
Query synthesis — ask a question and get one coherent answer synthesized from all your relevant memories, not just a list of matches. Like asking a teammate who's read everything
Cross-project intelligence — patterns that appear across 3+ projects are automatically promoted to global scope. Your best practices follow you everywhere without manual effort
Proactive insights — at session start, CogmemAi tells you what you should know before you ask. Stale critical memories, duplicate subjects that need merging, patterns ready for promotion
Also in v3
Memory health score — 0-100 score with actionable factors
Session replay — pick up exactly where you left off with automatic session summaries
Self-tuning memory — importance adjusts based on real usage; stale memories auto-archive
Auto-ingest README — learn from your README on new projects instantly
Smart recall — relevant memories surface automatically as you switch topics
Auto-learning — CogmemAi learns from your sessions automatically
Task tracking — persistent tasks with status and priority
Correction learning — teach your assistant to avoid repeated mistakes
Session reminders — nudges that surface at the start of your next session
Mandatory rules — define absolute requirements ("NEVER do X", "ALWAYS do Y") that surface in every session, bypassing all scoring and decay
Autonomous memory — captures work even when your Ai skips saves
35+ tools — the most complete memory toolkit for any Ai system
Related MCP server: Cachly — AI Cognitive Brain
Quick Start
Option 1: Remote (Zero Install)
Connect directly — no npm, no setup, no config files. Just add the remote endpoint to your MCP client with your API key:
Endpoint: https://hifriendbot.com/mcp/
Auth: Bearer token (your cm_ API key)
Get your free API key at hifriendbot.com/developer.
Works with any MCP client that supports Streamable HTTP transport (Claude Desktop, Cursor, and more).
Option 2: Local Install
npx cogmemai-mcp setupThe setup wizard walks you through three choices: Cloud (recommended — full Ai intelligence), Local (data stays on your machine), or Hybrid (both). Pick your mode, enter your API key if needed, and you're ready in under 60 seconds.
Don't have an API key yet? Get one free at hifriendbot.com/developer. Or choose Local mode to start immediately with no account.
The Problem
Every time you start a new session, you lose context. You re-explain your tech stack, your architecture decisions, your coding preferences. Built-in memory in tools like Claude Code is a flat file with no search, no structure, and no intelligence.
CogmemAi gives your Ai assistant a real memory system:
Semantic search — finds relevant memories by meaning, not keywords
Ai-powered extraction — automatically identifies facts worth remembering from your conversations
Smart deduplication — detects duplicate and conflicting memories automatically
Privacy controls — auto-detects API keys, tokens, and secrets before storing
Document ingestion — feed in READMEs and docs to instantly build project context
Project scoping — memories tied to specific repos, plus global preferences that follow you everywhere
Smart context — intelligently ranked for maximum relevance to your current work
Autonomous memory capture — saves knowledge even when your Ai forgets to call save. Decisions, file changes, and fixes land in memory without prompting
Compaction recovery — survives Claude Code context compaction automatically
Token-efficient — compact context loading that won't bloat your conversation
Zero setup — no databases, no Docker, no Python, no vector stores
Why Cloud Is the Recommended Mode
CogmemAi offers three storage modes, but cloud is where the magic happens. The Intelligence Engine — semantic search, auto-linking knowledge graph, contradiction detection, self-improving recall, auto-skills, and query synthesis — runs server-side. In cloud mode, your MCP server is a thin HTTP client with zero local databases, zero RAM issues, zero maintenance. All memories are encrypted at rest, so your data is just as secure as local storage — with cross-device portability and team features on top.
Your memory follows you everywhere. Memories created in Claude Code are instantly available in Cursor, Windsurf, Cline, and any MCP-compatible tool. Switch between Opus, Sonnet, Haiku, or any model your editor supports — your memories persist regardless. New laptop? New OS? Log in and your full project knowledge is waiting. A local SQLite file dies with your machine. Cloud memory is permanent.
The privacy argument is a myth. Some memory tools market "local-first" as a privacy advantage. But think about what happens next: every memory your Ai reads gets sent to the model provider (Anthropic, OpenAI, Google) as part of the prompt. Your data leaves your machine at inference time no matter where it's stored. A local SQLite file doesn't protect your memories — it just makes them harder to search, slower to access, and impossible to share. CogmemAi encrypts at rest, transmits over HTTPS, and adds intelligence that local storage simply can't match.
Teams and collaboration. Cloud memory is the only way to share project knowledge across teammates. When one developer saves an architecture decision or documents a bug fix, every team member's Ai assistant knows about it instantly. No syncing, no merge conflicts, no stale local databases. Whether it's two developers or twenty, everyone's assistant has the same up-to-date context. This is impossible with local-only memory solutions.
Compaction Recovery
When your Ai assistant compacts your context, conversation history gets compressed and context is lost. CogmemAi handles this automatically — your context is preserved before compaction and seamlessly restored afterward. No re-explaining, no manual prompting.
The npx cogmemai-mcp setup command configures everything automatically.
Skill
CogmemAi includes a Claude Skill that teaches Claude best practices for memory management — when to save, importance scoring, memory types, and session workflows.
Claude Code:
/skill install https://github.com/hifriendbot/cogmemai-mcp/tree/main/skill/cogmemai-memoryClaude.ai: Upload the skill/cogmemai-memory folder in Settings > Skills.
CLI Commands
npx cogmemai-mcp setup # Interactive setup wizard
npx cogmemai-mcp setup <key> # Setup with API key
npx cogmemai-mcp verify # Test connection and show usage
npx cogmemai-mcp --version # Show installed version
npx cogmemai-mcp help # Show all commandsManual Setup
If you prefer to configure manually instead of using npx cogmemai-mcp setup:
Option A — Per project (add .mcp.json to your project root):
{
"mcpServers": {
"cogmemai": {
"command": "cogmemai-mcp",
"env": {
"COGMEMAI_API_KEY": "cm_your_api_key_here"
}
}
}
}For local mode (free API key required for registration, data stays local):
{
"mcpServers": {
"cogmemai": {
"command": "cogmemai-mcp",
"env": {
"COGMEMAI_MODE": "local",
"COGMEMAI_API_KEY": "cm_your_api_key_here"
}
}
}
}Option B — Global (available in every project):
# Cloud (default)
claude mcp add cogmemai cogmemai-mcp -e COGMEMAI_API_KEY=cm_your_api_key_here --scope user
# Local (free API key required, data stays local)
claude mcp add cogmemai cogmemai-mcp -e COGMEMAI_API_KEY=cm_your_api_key_here -e COGMEMAI_MODE=local --scope user
# Hybrid (both)
claude mcp add cogmemai cogmemai-mcp -e COGMEMAI_API_KEY=cm_your_api_key_here -e COGMEMAI_MODE=hybrid --scope userWorks With
Claude Code (Recommended)
Automatic setup:
npx cogmemai-mcp setupCursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"cogmemai": {
"command": "npx",
"args": ["-y", "cogmemai-mcp"],
"env": { "COGMEMAI_API_KEY": "cm_your_api_key_here" }
}
}
}Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"cogmemai": {
"command": "npx",
"args": ["-y", "cogmemai-mcp"],
"env": { "COGMEMAI_API_KEY": "cm_your_api_key_here" }
}
}
}Cline (VS Code)
Open VS Code Settings > Cline > MCP Servers, add:
{
"cogmemai": {
"command": "npx",
"args": ["-y", "cogmemai-mcp"],
"env": { "COGMEMAI_API_KEY": "cm_your_api_key_here" }
}
}Continue
Add to ~/.continue/config.yaml:
mcpServers:
- name: cogmemai
command: npx
args: ["-y", "cogmemai-mcp"]
env:
COGMEMAI_API_KEY: cm_your_api_key_hereCogmemUI
CogmemUI is a free multi-model Ai workspace with built-in CogmemAi memory. Add your CogmemAi API key in Settings > API Keys and your memory is instantly available. CogmemUI also supports connecting any MCP-compatible tool server via Settings > MCP Servers — add endpoints, auto-discover tools, and use them in chat.
Get your free API key at hifriendbot.com/developer.
Tools
CogmemAi provides 35 tools that your Ai assistant uses automatically:
Tool | Description |
| Proactive recall. Fast recall to check prior context before making any suggestion |
| Store a fact explicitly (architecture decision, preference, etc.) |
| Search memories using natural language (semantic search) |
| Ai extracts facts from a conversation exchange automatically |
| Load top memories at session start (with smart ranking, health score, and session replay) |
| Browse memories with filters (paginated, with untyped filter) |
| Update content, importance, scope, type, category, subject, and tags |
| Permanently delete a memory |
| Delete up to 100 memories at once |
| Update up to 50 memories at once (content, type, category, tags, etc.) |
| Check your usage stats and tier info |
| Export all memories as JSON for backup or transfer |
| Bulk import memories from a JSON array |
| Feed in a document (README, API docs) to auto-extract memories |
| Save a summary of what was accomplished in this session |
| View all tags in use across your memories |
| Connect related memories with named relationships |
| Explore the knowledge graph around a memory |
| View edit history of a memory |
| Memory health dashboard with self-tuning insights (filterable by project) |
| Promote a project memory to global scope |
| Merge related memories into comprehensive summaries using Ai |
| Create a persistent task with status and priority tracking |
| Retrieve tasks for the current project — pick up where you left off |
| Change task status, priority, or description as you work |
| Store a "wrong approach → right approach" pattern to avoid repeated mistakes |
| Set a reminder that surfaces at the start of your next session |
| Find memories that may be outdated for review or cleanup |
| See what files changed since your last session |
| Signal whether a recalled memory was useful or irrelevant to improve future recall |
| Trigger skill generation from your corrections and preferences — or preview candidates with dry run |
| Save a mandatory rule that surfaces in every session — bypasses all scoring and decay |
| List all mandatory rules for the current project and/or globally |
| Delete a mandatory rule by ID |
| Trigger Wisdom Engine to detect factual patterns across memory clusters |
SDKs
Build your own integrations with the CogmemAi API:
Memory Types
Memories are categorized for better organization and retrieval:
identity — Who you are, your role, team
preference — Coding style, tool choices, conventions
architecture — System design, tech stack, file structure
decision — Why you chose X over Y
bug — Known issues, fixes, workarounds
dependency — Version constraints, package notes
pattern — Reusable patterns, conventions
context — General project context
task — Persistent tasks with status and priority tracking
correction — Wrong approach → right approach patterns
reminder — Next-session nudges that auto-expire
rule — Mandatory directives that surface in every session, bypassing all scoring and decay
Scoping
Project memories — Architecture, decisions, bugs specific to one repo. Auto-detected from your repository.
Global memories — Your coding preferences, identity, tool choices. Available in every project.
Pricing
Free | Pro | Team | Enterprise | |
Price | $0 | $14.99/mo | $39.99/mo | $99.99/mo |
Memories | 500 | 2,000 | 10,000 | 50,000 |
Extractions/mo | 500 | 2,000 | 5,000 | 20,000 |
Projects | 5 | 20 | 50 | 200 |
Start free. Upgrade when you need more. Or pay per operation with USDC on-chain — no credit card required.
Privacy & Security
🛡️ Quantum-safe encryption at rest. All memories are encrypted with quantum-resistant cryptography — in cloud mode and local mode. Protected against both current threats and future quantum computers.
No source code leaves your machine. We store extracted facts (short sentences), never raw code.
API keys cryptographically hashed (irreversible) server-side.
All traffic over HTTPS.
No model training on your data. Ever.
Delete everything instantly via dashboard or MCP tool.
No cross-user data sharing.
Read our full privacy policy.
Environment Variables
Variable | Required | Description |
| Cloud/Hybrid | Your API key (starts with |
| No | Storage mode: |
| No | Path to local database (default: |
| No | Custom API URL (default: hifriendbot.com) |
| No | Custom encryption passphrase for local mode. If not set, a key is auto-generated. |
| No | Set to |
Support
Issues: GitHub Issues
License
MIT — see LICENSE
Built by HiFriendbot — Better Friends, Better Memories, Better Ai. 🛡️ Quantum Safe.
Available Tools
35 toolsbulk_deleteA
Delete multiple memories at once by their IDs. Maximum 100 IDs per call. This is permanent.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Array of memory IDs to delete (max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states 'This is permanent', disclosing irreversibility. But it does not mention error handling, partial failures, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Purpose is stated first, then constraints. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple parameter and no output schema, the description covers essential aspects: action, resource, constraint, and permanence. It could mention partial failures but is sufficient for a delete tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter description. The tool description adds context about permanence but does not add significant new semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Delete', resource 'multiple memories', and method 'by their IDs'. It distinguishes from sibling 'delete_memory' by emphasizing bulk operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a specific constraint 'Maximum 100 IDs per call', guiding usage limits. However, it does not explicitly compare when to use this tool vs alternatives like 'delete_memory'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk_updateA
Update multiple memories at once. Each item needs a memory_id and fields to update. Maximum 50 items per call.
| Name | Required | Description | Default |
|---|---|---|---|
| updates | Yes | Array of update objects (max 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description should disclose more behavioral details like atomicity, error handling, or response format. Only mentions limit, missing key traits for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load essential info: purpose and constraint. No verbose filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers basic usage but lacks return value details and fails to address what happens on partial failure. For a batch mutation tool, more completeness expected given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has full descriptions for all properties (100% coverage), so description adds minimal value beyond stating structure. Baseline 3 holds.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Update multiple memories at once' with specific resource (memories) and action (update), distinguishing from sibling tools like update_memory and bulk_delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for batch updating memories but lacks explicit guidance on when to use versus single update_memory or other bulk operations. Mentions max 50 items as constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
consolidate_memoriesA
Consolidate related memories into fewer, richer memories. Finds clusters of memories sharing the same subject (3+ memories required), then uses AI to synthesize each cluster into 1-2 comprehensive facts. Originals are archived (not deleted) with full version history. Use dry_run=true to preview without making changes. Great for cleaning up memory clutter after many sessions.
| Name | Required | Description | Default |
|---|---|---|---|
| subject | No | Consolidate only memories with this exact subject (e.g., "auth_system"). Omit to auto-detect all qualifying clusters. | |
| memory_type | No | Only consolidate memories of this type | |
| category | No | Only consolidate memories in this category | |
| dry_run | No | When true, preview consolidation results without making changes. Recommended for first use. |
TDQS
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 discloses that memories are archived (not deleted), clustering needs 3+ memories, and AI synthesizes into 1-2 facts. It does not cover rate limits or auth needs, but the key behavioral traits are transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each serving a clear purpose: what it does, how it works, and when to use it. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains the outcome (synthesized facts, archive originals) and constraints (cluster size). It covers the core workflow, though details on AI behavior or error handling are missing. Still, it's reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description adds context for dry_run (preview without changes) but does not provide additional meaning beyond the schema for other parameters. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it consolidates related memories into fewer, richer ones by finding clusters sharing the same subject (requiring 3+ memories). It specifies the action (synthesize into 1-2 facts) and that originals are archived. This distinguishes it from siblings like delete_memory or update_memory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a use case: 'Great for cleaning up memory clutter after many sessions.' It also mentions dry_run for previewing. However, it does not explicitly state when not to use or list alternatives, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_memoryA
Delete a specific memory by its ID. This is permanent.
| Name | Required | Description | Default |
|---|---|---|---|
| memory_id | Yes | Memory ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description notes the action is 'permanent,' which is a key behavioral trait. However, no annotations are provided, and the description lacks details on side effects, permissions, or confirmation steps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences deliver the essential information without redundancy. The description is front-loaded and efficiently communicates the tool's purpose and a key implication (permanence).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with one parameter and no output schema, the description covers the core action and consequence. However, it could better contextualize usage among siblings like consolidate_memories or save_memory.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter memory_id is fully described in the schema with 'Memory ID to delete.' The description adds no extra semantics beyond the schema, which already covers 100% of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete a specific memory by its ID. This is permanent.' clearly states the action (delete), the resource (memory), and the method (by ID). It is distinct from siblings like bulk_delete or update_memory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is given. The purpose implies it is for deleting a single memory, but alternatives like bulk_delete or update_memory are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_ruleA
Delete a mandatory rule by its memory ID. Use list_rules to find the ID first.
| Name | Required | Description | Default |
|---|---|---|---|
| memory_id | Yes | The memory ID of the rule to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a destructive action ('Delete') but does not elaborate on consequences or reversibility. With no annotations, it carries the burden, and while the prerequisite is noted, additional behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: the first states the action and object, the second provides a critical usage hint. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description fully covers what the tool does and how to prepare the input. It is self-contained and complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds value by advising to use list_rules to find the memory_id, which helps the agent understand parameter provenance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool deletes a mandatory rule by memory ID and directs to use list_rules to find the ID, distinguishing it from other delete tools like delete_memory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs to use list_rules first to obtain the memory ID, providing clear usage context. It doesn't mention when not to use it, but for a simple delete tool, this is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_memoriesA
Export all memories as JSON. Use this to back up memories or transfer them to another project.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only says 'Export all memories as JSON' without specifying output structure, size limits, or performance implications. Simple operation but lacks detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, front-loaded with action and purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description sufficiently explains the tool's function and use cases for a straightforward export operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in schema, so baseline 4 applies; description adds no parameter info as none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it exports all memories as JSON, and distinguishes from siblings like import_memories by specifying backup and transfer use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides two explicit use cases (backup and transfer), but does not explicitly state when not to use or contrast with similar tools like extract_memories.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_memoriesA
Extract memories from a conversation exchange using AI. Send the developer message and assistant response, and the server identifies facts worth remembering (architecture decisions, preferences, bug fixes, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| user_message | Yes | The developer's message | |
| assistant_response | No | The assistant's response | |
| previous_context | No | Previous exchange for context |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It mentions AI extraction but does not clarify whether the tool returns the extracted facts or stores them, nor does it discuss side effects, permissions, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that are direct and front-loaded: first states the purpose, second explains input and outcome. No filler words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should explain what the tool returns or whether it modifies state. It fails to clarify if extracted memories are returned, saved, or both, leaving the agent uncertain about usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters have schema descriptions (100% coverage). The description adds minimal value by mentioning 'developer message' and 'assistant response', but does not explain the optional 'previous_context' parameter beyond what is in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool extracts memories from a conversation using AI, with specific examples of facts (architecture decisions, preferences, bug fixes). This distinguishes it from siblings like recall_memories or save_memory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It describes when to use the tool (after a conversation exchange) and what input to provide, but does not explicitly mention when not to use it or compare to alternatives like consolidate_memories.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_principlesB
Analyze memory clusters and extract underlying factual principles or patterns. Principles are observations about your project — "this codebase tends to have X" — not behavioral instructions (those are skills). Use dry_run to preview candidates first.
| Name | Required | Description | Default |
|---|---|---|---|
| subject | No | Focus on a specific subject area. Omit to scan all subjects. | |
| project_id | No | Project to extract principles for (auto-detected if omitted) | |
| dry_run | No | When true, preview principle candidates without generating them |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the tool extracts patterns but does not disclose whether it modifies memory, requires permissions, or what the output format is. The behavioral transparency 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences that clearly define the tool and provide a key usage recommendation. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose and a usage tip but lacks details on output format, error handling, or prerequisites. For a tool with three parameters and no output schema, it is marginally adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters have 100% schema description coverage, so the description adds little beyond what the schema already provides. It offers context for the dry_run parameter but does not significantly enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes memory clusters to extract principles, distinguishing them from behavioral instructions. However, the exact nature of 'principles' could be more concretely defined, but overall it's specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description recommends using dry_run first, providing a clear usage hint. However, it does not differentiate this tool from sibling tools like generate_skills or specify when not to use it, lacking explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
feedback_memoryA
Signal whether a recalled memory was useful or irrelevant. Helps improve future recall quality over time. Use after recalling memories to indicate which were helpful vs noise.
| Name | Required | Description | Default |
|---|---|---|---|
| memory_id | Yes | The memory ID to give feedback on | |
| signal | Yes | "useful" boosts the memory's ranking, "irrelevant" reduces its importance. For skills, "useful" boosts confidence, "irrelevant" reduces it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that feedback improves future recall quality and explains enum effects ('useful boosts ranking, irrelevant reduces it'). However, no annotations are provided, and the description does not address potential side effects (e.g., irreversibility, multiple feedbacks).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences front-load the purpose and benefit, with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and no output schema, the description covers purpose, usage timing, and basic effects. Minor gaps: does not mention if feedback is reversible or tied to a user.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value by explaining the signal enum further: 'For skills, "useful" boosts confidence, "irrelevant" reduces it.' This goes beyond the schema's description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Explicitly states the action ('signal whether a recalled memory was useful or irrelevant') and the resource (memories). Distinguishes from sibling tools like recall_memories and save_correction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context: 'Use after recalling memories to indicate which were helpful vs noise.' Implies when not to use (before recalling), but does not mention alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_skillsA
Manually trigger skill generation from your corrections, preferences, and patterns. Skills are behavioral directives that auto-improve how the AI works with you. CogmemAi also generates skills automatically when enough evidence accumulates — this tool lets you trigger it manually or preview candidates.
| Name | Required | Description | Default |
|---|---|---|---|
| subject | No | Generate skills for a specific subject. Omit to scan all subjects. | |
| project_id | No | Project to generate skills for (auto-detected if omitted) | |
| dry_run | No | When true, preview skill candidates without generating them |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It explains the mechanism (corrections, preferences, patterns) and dry_run, but does not disclose side effects, permissions, or what happens to existing skills (overwrite/append).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, front-loaded with action and purpose. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description should explain return values or next steps, but it does not. Also missing error scenarios or prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so description adds minimal value beyond schema. It provides high-level context (corrections, preferences, patterns) but not necessary for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('manually trigger') and the resource ('skill generation'), and distinguishes it from automatic generation. No sibling tool overlaps with this purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Describes when to use manual trigger versus automatic, and mentions preview via dry_run. Lacks explicit when-not-to-use alternatives, but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_analyticsA
Get a memory health dashboard with insights: most recalled memories, never-recalled memories, stale memories, growth trends, and breakdowns by type and category. Use this to identify cleanup opportunities and understand memory usage patterns.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | No | Filter analytics to a specific project. Omit for current project. Use "all" for cross-project analytics. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It details the output content but does not disclose behavioral traits such as being read-only, permissions needed, or side effects. The implied read-only nature of a 'get' tool is insufficient for a higher score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, efficiently conveying the purpose and use case with no redundancy or filler. It is well front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 optional parameter, no output schema), the description covers the output qualitatively (list of insights) and provides a use case. It is sufficient for an agent to understand what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter (project_id), so the schema already describes it well. The tool description adds no extra parameter information, resulting in the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets a 'memory health dashboard' with specific insights like most recalled, never-recalled, stale memories, etc. It distinguishes from siblings like get_stale_memories (which focuses only on stale memories) by offering a broader overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says to use this tool to 'identify cleanup opportunities and understand memory usage patterns,' giving clear context. However, it does not explicitly mention when not to use it or compare with alternatives like get_stale_memories or list_memories.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_changesA
Show what files changed since your last session. Compares the current git state to a snapshot saved when your previous session ended. Helps you understand what happened between sessions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes use of git state and snapshot, implying read-only operation. No annotations present, so description carries burden; lacks detail on what exactly is returned (e.g., file names vs. diffs).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise, front-loaded sentences with no redundancy. Each sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a zero-parameter tool, but lacks description of output format (e.g., list of changed files, diff details). Slightly incomplete given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in schema; baseline 4 as there is nothing for description to add beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool shows file changes since last session, comparing git state to a saved snapshot. Distinct purpose among sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage: helps understand what happened between sessions. No explicit when-not or alternatives provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_memory_linksA
View all memories linked to a specific memory. Returns the relationship type and full memory details for each connection. Use this to explore the knowledge graph around a memory.
| Name | Required | Description | Default |
|---|---|---|---|
| memory_id | Yes | The memory ID to get links for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load. It transparently states the operation is a 'view' and describes the output (relationship type and full memory details). It could explicitly mention it is read-only, but the clarity is high.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence states purpose and return value, the second gives usage context. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one simple parameter and no output schema, the description fully explains what the tool does and what it returns. There are no gaps for an agent to guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already describes the parameter 'memory_id' as 'The memory ID to get links for'. The description's mention of 'links for' adds minimal value beyond the schema, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'View' and the resource 'memories linked to a specific memory', and specifies the return of 'relationship type and full memory details'. This distinguishes it from sibling tools like link_memories (creates links) and list_memories (lists memories without links).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage scenario: 'explore the knowledge graph around a memory'. It does not explicitly state when not to use it or mention alternatives, but the context is sufficient for an agent to understand its typical application.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_memory_versionsA
View the edit history of a memory. Shows all previous versions with timestamps and what changed. Useful for understanding how a decision or fact evolved over time.
| Name | Required | Description | Default |
|---|---|---|---|
| memory_id | Yes | The memory ID to get version history for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It describes the output (versions, timestamps, changes) but does not mention that it is read-only, idempotent, or any potential side effects, though the name implies no mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the action verb "View", and no wasted words. It is concise and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one parameter and no output schema, the description fully covers what the tool does and what it returns. It is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter (memory_id) with a description. Schema coverage is 100%, so the description adds no additional meaning. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: viewing the edit history of a memory, showing previous versions with timestamps and changes. This distinguishes it from sibling tools like get_memory_links or list_memories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions it is useful for understanding how a decision or fact evolved over time, providing clear context for use. It does not explicitly state when not to use it or mention alternatives, but no direct alternatives exist among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_contextA
Load top memories for the current project plus relevant global memories. Use at the start of a session to get full context from previous sessions. Optionally pass context to get memories most relevant to your current task.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | No | Project identifier (auto-detected from git remote if omitted) | |
| include_global | No | Include global developer preferences | |
| context | No | Optional context to improve relevance ranking (e.g., current task or topic) | |
| context_type | No | Optional context type that shifts scoring weights. debugging = boost bug/pattern memories, planning = boost architecture/decision, reviewing = boost pattern/preference. | |
| compact | No | When true (default), returns only formatted_context text instead of full JSON arrays. Saves ~60% tokens. | |
| limit | No | Max total memories to return (default 25). Lower values save context tokens. | |
| team_id | No | Optional override. Team memories are automatically included for team/enterprise users. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It mentions the tool loads data (likely read-only) and uses auto-detection for project_id, but fails to address important aspects like permissions, rate limits, side effects, or data returned (e.g., formatted_context format). This leaves significant gaps for an agent to safely invoke the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first packs purpose and resource, second adds usage guidance and optional context. Every word earns its place. No fluff, front-loaded with critical action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no output schema, and many siblings, the description covers core purpose and primary usage but omits output details (e.g., compact returns formatted_context). It is adequate for a straightforward retrieval tool but could better explain return format or behavior for new users.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, providing baseline 3. The description adds meaningful context beyond schema: auto-detection of project_id from git remote, token savings for compact (~60%), and relevance boosting via context_type. These enrich the schema descriptions without redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Load' and clearly identifies the resource: 'top memories for the current project plus relevant global memories'. It also suggests usage at session start and optional context passing, distinguishing it from siblings like 'list_memories' or 'recall_memories' by focusing on combined project+global retrieval with relevance ranking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'at the start of a session to get full context from previous sessions'. Also mentions optional context for task relevance. However, it does not provide explicit when-not-to-use or alternative tools, though the strong recommendation implies appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stale_memoriesA
Find memories that may be outdated based on age and access patterns. Returns memories that haven't been recalled or updated recently, so you can review, update, or delete them.
| Name | Required | Description | Default |
|---|---|---|---|
| days_threshold | No | Consider memories stale if not accessed in this many days (default: 30) | |
| limit | No | Max results to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states the tool returns memories not recalled or updated recently, but does not mention read-only nature, performance implications, or any side effects. Basic but adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, extremely concise, and front-loaded. Every word serves a purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 well-documented parameters and no output schema, the description covers the essential purpose and use case. It could optionally mention the output format (e.g., list of memory IDs) but is complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented. The description adds the notion of 'age and access patterns' but doesn't provide additional semantic meaning beyond the schema defaults and descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds 'memories that may be outdated based on age and access patterns,' using a specific verb ('Find') and resource ('memories'). It distinguishes from siblings like 'list_memories' by specifying criteria for staleness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for reviewing, updating, or deleting outdated memories, providing clear context. However, it lacks explicit when-not-to-use or alternatives among siblings like 'list_memories' or 'recall_memories'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tasksA
Get tasks for the current project. Returns tasks filtered by status — defaults to showing pending and in_progress tasks. Use at session start to pick up where you left off.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by task status. "all" returns pending + in_progress + blocked (excludes done). | all |
| include_done | No | When true, also include completed tasks |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description contradicts schema: description says defaults to pending and in_progress, but schema default is 'all' which includes pending+in_progress+blocked. Also lacks any mention of whether the operation is read-only or has side effects, though no annotations exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two clear, front-loaded sentences with no redundant information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, default behavior, and usage context. Lacks mention of returned fields format or any limits (e.g., pagination). The contradiction with schema reduces completeness. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so baseline 3, but description's default behavior statement contradicts the schema's default value (all vs pending+in_progress). The description does not add meaningful additional parameter context beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get tasks for the current project' with a specific verb and resource, and mentions filtering by status, distinguishing it from sibling mutation tools like save_task or update_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage guidance: 'Use at session start to pick up where you left off.' However, it does not mention when not to use or alternatives among siblings, though no direct alternative exists for reading tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usageA
Get current usage statistics — memory count, extractions this month, tier info, projects.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It clearly states the operation is a read ('Get') and lists the output fields. It does not disclose authentication or rate limits, but for a simple, non-destructive tool this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the purpose and lists key output items. No unnecessary words, every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description fully covers what the tool does and what data is returned. It is complete for such a simple retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so schema coverage is 100% trivially. The description adds value by explicitly listing the fields the tool returns, which is more informative than an empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and identifies the resource 'current usage statistics' with enumerated fields (memory count, extractions this month, tier info, projects). This clearly differentiates it from sibling tools like get_analytics (likely more detailed) and get_file_changes (different scope).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it is for a quick overview of usage statistics, but does not explicitly state when to use it vs alternatives or mention limitations. However, for a zero-parameter read-only tool, the context is straightforward enough to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_memoriesA
Bulk import memories from a JSON array. Each memory needs at minimum a content field. Deduplication is applied automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| memories | Yes | JSON string containing an array of memory objects. Each must have "content", optionally: memory_type, category, subject, importance, scope. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behaviors. It only mentions automatic deduplication, omitting other important behaviors like error handling, idempotency, or performance implications for a bulk operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the core purpose and key constraint/behavior, with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the schema covering the parameter well, the description lacks details on return values, error handling, or limits (despite schema having maxLength), leaving the agent without crucial context for a bulk import.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description covers 100% of the parameter details, and the description merely reiterates the minimum content field requirement, adding no new semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool imports multiple memories from a JSON array, specifying both the action (import) and the resource (memories), which distinguishes it from single-memory tools like save_memory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It conveys that bulk import is for multiple memories and notes the minimum content requirement, but does not explicitly compare to alternatives like save_memory or mention 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.
ingest_documentA
Extract memories from a document by splitting it into chunks and processing each one. Great for onboarding — feed in READMEs, architecture docs, or API specs to quickly build project context.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The document text to ingest (up to 50K characters) | |
| document_type | No | Type hint for extraction (e.g., readme, api_docs, architecture, changelog) | general |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It explains the chunking process, adding some behavioral context. However, it does not disclose side effects (e.g., whether existing memories are overwritten), rate limits, or authentication requirements, leaving gaps for a critical operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the core action, and contains no unnecessary words. It is highly concise and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool complexity and absence of output schema, the description covers the main purpose and usage. It lacks details on return format or chunk size, but overall provides sufficient context for a focused ingestion tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are described in the schema. The description mentions document types in examples but adds no additional meaning or constraints beyond the schema, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool extracts memories from a document by splitting into chunks and processing each one. It specifies the verb 'extract' and resource 'memories from a document', and distinguishes itself from siblings by focusing on onboarding with document types like READMEs and API specs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context and examples of when to use the tool, such as onboarding with READMEs or architecture docs. However, it does not explicitly state when not to use it or compare with siblings like 'import_memories' or 'extract_memories', which could help the agent choose appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
link_memoriesA
Connect two related memories with a named relationship. Use this to build a knowledge graph — e.g., linking a bug fix to the architecture decision that caused it, or connecting a preference to the pattern it led to.
| Name | Required | Description | Default |
|---|---|---|---|
| memory_id | Yes | The source memory ID | |
| related_memory_id | Yes | The target memory ID to link to | |
| relationship | Yes | How the memories relate: led_to (A caused B), contradicts (A conflicts with B), extends (A builds on B), related (general connection) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose behavioral traits like whether links can be overwritten, permission requirements, or side effects. This is a significant gap for a writing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and examples. No wasted words, efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without output schema, the description does not explain return values or outcomes. It covers the purpose and parameters well but misses details on behavior like bidirectionality or validation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds marginal value by providing usage context, but the schema already defines the parameters adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (connect two memories) and the resource (memories with a named relationship). It includes specific examples and distinguishes from sibling tools like get_memory_links and consolidate_memories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear use cases and context (build a knowledge graph with examples). It does not explicitly state when not to use it or mention alternatives, but the examples effectively guide usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_memoriesB
List stored memories with optional filters by type, category, scope, or project.
| Name | Required | Description | Default |
|---|---|---|---|
| memory_type | No | Filter by type | |
| category | No | Filter by category (e.g., "backend", "frontend", or any custom category) | |
| importance_min | No | Only return memories with importance >= this value | |
| scope | No | Filter by scope | all |
| limit | No | Results per page | |
| tag | No | Filter by tag (e.g., "marketing-campaign") | |
| offset | No | Pagination offset | |
| untyped | No | When true, only return memories with no memory_type set | |
| sort_by | No | Sort order: importance (default), updated, created, referenced (most used first), least_used | importance |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description should disclose behavioral traits. It does not mention that the tool is a read-only operation, nor does it discuss pagination behavior, performance implications, or side effects. This is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that efficiently conveys the tool's purpose without unnecessary words. It is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the schema covers all parameters, there is no output schema and the description omits return format, pagination details, or sorting behavior. Given the tool's complexity (9 parameters, many siblings), the description is minimally adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters well. The description adds no extra meaning beyond repeating that there are optional filters. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list) and resource (stored memories) with optional filters. However, among many siblings like recall_memories, it does not explicitly differentiate itself, which slightly reduces clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as recall_memories or get_stale_memories. The description lacks context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_rulesA
List all mandatory rules for the current project and/or globally. Rules are always-on memories that surface in every session.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | Filter: all = project + global, project = this project only, global = global only | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states that rules are 'always-on memories that surface in every session', which hints at their pervasive nature. However, it does not explicitly declare read-only or non-destructive behavior, though 'list' implies it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. Every sentence adds value: first states function and scope, second explains what rules are.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and no output schema, the description is sufficient. It clarifies the nature of rules and filtering options. Some might expect output details, but not required here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with a detailed description for the `scope` parameter. The description adds only 'for the current project and/or globally' which aligns with the enum. Per guidelines, with high schema coverage, baseline is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'List all mandatory rules', specifying the resource and scope. Distinguishes from siblings like list_memories by highlighting that rules are 'always-on memories'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like list_memories or delete_rule. The context implies usage for viewing enforced rules, but lacks 'when not to use' or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tagsA
List all tags in use across your memories, with counts. Use this to see what threads/groups exist and find related memories by tag.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description fully carries behavioral disclosure. It correctly indicates a read-only list operation scoped to the user's memories, and that it returns counts. Lacks details on ordering or pagination but sufficient for a simple list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each serving a distinct purpose: one for definition, one for usage guidance. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless list tool with no output schema, the description covers purpose, usage, and behavior completely. No missing context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist in schema, baseline is 4. Description does not need to add parameter info and does not repeat schema content.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool lists tags with counts, specifying the resource (tags in memories) and verb (list). Distinguishes from siblings like list_memories by focusing on tags and their counts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage context: 'Use this to see what threads/groups exist and find related memories by tag.' Implies when to use it but does not explicitly state when not to use or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preflightA
Think Before You Speak. Call this BEFORE making any suggestion, recommendation, or action plan. Sends the topic to a fast keyword search and returns any relevant prior context — previous attempts, decisions, contacts, evaluations. This prevents suggesting things that were already tried, rejected, or completed. Fast and cheap — use liberally.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | What you are about to suggest or respond about. Be specific — include names, topics, approaches. | |
| project_id | No | Project ID (auto-detected if omitted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully bears the burden. It states the tool is fast and cheap, used liberally, and returns relevant prior context. It implies no side effects. However, it does not detail the exact response format or behavior when no context is found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, each valuable. It is front-loaded with an imperative and immediately states the purpose. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two parameters and no output schema. The description covers purpose and input usage well but lacks detail on the output format or what happens when no context is found. It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are fully described in the schema (100% coverage). The description reinforces the usage of message by advising to be specific, but adds little new information beyond the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a keyword search to retrieve prior context, including specific examples like previous attempts and decisions. It uses clear verb 'sends' and resource 'topic to fast keyword search', and it distinguishes itself from siblings by being a pre-check tool before making suggestions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to call this BEFORE making suggestions, recommendations, or action plans, and explains the benefit of avoiding repetition. It does not explicitly compare to alternative tools like recall_memories, but the context strongly implies its specific role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
promote_memoryA
Promote a project-scoped memory to global scope so it applies across all projects. Use this when you discover a preference or pattern that should be universal — e.g., "user prefers tabs over spaces" or "always use Bun instead of npm".
| Name | Required | Description | Default |
|---|---|---|---|
| memory_id | Yes | The project memory ID to promote to global scope |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description discloses the behavioral trait of changing memory from project-scoped to global. No annotations are provided, so the description carries the burden and does it adequately, though it doesn't mention potential side effects like whether the original memory remains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both front-loaded with the action and purpose. No unnecessary words or repetition. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers purpose, usage context, and scope change. Could mention potential prerequisites like memory ownership, but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for the single parameter. The tool description adds no extra detail beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (promote) and resource (memory) with the scope change from project to global. It distinguishes itself from sibling memory tools like save_memory or delete_memory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use this tool: when a discovered preference or pattern should be universal. Gives concrete examples. Lacks explicit 'when not to use' but is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recall_memoriesA
Search stored memories using semantic search. Returns memories ranked by relevance, importance, and recency. Use this to find relevant context from past sessions.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | What to search for (natural language) | |
| scope | No | Filter by scope | all |
| limit | No | Max results | |
| memory_type | No | Filter by type | |
| category | No | Filter by category (e.g., "backend", "frontend", or any custom category) | |
| importance_min | No | Only return memories with importance >= this value | |
| tag | No | Filter by tag (e.g., "marketing-campaign") | |
| team_id | No | Optional override. Team memories are automatically included for team/enterprise users. | |
| context_type | No | Optional context type that shifts scoring weights. debugging = boost bug/pattern memories, planning = boost architecture/decision, reviewing = boost pattern/preference. | |
| synthesize | No | When true and 3+ results are found, returns an AI-synthesized summary combining all memories into a coherent answer. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions semantic search and ranking criteria (relevance, importance, recency) but does not explicitly state that the tool is read-only or disclose potential side effects. Given no annotations, the description carries the full burden, and while adequate, it leaves some behavioral traits implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first explains the action and ranking, the second gives usage guidance. No unnecessary words, efficiently conveying purpose and usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 parameters, no output schema), the description covers the main purpose and filtering capabilities. It could include return format or pagination details but is sufficient for a search tool with clear schema descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with detailed descriptions for all 10 parameters. The main description adds minimal parameter-specific meaning beyond stating 'semantic search' and ranking criteria. With full schema coverage, baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs semantic search on stored memories and returns results ranked by relevance, importance, and recency. It distinguishes itself from siblings like list_memories (listing all) by focusing on semantic retrieval for context from past sessions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this to find relevant context from past sessions,' providing clear usage guidance. It does not explicitly mention when not to use it or alternatives, but the context among siblings implies its specific role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_correctionA
Save a correction pattern — what went wrong and what the right approach is. These are surfaced automatically when similar situations arise in future sessions, helping avoid repeated mistakes.
| Name | Required | Description | Default |
|---|---|---|---|
| wrong_approach | Yes | What was done incorrectly (e.g., "Used npm install instead of bun add") | |
| right_approach | Yes | The correct approach (e.g., "Always use bun add for this project") | |
| context | No | When/where this applies (e.g., "package management in monorepo") | |
| scope | No | global = applies everywhere, project = specific to this codebase | project |
| project_id | No | Project identifier override (auto-detected from CLAUDE_PROJECT_DIR or git remote if omitted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It mentions that saved patterns are 'surfaced automatically', but does not disclose side effects (e.g., whether saving overwrites an existing pattern, if there are limits, or how the surfacing mechanism works). The description is adequate for a simple creation tool but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences clearly front-load the purpose and benefit. Every sentence earns its place with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description does not explain what the tool returns (e.g., success indicator or ID). It also omits details on how the automatic surfacing works, leaving some context incomplete for a tool that integrates into a larger workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all parameters with descriptions (100% coverage), so the tool description does not need to repeat them. It adds no extra meaning beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Save' and the resource 'correction pattern', explaining the purpose: capturing what went wrong and the right approach, and that they are surfaced automatically to avoid repeated mistakes. This distinguishes it from siblings like 'save_memory' or 'save_rule'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a mistake is recognized and a correction pattern should be saved for future reference, but it does not explicitly state when to use this tool versus other save tools (e.g., save_memory, save_rule). No 'when not to use' guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_memoryB
Store a developer memory (fact, preference, decision, architecture detail). Memories persist across all Claude Code sessions and are available in future conversations.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The fact to remember (complete sentence) | |
| memory_type | No | Type: identity, preference, architecture, decision, bug, dependency, pattern, context. Custom types also accepted for non-developer domains. | context |
| category | No | Category: frontend, backend, database, devops, testing, security, performance, tooling, api, general. Custom categories also accepted for non-developer domains. | general |
| subject | No | What this is about, e.g. "auth_system", "react_version", "tab_width" | |
| importance | No | 1-10 (10 = core architecture, 1 = trivial) | |
| scope | No | global = applies everywhere, project = specific to this codebase, team = shared with team members | project |
| team_id | No | Team ID (required when scope is "team"). The memory will be shared with all team members. | |
| tags | No | Optional tags for grouping/threading memories (max 5 tags, each max 30 chars). E.g., ["marketing-campaign", "feb-2026"] | |
| ttl | No | Set an expiration time. Use for temporary context like current task status. Format: "24h", "7d", "30d". Memory auto-archives after expiry. | |
| project_id | No | Project identifier override (auto-detected from CLAUDE_PROJECT_DIR or git remote if omitted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that memories persist across sessions, a key behavioral trait. However, it does not mention idempotency, side effects, authorization needs, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long with no superfluous words. It efficiently conveys the core purpose and persistence behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters fully described in schema, the description covers the main purpose. However, it omits what the tool returns (e.g., memory ID) and does not mention auto-detection of project_id even though that is in the parameter schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The tool description adds no additional parameter meaning beyond what is in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool stores developer memories like facts, preferences, decisions, and architecture details. It uses specific verbs and resources, but does not explicitly differentiate from siblings like update_memory or recall_memories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as update_memory, delete_memory, or recall_memories. The description lacks context on prerequisites or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_ruleA
Save a mandatory rule that will ALWAYS be followed in every session. Rules bypass scoring and decay — they are injected into every conversation, every time. Use for absolute requirements like "NEVER do X" or "ALWAYS do Y".
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The rule to enforce (e.g., "NEVER use -latest model aliases", "ALWAYS apply changes to both class-chat.php AND class-maas.php") | |
| subject | No | Short label for the rule, e.g. "model_aliases", "companions_parity" | |
| scope | No | global = applies to all projects, project = only this codebase | project |
| category | No | Category for organization: frontend, backend, security, general, etc. | general |
| tags | No | Optional tags for grouping rules | |
| project_id | No | Project identifier override (auto-detected from CLAUDE_PROJECT_DIR or git remote if omitted) |
TDQS
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 clearly explains that rules bypass scoring and decay and are injected every session. However, it does not disclose potential overwrites, limits, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a concise three-sentence paragraph with no redundant information. Each sentence adds value: purpose, behavioral specifics, and usage examples. It is front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose and behavioral context well, but it does not mention scope, category, or project-specific behavior. Given the schema provides these details, the description is adequate but could be more comprehensive about defaults like project-scoped rules.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The tool description adds no extra parameter-level information beyond what the schema already provides. It focuses on purpose rather than parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool saves a mandatory rule that is always followed, with examples of absolute requirements. It distinguishes itself from sibling tools like list_rules and delete_rule by focusing on creation of always-enforced rules.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises using the tool for absolute requirements like 'NEVER do X' or 'ALWAYS do Y', providing positive usage guidance. However, it does not mention when not to use it or compare with alternatives like save_memory.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_session_summaryB
Save a summary of the current coding session. Captures what was accomplished, decisions made, and next steps. Stored as a session_summary memory for future reference.
| Name | Required | Description | Default |
|---|---|---|---|
| summary | Yes | Summary of the session — what was done, key decisions, and next steps |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states 'Save' and 'Stored', omitting critical behavioral traits like whether it overwrites or appends, requires authentication, or has side effects. This is insufficient for an agent to understand mutation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundancy. First sentence specifies action and target, second adds content detail. Every word contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter, the description covers core purpose and content. However, it omits details like retrieval method, duplicate handling, or idempotency. Not essential for basic use but could be improved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter description matching the tool description. The description adds no extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool saves a summary of the current coding session, specifying content (accomplishments, decisions, next steps) and storage as session_summary memory. It differentiates from sibling 'save_memory' by the session-specific scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied as saving session summaries, but no explicit guidelines are given on when to use this versus alternatives like 'save_memory' or 'recall_memories'. The description lacks when-not-to-use or prerequisite conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_taskB
Create a task that persists across sessions. Tasks are tracked with status (pending, in_progress, done, blocked) and priority (high, medium, low). Use this to maintain continuity on multi-session work.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Short task title (e.g., "Fix auth bug in login flow") | |
| description | No | Detailed description of what needs to be done | |
| priority | No | Task priority | medium |
| status | No | Initial task status | pending |
| project_id | No | Project identifier override (auto-detected from CLAUDE_PROJECT_DIR or git remote if omitted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the task persists across sessions and mentions supported status/priority values, but does not cover side effects, return behavior, or idempotency. Adequate but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-loading the core purpose and adding optional context. Every sentence is useful with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite good schema coverage and no output schema, the description omits what happens after creation (e.g., returns task ID or confirmation). For a write tool with 5 parameters, this gap hinders the agent's understanding of the full operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description reinforces enum values already in the schema but adds no new meaning beyond listing them. No parameter-specific guidance beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a task that persists across sessions, specifying the verb 'create' and resource 'task'. It distinguishes from read tools like get_tasks by focusing on creation, and from update_task by implication. The mention of persistence adds valuable context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description suggests using it for multi-session continuity but does not explicitly contrast with siblings like update_task or bulk_delete. No when-not-to-use guidance is provided, leaving the agent to infer alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_reminderA
Set a reminder that surfaces automatically at the start of your next session. Use for follow-ups, things to check, or deferred work. Reminders auto-archive after being shown.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | What to remind about (e.g., "Check if PR #42 was merged") | |
| ttl | No | How long to keep the reminder alive. Format: "24h", "7d", "30d". Default: 7 days. | 7d |
TDQS
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 discloses that reminders auto-archive after being shown, which is a useful behavioral trait. However, it doesn't cover other aspects like whether it checks for duplicates or if there's a limit on active reminders.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with three sentences, each providing essential information without any fluff. It front-loads the key functionality and usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, no output schema, no annotations), the description is adequate. It covers purpose, trigger, and lifecycle (auto-archive). Minor gap: could mention persistence across sessions or per-user scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The parameter descriptions in the schema are already clear (content: what to remind, ttl: duration format). The tool description does not add additional semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets a reminder that surfaces automatically at session start. It uses a specific verb (set) and resource (reminder), and the auto-surfacing distinguishes it from other tools like saving tasks or memories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly recommends usage for follow-ups, things to check, or deferred work, providing clear context. While it doesn't mention when not to use it or alternatives, the sibling tools are mostly memory/task related, making the guidance sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_memoryC
Update an existing memory's content, importance, or scope.
| Name | Required | Description | Default |
|---|---|---|---|
| memory_id | Yes | Memory ID to update | |
| content | No | New content | |
| importance | No | New importance (1-10) | |
| scope | No | New scope | |
| memory_type | No | New memory type | |
| category | No | New category (e.g., "backend", "frontend", or any custom category) | |
| subject | No | New subject (e.g., "auth_system", "react_version") | |
| tags | No | New tags (replaces existing tags) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that the tool updates memory fields, but does not disclose whether it partially or fully overwrites fields, whether it is idempotent, or what happens on error. For a mutation 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that directly states the tool's purpose without any unnecessary words. It is concise and front-loaded with the key action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters and no output schema or annotations, the description is far from complete. It does not explain that memory_id is required, that other fields are optional, or how updates are applied (e.g., partial vs full replacement). Important behavioral context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with descriptions for all parameters. The description lists only three fields (content, importance, scope) but the schema includes more (memory_type, category, subject, tags). Since the schema already explains each parameter, the description adds minimal extra meaning, resulting in a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates an existing memory's content, importance, or scope. It includes the verb 'update' and the resource 'memory', making the purpose clear. However, it does not explicitly differentiate from sibling tools like save_memory or delete_memory, which would warrant a higher score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives (e.g., save_memory for creation, delete_memory for removal). There is no mention of prerequisites or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_taskA
Update a task's status, title, description, or priority. Use this to mark tasks as in_progress, done, or blocked as you work.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | The task memory ID (from get_tasks) | |
| status | No | New status | |
| title | No | New title | |
| description | No | New description | |
| priority | No | New priority |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It correctly identifies the tool as an update operation but does not disclose whether it performs partial updates (only modifying provided fields) or requires all fields. No contradictions with annotations (none present).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the core purpose, and contains no unnecessary words. Every sentence contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool and rich schema, the description is adequate for basic use. However, it lacks detail on partial update behavior (whether omitted fields remain unchanged) and expected return value. Completeness is acceptable but not outstanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, so the description adds limited new semantic value. It mentions the updatable fields and provides example statuses, but these are already evident from the schema enums. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates specific fields (status, title, description, priority) of a task, and explicitly mentions common status transitions ('in_progress, done, or blocked'). This distinguishes it from create (save_task) and delete tools on the same server.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises 'Use this to mark tasks as in_progress, done, or blocked as you work,' providing clear context for when to invoke the tool. It does not explicitly state when not to use it, but the sibling bulk_update implies batch alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose, with descriptions that precisely define scope (e.g., bulk_delete vs delete_memory, extract_memories vs extract_principles). No overlapping or ambiguous tools exist.
All tools follow a consistent verb_noun pattern using snake_case (e.g., save_memory, get_analytics, list_rules). No mixing of conventions or irregular naming.
35 tools is appropriate for a comprehensive memory management system covering memories, rules, skills, tasks, reminders, analytics, and import/export. Each tool addresses a specific operation without redundancy.
Core CRUD for memories is complete, but several operations are missing: no delete_task, no update_rule or delete_rule, no unlink_memories, no list/delete for reminders or skills. These gaps could cause agent failures in managing the full lifecycle.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Persistent AI memory shared across Claude, ChatGPT, coding agents, and compatible MCP clients.
Private persistent memory for Claude, ChatGPT & Gemini via MCP - semantic search, zero-code setup.
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Persistent memory and cross-session learning for AI coding assistants (hosted remote MCP).
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI coding agents to maintain persistent, cross-session memory of codebase architecture, naming conventions, and decisions through MCP tools. Eliminates repetitive project re-explanation by automatically injecting stored context into every session with local-first SQLite storage and optional team sharing capabilities.4MIT
- AlicenseAqualityAmaintenancePersistent AI memory for Claude Code, Cursor, GitHub Copilot & Windsurf — sessions, lessons learned, semantic search, and team brain. 38 MCP tools. Free tier, EU servers.1223,2002Apache 2.0
- AlicenseCqualityAmaintenancePersistent project memory for AI models and coding agents. Memory MCP stores architecture, decisions, tasks, warnings, preferences, and session state in Supabase so OpenCode, Claude Code CLI, Qwen Code, Codex, or any MCP-compatible client can resume work without losing context.221MIT
- AlicenseAqualityDmaintenanceGives Claude Code, Claude Desktop, Cursor, VS Code Copilot, and other MCP-compatible tools persistent memory.18661MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hifriendbot/cogmemai-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server