memory-bank-mcp
Memory Bank MCP
An MCP server that gives AI assistants persistent memory across sessions. It stores project context, decisions, and progress in structured markdown files — locally or on a remote server via SSH.
Related repos:
HTTP + Postgres + Redis variant → diaz3618/memory-bank-mcp-http — Docker deployment with HTTP transport
VS Code Extension → diaz3618/Memory-Bank-VSCode-Ext — sidebar UI and GitHub Copilot integration
Quick Start
# Run directly (no install needed)
npx @diazstg/memory-bank-mcp
# Or install globally
npm install -g @diazstg/memory-bank-mcpVia Smithery (Claude Desktop)
npx -y @smithery/cli install @diazstg/memory-bank-mcp --client claudeRelated MCP server: Adaptive Reasoning Server
Configuration
Add to your editor's MCP config (.vscode/mcp.json, Cursor, Claude Desktop, etc.):
{
"servers": {
"memory-bank-mcp": {
"command": "npx",
"args": ["-y",
"@diazstg/memory-bank-mcp",
"--username",
"your-username"
],
"type": "stdio"
}
}
}Tip: Including
--usernameis highly recommended for proper progress tracking.
Common Options
npx @diazstg/memory-bank-mcp --username "github-user" # Username for progress tracking (recommended)
npx @diazstg/memory-bank-mcp --mode code # Set operational mode
npx @diazstg/memory-bank-mcp --path /my/project # Custom project path
npx @diazstg/memory-bank-mcp --folder my-memory # Custom folder name (default: memory-bank)
npx @diazstg/memory-bank-mcp --help # All optionsRemote Server (SSH)
Store your Memory Bank on a remote server:
npx @diazstg/memory-bank-mcp --remote \
--remote-user username \
--remote-host example.com \
--remote-path /home/username/memory-bank \
--ssh-key ~/.ssh/id_ed25519See Remote Server Guide.
How It Works
Memory Bank stores project context as markdown files in a memory-bank/ directory:
File | Purpose |
| Project overview, goals, tech stack |
| Current state, ongoing tasks, next steps |
| Chronological record of updates |
| Decisions with context and rationale |
| Architecture and code patterns |
The AI assistant reads these files at the start of each session and updates them as work progresses, maintaining continuity across conversations.
MCP Tools
Tool | Description |
| Create a new Memory Bank |
| Check current status |
| Read a specific file |
| Write/update a file |
| Add a progress entry |
| Record a decision |
| Update current context |
| Change operational mode |
| Create or update a knowledge graph entity |
| Add an observation to an entity |
| Create a relation between entities |
| Search entities by name or type |
| Get full details of specific entities |
| Compact the event log |
Modes
Mode | Focus |
| Implementation and development |
| System design and planning |
| Q&A and information retrieval |
| Troubleshooting and diagnostics |
| Testing and quality assurance |
Modes can be set via CLI (--mode code), tool call (switch_mode), or .mcprules-[mode] files. See Usage Modes.
As a Library
import { MemoryBankServer } from "@diazstg/memory-bank-mcp";
const server = new MemoryBankServer();
server.run().catch(console.error);Documentation
Topic | Link |
Getting Started | |
Guides | |
Integrations | VS Code/Copilot, Claude Code, Cursor, Cline, Roo Code, generic MCP |
Reference | |
Development |
Alternative: HTTP + PostgreSQL + Redis
The feature/http-postgres-redis-supabase branch provides a cloud-native variant that replaces stdio/local-filesystem with HTTP Streamable MCP transport, PostgreSQL (via Supabase) for storage, and Redis for caching. It is deployed exclusively via Docker and is not published to npm. See the branch README for setup instructions.
Contributing
See CONTRIBUTING.md.
License
See LICENSE.
Available Tools
36 toolsadd_progress_entryC
Add a structured progress entry to the Memory Bank. Provides a type-safe API for logging progress with categories and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Type/category of the progress entry | |
| summary | Yes | Brief summary of the change (one line) | |
| details | No | Detailed description of the progress | |
| files | No | List of files affected by this change | |
| tags | No | Tags for categorizing this entry (e.g., ["api", "performance"]) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavioral traits. It only states it adds an entry, but does not disclose side effects (e.g., whether it overwrites or appends, persistence guarantees, access permissions, or consequences of missing context). 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?
Two sentences, 22 words, clearly front-loaded with the core action. Every word contributes value; no waste. Appropriately sized for the tool's simplicity.
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 annotations and no output schema, the description lacks details on preconditions (e.g., initialized memory bank), behavior on failure, return values, or data lifecycle. It meets minimum viability but leaves many practical concerns unaddressed.
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 5 parameters. Description adds minimal extra meaning ('type-safe', 'categories and metadata' hint at enum usage) but does not significantly enhance understanding 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?
Clearly states verb 'add' and resource 'progress entry to the Memory Bank', with added context about type-safe API and categories. Does not explicitly distinguish from siblings like 'track_progress', but purpose is well-defined.
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 on when to use this tool versus siblings (e.g., track_progress) or when not to use it. The description only states what it does, not when it's appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_session_noteA
Add a timestamped session note to the active context. Useful for recording observations, blockers, or context that should persist.
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | The note text to add | |
| category | No | Category of the note (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description correctly conveys that the tool creates a timestamped, persistent note. It does not discuss potential side effects or limits, but for a simple append operation the transparency is 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 concise sentences front-load the core action and purpose without extraneous detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and full schema coverage, the description provides nearly complete context for correct usage, including the timestamped nature and active context target.
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 adequately describes both parameters. The description adds minimal value beyond the schema, mainly aligning the category enum with common use cases (observations, blockers).
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 adds a timestamped session note to the active context, distinguishing it from siblings like add_progress_entry and log_decision which serve different purposes.
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 indicates it is useful for recording observations, blockers, or persistable context, implying when to use it. However, it does not explicitly state when not to use it or contrast with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_read_filesA
Read multiple Memory Bank files in a single request. More efficient than individual reads for loading context.
| Name | Required | Description | Default |
|---|---|---|---|
| files | Yes | List of filenames to read (e.g., ["progress.md", "active-context.md"]) | |
| includeEtags | No | Whether to include ETags for each file (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description alone must disclose behavior. It mentions efficiency but omits details like read-only nature, file size limits, or error handling. The claim 'more efficient' adds some context but is insufficient for full transparency.
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 redundant words, and the key information is front-loaded. Every sentence serves a 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?
For a simple batch read tool with no output schema, the description hints at efficiency but does not explain what the tool returns (e.g., file contents). This gap leaves the agent uncertain about the output format, making it merely 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 baseline is 3. The description adds no further meaning beyond what the schema provides for the two parameters; it repeats the idea of reading multiple files but no additional semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'read' and the resource 'Memory Bank files', specifying batch operation ('multiple...in a single request'). It implicitly differentiates from siblings like batch_write_files and read_memory_bank_file.
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 a use case ('loading context') and claims efficiency over individual reads. However, it does not explicitly state when not to use or list alternative tools for different scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_write_filesA
Write multiple Memory Bank files in a single request. Supports optimistic concurrency via ETags.
| Name | Required | Description | Default |
|---|---|---|---|
| files | Yes | Array of files to write | |
| stopOnError | No | Whether to stop on first error (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides some behavioral insight by mentioning optimistic concurrency via ETags. However, it does not disclose error handling behavior, the atomicity of the batch, or what happens on partial failures.
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 clear sentence, front-loaded with the main purpose, and contains 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?
Despite the complexity of batch writing with concurrency and potential partial failures, the description lacks details on return values, error formats, and order guarantees. It is insufficient for an agent to fully understand the tool's behavior.
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 parameters are documented. The description adds value by relating ifMatchEtag to concurrency control, which clarifies the ETag parameter's purpose. However, it does not explain stopOnError beyond its schema default.
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 writes multiple Memory Bank files in a single request, with a specific verb and resource. It effectively distinguishes from its sibling tool write_memory_bank_file, which writes a single file.
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 batch operations but does not explicitly state when to use this tool over write_memory_bank_file or what the trade-offs are. No alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_backupA
Create a backup of the current Memory Bank state, or list existing backups. Backups are stored in the parent directory with timestamped names.
| Name | Required | Description | Default |
|---|---|---|---|
| backupDir | No | Optional custom directory to store the backup. If not provided, uses the parent of the memory bank directory. | |
| listOnly | No | If true, lists existing backups instead of creating a new one |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses backup storage location and naming pattern (parent directory, timestamped) but does not mention potential side effects like disk usage or performance impact, which is acceptable for a straightforward 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?
A single sentence that is clear and compact, with 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?
Adequately covers the two modes and storage details, but lacks information about return values or confirmation messages, which would be helpful for an agent.
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 covers both parameters with descriptions, and the description adds context by explaining backupDir defaults to parent directory and how listOnly switches behavior, going 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?
The description clearly states the tool creates or lists backups of the Memory Bank state, which is specific and distinguishes it from siblings like restore_backup.
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 two modes (create vs list) but lacks explicit guidance on when to use each or how this tool relates to restore_backup, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
debug_mcp_configB
Debug the current MCP configuration
| Name | Required | Description | Default |
|---|---|---|---|
| verbose | No | Whether to include detailed information |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavior. It only says 'Debug' without explaining what that entails—no side effects, whether it runs checks, or what output is produced. The parameter 'verbose' hints at detail but does not clarify core 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?
One concise sentence with no unnecessary words or repetition. Front-loaded 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?
No output schema and no description of what the tool returns or its behavior. For a debug tool, agents need to know output format and potential actions—completely 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?
Schema description coverage is 100% for the single boolean parameter, so the description need not add param info. It does not add meaning beyond the schema, yielding a baseline 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 'Debug the current MCP configuration,' which is a specific verb and resource. No sibling tool has a similar purpose, so it is well-distinguished.
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 on when to use this tool vs alternatives or prerequisites. While it is a standalone debug tool, context about typical scenarios (e.g., configuration issues) is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
finalize_thinking_sessionA
Persist the outcome of a thinking session into Memory Bank files. Accepts only human-facing summary fields — raw thoughts are NEVER persisted. Writes to existing Memory Bank files (active-context.md, decision-log.md, progress.md) via existing mechanisms.
| Name | Required | Description | Default |
|---|---|---|---|
| summary | Yes | Human-facing summary of the thinking session outcome | |
| decision | No | Optional decision to log | |
| tasks | No | Optional task updates (compatible with update_tasks) | |
| nextSteps | No | Optional next steps to add to active context | |
| progressEntry | No | Optional progress entry to record | |
| sessionId | No | Session ID (appended as a tag to session note) |
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 raw thoughts are never persisted and that it writes to existing files via existing mechanisms, but lacks specifics on whether it overwrites or appends, and does not mention potential side effects or idempotency.
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 that front-load the purpose and add a critical constraint. Every word is informative and there is no 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?
Given the tool's complexity (6 parameters, nested objects, no output schema) and lack of annotations, the description could be more complete. It does not explain what happens to the session after finalization, whether the operation is idempotent, or how the files are updated.
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 description adds only marginal value beyond the schema. It reinforces the human-facing constraint on the summary parameter, but does not significantly enhance understanding of other 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 clearly states the tool's purpose: persisting the outcome of a thinking session into specific Memory Bank files. It distinguishes itself from sibling tools like add_progress_entry and log_decision by bundling multiple updates into a single finalization step, emphasizing it writes to three named files.
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 after a thinking session and mentions that only human-facing summaries are accepted, but does not explicitly state when not to use it or compare it to alternatives. The guidance is clear enough for context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_context_bundleA
Get all Memory Bank files in a single response for quick context loading. Returns all core files (product-context, active-context, progress, decision-log, system-patterns) as a combined JSON object.
| Name | Required | Description | Default |
|---|---|---|---|
| includeEtags | No | Whether to include ETags for each file (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description must cover behavior. It specifies the return format and files but does not mention prerequisites (e.g., initialized memory bank), side effects, or error states. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, 35 words, extremely concise. The first sentence states purpose, the second specifies content and format. No 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?
Given the tool's simplicity (1 optional param, no output schema), the description lists the exact files returned and indicates a combined JSON. Lacks mention of prerequisites, but sufficient for the its straightforward function.
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 baseline is 3. The description does not discuss the includeEtags parameter or its effect; it relies entirely on the schema. No added value.
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 tool retrieves all Memory Bank core files in a single call and lists them explicitly. This distinguishes it from siblings like get_context_digest or get_targeted_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?
Phrase 'for quick context loading' implies the intended scenario, but no explicit comparison with alternatives or conditions when not to use it is provided. Could be improved with direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_context_digestA
Get a compact summary of the Memory Bank for context-limited situations. Returns recent progress entries, current tasks, known issues, and recent decisions.
| Name | Required | Description | Default |
|---|---|---|---|
| maxProgressEntries | No | Maximum number of recent progress entries to include (default: 10) | |
| maxDecisions | No | Maximum number of recent decisions to include (default: 5) | |
| includeSystemPatterns | No | Whether to include system patterns summary (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry the burden. It discloses that the tool returns specific content types, implying a read-only operation, but does not explicitly state idempotency, auth requirements, 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?
Two sentences, front-loaded with purpose and content list. No wasted words; every sentence provides useful 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?
Given no output schema and no annotations, the description sufficiently covers what the tool returns and its intended use. It could detail return structure but is adequate for an agent to decide whether to invoke it.
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 does not add value beyond the schema's parameter descriptions. 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 returns a compact summary of the Memory Bank with specific content types (progress, tasks, issues, decisions), distinguishing it from siblings like get_context_bundle or get_memory_bank_status.
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?
Mentions 'context-limited situations' as the use case, but does not explicitly state when to avoid it or name alternatives. Implied guidance without explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_instructionsA
⚠️ CALL THIS FIRST. Get comprehensive instructions for using the Memory Bank MCP server. Call this tool FIRST at the start of every session to understand the available tools and recommended workflow.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It describes the tool as providing instructions, implying a safe, read-only operation. Adds context about being the first call, which is helpful. Could be improved by explicitly stating it doesn't modify any state.
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 with a warning emoji. Front-loaded with important usage instruction. 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 zero parameters and no output schema, the description fully covers what the tool does (provides instructions) and when to call it. No gaps remain.
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, and schema description coverage is 100%. Baseline score is 4, and description does not need to add parameter details. It focuses on behavior.
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 provides comprehensive instructions for the Memory Bank MCP server and emphasizes it should be called first. This is a specific verb+resource combination that distinguishes it from sibling tools that perform other tasks.
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 says 'CALL THIS FIRST' and 'at the start of every session', providing clear when-to-use guidance. It doesn't mention when not to use it, but that's implicit given its role as a starting point.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_memory_bank_statusB
Check Memory Bank status
| 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 must carry the full burden. It mentions checking status but does not disclose whether the operation is read-only, what data it returns, or any side effects. This lack of detail reduces transparency.
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 with no wasted words. It is appropriately front-loaded 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 no output schema and minimal description, the agent lacks information about what the response contains or how this tool fits into the workflow. The presence of many sibling tools increases the need for contextual guidance, which is absent.
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 tool has no parameters, so the description does not need to add parameter context. The baseline score for 0 parameters is 4, and the description adequately indicates no inputs are required.
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 ('Check') and resource ('Memory Bank status'), distinguishing it from siblings like 'initialize_memory_bank' or 'read_memory_bank_file'. However, 'status' is somewhat vague—it could mean health, version, or last activity.
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 on when to use this tool versus alternatives. An agent must infer its purpose from the name alone, with no explicit context about typical use cases or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_targeted_contextA
Returns a budgeted, minimal "context pack" for a query by using the knowledge graph as an index. Reads only the smallest relevant slices of Memory Bank files instead of dumping full documents. Prefer this over get_context_bundle or batch_read_files for most questions.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query to find relevant context | |
| maxChars | No | Hard ceiling for entire payload in characters (default: 8000) | |
| maxFiles | No | Maximum number of files to excerpt (default: 4) | |
| graphLimit | No | Maximum number of KG entity hits (default: 6) | |
| graphDepth | No | Neighborhood expansion depth (1 or 2, default: 1) | |
| preferActiveContext | No | Prioritize core Memory Bank files in pointer ranking (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It discloses the key behavior: returns budgeted, minimal context, reads only relevant slices, and uses knowledge graph indexing. No side effects are mentioned but none are expected for a read 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 three sentences, each serving a purpose: purpose, behavior, selection guideline. No redundant or 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 the complexity of 6 parameters and no output schema, the description provides enough context about the overall approach and selection criteria. It doesn't detail the return structure, but that is implicitly understood as a context pack.
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 6 parameters have descriptions in the input schema (100% coverage). The description adds overall context about minimality but doesn't add new parameter-specific semantics 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 that the tool returns a minimal context pack using the knowledge graph as an index, reading only relevant slices. It distinguishes itself from siblings like get_context_bundle and batch_read_files by emphasizing minimal and budgeted output.
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 to prefer this tool over get_context_bundle or batch_read_files for most questions, providing clear guidance on when to use it. However, it doesn't mention specific cases when not to use it, which is a minor gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
graph_add_doc_pointerA
Link a knowledge graph entity to a specific Memory Bank file (and optional heading). This helps get_targeted_context find the right file excerpts for a query. The file path is validated before saving.
| Name | Required | Description | Default |
|---|---|---|---|
| entityNameOrId | Yes | Name or ID of the KG entity to link | |
| docPath | Yes | Memory Bank root file path (e.g., "decision-log.md", "system-patterns.md") | |
| heading | No | Optional heading within the file to point to | |
| note | No | Optional note to include in the observation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full transparency burden. It mentions file path validation before saving, which is useful, but does not disclose side effects, destructive potential, or required permissions. The behavioral description is adequate but not rich.
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 that front-load the core action, then provide context and a validation detail. No redundant or 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?
For a tool with no output schema and no annotations, the description adequately covers purpose and operation. It could be more complete by explaining what happens after saving (e.g., persistence, scope), but it is sufficient for an agent to use correctly.
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 baseline is 3. The description adds minimal value: it rephrases `docPath` as 'Memory Bank root file path' with examples but does not provide deeper semantics beyond what the schema already conveys.
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: linking a knowledge graph entity to a Memory Bank file with optional heading. It provides context on how it aids `get_targeted_context` and mentions validation, making it distinct from sibling tools like `graph_add_observation`.
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 entity-file linking but does not explicitly specify when to use versus alternatives (e.g., `graph_add_observation`). However, the context of linking to a file path is clear enough for an agent to infer appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
graph_add_observationB
Add an observation about an entity. Observations are facts, notes, or information associated with entities.
| Name | Required | Description | Default |
|---|---|---|---|
| storeId | No | Optional store ID to target a specific registered store instead of the active one | |
| entity | Yes | Entity name or ID to attach the observation to | |
| text | Yes | The observation text content | |
| source | No | Optional source of the observation | |
| timestamp | No | Optional ISO timestamp (defaults to current time) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden of disclosure. It confirms a write operation but omits behavioral details like idempotency, duplicate handling, required permissions, or error cases. The definition of observations adds minimal context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundancy. Every word adds value—states action and defines the 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 simplicity (no output schema, no nested objects), the description is minimally adequate. It covers the core purpose but lacks details on return value or side effects.
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 baseline is 3. The description adds no extra meaning beyond the schema; parameters like 'storeId', 'source', 'timestamp' are explained only 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 adds an observation about an entity and defines what observations are (facts, notes, information). However, it does not differentiate from sibling tools like graph_add_doc_pointer, which also add something to an entity.
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 lacks any guidance on when to use this tool versus alternatives (e.g., when to add an observation vs. a document pointer or link). No when-not or exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
graph_delete_entityB
Delete an entity from the knowledge graph, or delete a specific observation if observationId is provided.
| Name | Required | Description | Default |
|---|---|---|---|
| storeId | No | Optional store ID to target a specific registered store instead of the active one | |
| entity | Yes | Entity name or ID to delete (or the entity that owns the observation) | |
| observationId | No | If provided, deletes only this observation instead of the entire entity. Observation IDs start with "obs_". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry behavioral disclosure. Indicates mutation (delete) but no details on side effects (e.g., cascading deletes), permissions needed, or success/failure 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?
Single sentence, clear and efficient. Could be slightly more structured (e.g., bullet points) but 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 annotations and no output schema, description covers basic operation but lacks details on return behavior, error conditions, and prerequisites. Adequate but not thorough.
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?
Adds meaning beyond schema: explains observationId deletes only that observation, mentions ID format (obs_), clarifies entity role as owner. Baseline 3 due to 100% schema coverage, plus extra value.
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 an entity or a specific observation, distinguishing between two use cases. It differentiates from sibling tools like graph_add_observation or graph_upsert_entity.
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 on when to use this tool vs. alternatives such as graph_maintain or graph_upsert_entity. 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.
graph_link_entitiesB
Create or remove a directed relationship between two entities. Use action:"unlink" to remove a relationship.
| Name | Required | Description | Default |
|---|---|---|---|
| storeId | No | Optional store ID to target a specific registered store instead of the active one | |
| action | No | Action to perform: "link" (default) to create, "unlink" to remove | |
| from | Yes | Source entity name or ID | |
| relationType | Yes | Type of relationship (e.g., "works_on", "knows", "depends_on") | |
| to | Yes | Target entity name or ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It only mentions creation and removal, but omits details such as what happens on duplicate links, missing entities, or whether the operation is idempotent.
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?
Extremely concise (two sentences) with the primary action front-loaded. Every word is meaningful and there is no 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?
Lacks description of return values or error scenarios, which is important since no output schema is provided. Also fails to explain directedness or any constraints on relationship types, leaving gaps for an agent using this 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 the schema already documents all parameters clearly. The description adds no new semantic information beyond restating the action field's role.
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 creates or removes a directed relationship between two entities. This distinguishes it from sibling graph tools like graph_search or graph_upsert_entity, which have different purposes.
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 linking/unlinking entities by specifying the action parameter, but does not provide explicit guidance on when to use this tool versus other graph manipulation tools, nor does it mention prerequisites or side effects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
graph_maintainC
Perform maintenance operations on the knowledge graph: rebuild snapshot from event log, or compact event history.
| Name | Required | Description | Default |
|---|---|---|---|
| storeId | No | Optional store ID to target a specific registered store instead of the active one | |
| operation | Yes | Maintenance operation: "rebuild" fixes inconsistencies, "compact" reduces file size, "stats" returns graph statistics |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only mentions two of three operations (rebuild, compact) and lacks detail on side effects, permissions, or whether changes are reversible. The 'stats' operation is omitted entirely.
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 12-word sentence, very concise. However, it omits the 'stats' operation, making it slightly incomplete but still 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?
Despite simple tool with rich schema, the description lacks completeness: does not mention the 'stats' operation, prerequisites, or what happens during rebuild/compact. Overall insufficient context for a maintenance 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 baseline is 3, but the description fails to mention the 'stats' operation, which is only in the schema. The description does not add meaning beyond what is already in the input 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 that the tool performs maintenance operations on the knowledge graph, specifically rebuild and compact. It differentiates from sibling tools like graph_search or graph_add_observation which focus on querying or adding data.
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 on when to use this tool versus alternatives. The description does not specify prerequisites or context for choosing between operations like rebuild, compact, or stats.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
graph_open_nodesB
Open specific nodes and their neighborhood. Returns a subgraph with the requested entities and their connections.
| Name | Required | Description | Default |
|---|---|---|---|
| storeId | No | Optional store ID to target a specific registered store instead of the active one | |
| nodes | Yes | Array of entity names or IDs to open | |
| depth | No | Neighborhood depth (1 or 2, default: 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It mentions returning a subgraph but fails to specify if the operation is read-only, if it modifies state, or what happens when nodes are not found. This is insufficient for safe invocation.
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, clear sentence with no unnecessary words. It is appropriately front-loaded 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 lack of an output schema and annotations, the description is minimally adequate. It covers the basic purpose but does not explain return values, error cases, or side effects, which are needed for a complete understanding.
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, so the description adds minimal value. It reiterates that 'nodes' are entity names/IDs and 'depth' is neighborhood depth, which is already in the schema. The description does not enrich the parameters further.
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 (open), the resource (specific nodes and their neighborhood), and the output (subgraph with connections). This effectively distinguishes it from sibling tools like graph_search or graph_delete_entity.
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 no guidance on when to use this tool versus alternatives, such as graph_search. It lacks explicit context for the appropriate use case, leaving the agent without decision-making support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
graph_searchA
Search the knowledge graph for entities and observations matching a query. Supports fuzzy matching on names and observation text.
| Name | Required | Description | Default |
|---|---|---|---|
| storeId | No | Optional store ID to target a specific registered store instead of the active one | |
| query | Yes | Search query string | |
| limit | No | Maximum number of results (default: 10) | |
| includeNeighborhood | No | Whether to include related entities (default: false) | |
| neighborhoodDepth | No | Depth of neighborhood expansion (1 or 2, default: 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must carry the burden. It mentions 'fuzzy matching', which adds some transparency, but does not detail case sensitivity, result ordering, or performance implications.
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 focused sentences with no wasted words; the purpose is front-loaded, making it quick for an agent to parse.
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 more about the result format or behavior. It mentions a limit but not the structure of results, leaving some gaps for an agent.
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 baseline is 3. The description does not add meaning beyond the schema; it only repeats the fuzzy matching aspect already implied by the query 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?
The description clearly states the action 'Search' and the resource 'knowledge graph', specifies it retrieves entities and observations, and mentions fuzzy matching, which differentiates it from mutation tools like graph_upsert_entity or graph_add_observation.
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 on when to use this tool versus siblings like search_memory_bank or other search tools. The description lacks context for choosing it, leaving the agent to infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
graph_upsert_entityB
Create or update an entity in the knowledge graph. If an entity with the same name exists, it will be updated.
| Name | Required | Description | Default |
|---|---|---|---|
| storeId | No | Optional store ID to target a specific registered store instead of the active one | |
| name | Yes | Entity name (human-readable identifier) | |
| entityType | Yes | Type of entity (e.g., "person", "project", "concept") | |
| attrs | No | Optional key-value attributes for the entity |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It explains the upsert semantics (update if name exists), which is the primary behavior. However, it does not mention whether attributes are merged or replaced, what happens on failure, or any side effects. The description provides basic transparency but lacks depth 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?
The description is extremely concise—two short sentences that front-load the core action. Every word adds value, with no repetition or filler. This is an ideal length for quick comprehension.
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 absence of annotations and output schema, the description lacks important context. It does not explain return values, attribute merging behavior, or what 'update' entails (e.g., partial vs full replacement). For a tool that modifies a knowledge graph, more detail is needed to ensure correct 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?
Input schema has 100% coverage with descriptions for all four parameters. The description adds no additional meaning beyond the schema; it only restates the overall behavior. Baseline 3 is appropriate since the schema already handles parameter documentation sufficiently.
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 creates or updates an entity, using the specific verb 'upsert' and resource 'entity'. It mentions the key behavior of updating an existing entity with the same name. However, it does not explicitly differentiate from sibling tools like graph_add_observation or graph_link_entities, which handle related but distinct actions.
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 indicates when to use the tool (to create or update an entity by name) but provides no guidance on when not to use it or what alternatives exist among siblings. For example, it does not mention that for pure creation without overwriting, users might need to check existence first. This omission leaves the agent without clear decision boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
initialize_memory_bankC
Initialize a Memory Bank in the specified directory
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path where the Memory Bank will be initialized |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose side effects but only says 'Initialize a Memory Bank'. It does not mention what happens if the bank already exists, permissions needed, or any destructive potential.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is concise, though very brief; it could expand slightly without losing conciseness.
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 is minimally adequate. However, it lacks context about prerequisites or post-conditions, leaving some gaps for an agent.
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 'path' parameter. The tool description adds no extra semantic value beyond what the schema already provides, 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 verb 'Initialize' and resource 'Memory Bank', with the specific directory. It is specific enough to distinguish from sibling tools like 'set_memory_bank_path' which implies an existing bank, but does not explicitly state this distinction.
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 like 'set_memory_bank_path' or what prerequisites exist. The description gives no context about appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_memory_bank_filesD
List Memory Bank files
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description fails to disclose behavioral traits such as whether the tool is read-only, whether it returns file names or full paths, or how it handles empty memory banks. The agent has no information about side effects or limitations.
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 short (4 words) and under-specified. While concise, it sacrifices essential information, making it insufficient for the agent to understand what the tool returns or how to interpret results.
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 fails to provide necessary context about the tool's output format, filtering, or behavior. The agent cannot fully understand the tool's capabilities from this description alone.
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?
With zero parameters, the input schema is fully covered. The description adds no parameter information, but none is required. Baseline score of 4 is appropriate given the absence 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 'List Memory Bank files' is a tautology of the tool name 'list_memory_bank_files', providing no additional clarity about what files are listed or how they are presented. It does not differentiate from sibling tools like 'list_stores' or 'read_memory_bank_file'.
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 given on when to use this tool versus alternatives such as 'batch_read_files' or 'search_memory_bank'. There is no mention of prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_storesA
List all registered Memory Bank stores. Returns the currently active store and any additional configured stores from the persistent registry.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description explains the return data but does not explicitly confirm the operation is read-only and non-destructive. The word 'list' implies immutability, but not stated outright.
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?
Description is two succinct sentences: first states action, second states output. Front-loaded and concise 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?
Given zero parameters and no output schema, the description adequately covers purpose and output. However, it could optionally mention sorting or state consistency.
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 (schema coverage 100%), so the description adds no parameter detail. Per rule, baseline score is 4.
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 it lists all registered Memory Bank stores and specifies what it returns (active and additional configured stores). It effectively distinguishes from sibling tools like 'select_store'.
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 vs alternatives such as 'select_store' or 'get_memory_bank_status'. Given the many sibling tools, this omission is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_decisionC
Log a decision in the decision log
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Decision title | |
| context | Yes | Decision context | |
| decision | Yes | The decision made | |
| alternatives | No | Alternatives considered | |
| consequences | No | Consequences of the decision |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must describe behavioral traits. It fails to disclose any side effects, persistence behavior, or required state. The minimal description offers no transparency beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at 6 words, with no wasted content. It front-loads the core purpose. However, it is so brief that it may sacrifice clarity for brevity.
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 5 parameters, 3 required, and no output schema, the description is insufficiently complete. It does not explain the tool's integration, output, or any contextual details needed to use it effectively.
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 5 parameters with descriptions, achieving 100% coverage. The tool description adds no additional meaning or examples beyond what the schema provides, so it meets the baseline without adding value.
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 indicates the action (log) and resource (decision/decision log), distinguishing it from sibling tools like add_progress_entry or add_session_note. However, it could be more specific about the scope and purpose of the decision log.
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 no guidance on when to use this tool compared to alternatives, nor does it mention prerequisites, limitations, or exclusions. The agent is left to infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
migrate_file_namingB
Migrate Memory Bank files from camelCase to kebab-case naming convention
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must reveal behavior. It only states migration but does not explain what 'migrate' entails (e.g., renaming files, updating references, creating backups, reversibility, or safety). This lack of detail hinders the agent's understanding of side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no filler. However, it could be slightly more informative without losing conciseness (e.g., mentioning it renames files).
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 parameters, no output schema, and no annotations, the description captures the core purpose but leaves gaps about behavior, side effects, and prerequisites. For a tool with zero parameters, completeness is moderate.
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 no parameters, so the description cannot add parameter-level semantics. The baseline for zero parameters is 4, and the description correctly summarizes the tool's action without needing to detail 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 explicitly states the action ('Migrate'), the resource ('Memory Bank files'), and the specific transformation ('from camelCase to kebab-case naming convention'). It clearly distinguishes from sibling tools, none of which mention naming migration.
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, prerequisites, or when not to use it. There is no mention of alternatives or required conditions (e.g., ensuring no concurrent file operations).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_memory_bank_fileA
Read a file from the Memory Bank. Returns content with ETag for optimistic concurrency control.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | Name of the file to read | |
| includeEtag | No | Whether to include ETag in response (default: true) |
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 the tool returns content with an ETag for optimistic concurrency, which adds value. However, it does not mention error handling or behavior for missing files, leaving some gaps.
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 two short sentences, no redundant words, and front-loads the primary action. Every sentence provides essential 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 read tool with no output schema, the description adequately covers its purpose and a key behavioral detail (ETag). It does not explain return format or error cases, but given the tool's simplicity, this is reasonable.
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 already describes both parameters clearly (100% coverage). The description adds marginal value by implying the role of includeEtag via ETag mention, but does not significantly enhance understanding 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 'Read' and the resource 'a file from the Memory Bank', which is specific and directly distinguishes it from batch or write operations. The mention of ETag for concurrency control adds precision.
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 use for reading a single file, but provides no explicit guidance on when to prefer this over sibling tools like batch_read_files or write_memory_bank_file. The context is clear but lacks exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_backupA
Restore the Memory Bank from a specified backup. By default, creates a backup of the current state before restoring.
| Name | Required | Description | Default |
|---|---|---|---|
| backupId | Yes | The backup ID (folder name) to restore from. Use create_backup with listOnly:true to see available backups. | |
| createPreRestoreBackup | No | Whether to create a backup of the current state before restoring (default: true) |
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 mentions the default backup creation, which is a safety behavior, but does not explicitly state that restoration overwrites the current state or is destructive.
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 extraneous information. Every word is meaningful.
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), the description covers the essential behavior and a key default. It could mention that restoration overwrites the current memory bank, but overall it is sufficiently complete for an agent to understand.
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% description coverage, so the baseline is 3. The tool description adds no new parameter information beyond what is already in the schema, but it does not mislead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Restore the Memory Bank from a specified backup.' It uses a specific verb and identifies the resource, and distinguishes itself from the sibling 'create_backup' by implying this is the restore counterpart.
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 does not explicitly state when to use or not use this tool, nor does it mention alternatives. However, the default behavior of creating a pre-restore backup provides implicit guidance on safe usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_memory_bankC
Search across all Memory Bank files with full-text search
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query string | |
| files | No | Optional list of specific files to search (e.g., ["progress.md", "decision-log.md"]). If not provided, searches all core files. | |
| maxResults | No | Maximum number of results to return (default: 20) | |
| caseSensitive | No | Whether search is case-sensitive (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavior, but it only states it performs full-text search. It does not mention that the operation is read-only, how results are returned, or any limitations like performance or file size.
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, clear sentence that is front-loaded with the key action. 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?
For a search tool with four parameters and no output schema, the description does not explain return format, pagination, or how to interpret results. It is incomplete given the 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 100% description coverage for all four parameters, so the description adds no additional meaning beyond what is already in the schema. 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 searches across all Memory Bank files with full-text search, specifying the verb and resource. However, it does not differentiate from the sibling 'graph_search' which might be an alternative search method.
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 on when to use this tool versus alternatives like graph_search or when not to use it. The description lacks context for optimal usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
select_storeB
Manage Memory Bank stores. Actions: select (switch active store), register (add to registry), unregister (remove from registry). Default action is "select" for backward compatibility.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Action to perform: "select" (default), "register", or "unregister" | |
| path | No | Absolute path to the project root (required for select/register) | |
| storeId | No | Store ID (required for register/unregister, optional for select) | |
| kind | No | Kind of store (for register action, default: "local") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose side effects, reversibility, or prerequisites. The description only lists actions without explaining consequences (e.g., what happens to current active store, registration persistence).
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-load the purpose and enumerate actions. 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?
For a tool with 4 parameters and no output schema, the description is too brief. It lacks details on action semantics, usage context, and typical workflows, making it insufficient for a complex multifunction 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?
Input schema covers all parameters with 100% description coverage, so the description's added value is limited. It notes the default action, which is helpful but not transformative.
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 manages Memory Bank stores with three distinct actions (select, register, unregister), specifying a default for backward compatibility. This distinguishes it from sibling tools like list_stores or initialize_memory_bank.
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 on when to use each action or when not to use the tool altogether. Alternative tools are not mentioned, leaving the agent without decision support for choosing between e.g., select vs. initialize_memory_bank.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sequential_thinkingA
Record a numbered thinking step for structured reasoning, or reset session history. Use this to break complex problems into sequential steps with optional branching and revision. The raw thought text is NOT returned — only metadata. Call finalize_thinking_session when done to persist outcomes to Memory Bank. Set reset:true to clear thinking history instead of recording a thought.
| Name | Required | Description | Default |
|---|---|---|---|
| thought | No | The thinking step content (will NOT be returned in the response). Not required if reset:true. | |
| nextThoughtNeeded | No | Whether another thinking step is needed after this one. Not required if reset:true. | |
| thoughtNumber | No | Current thought number (>= 1). Not required if reset:true. | |
| totalThoughts | No | Estimated total number of thoughts (>= 1, auto-adjusts upward). Not required if reset:true. | |
| isRevision | No | Whether this thought revises a previous one | |
| revisesThought | No | The thought number being revised (when isRevision is true) | |
| branchFromThought | No | The thought number to branch from | |
| branchId | No | Identifier for the branch | |
| needsMoreThoughts | No | Explicit signal that the total should be increased | |
| sessionId | No | Session identifier to isolate thinking state across tasks | |
| reset | No | If true, resets the session(s) instead of recording a thought. If sessionId is provided, resets only that session. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses key behavior: 'The raw thought text is NOT returned — only metadata.' It explains the reset mode's effect based on sessionId and describes branching and revision capabilities. This adds significant transparency beyond the input schema.
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 plus a final note, all front-loaded with key information. Every sentence adds value: purpose, usage guidance, behavioral note, and reset instruction. No fluff or 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?
Given the tool's complexity (11 params, branching, revision, session management) and no output schema, the description covers the two modes, behavioral constraints, and persistence workflow. It lacks details about what 'metadata' is returned, but the overall completeness is strong.
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 schema already documents each parameter. The description provides overarching context (e.g., thought not returned, reset implications) but does not add meaning substantially beyond the inline schema descriptions. 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 explicitly states the tool's dual purpose: 'Record a numbered thinking step for structured reasoning, or reset session history.' It clearly distinguishes itself from the sibling tool 'finalize_thinking_session' by mentioning it for persisting outcomes. The verb 'Record' and resource 'thinking step' are 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 provides explicit guidance: 'Use this to break complex problems into sequential steps' and 'Set reset:true to clear thinking history instead of recording a thought.' It also directs the agent to 'Call finalize_thinking_session when done to persist outcomes to Memory Bank,' clearly differentiating from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_memory_bank_pathB
Set a custom path for the Memory Bank
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Custom path for the Memory Bank. If not provided, the current directory will be used. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose all behavioral traits. It only states 'Set' without indicating persistence, scope (global vs. session), side effects (e.g., overriding existing path), or any required prior steps. This is insufficient for an AI agent.
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 short (one sentence). While concise, it lacks structure or additional detail that would improve usability. It is not wasteful but is borderline under-specified.
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 param, no output schema), the description still fails to cover behavioral aspects like what happens if the path is invalid, whether it persists, or how it interacts with other memory bank operations. The context is incomplete for agent decision-making.
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 (one parameter documented). The description adds the word 'custom' but otherwise does not enhance understanding beyond the schema's description. 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 ('Set') and resource ('custom path for the Memory Bank'). It distinguishes from siblings like 'initialize_memory_bank' and 'get_memory_bank_status', though it could be more precise about what 'path' entails.
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 no guidance on when to use this tool versus alternatives, such as 'initialize_memory_bank' for initial setup or 'select_store' for store selection. It implies it is used to change the path but does not explain prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
switch_modeA
Switch to a specific mode, get current mode info, or manage UMB (Update Memory Bank) state. Call with no parameters to get current mode. Set umb:true to activate UMB, umb:false to deactivate.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Name of the mode to switch to (architect, ask, code, debug, test). Omit to get current mode info. | |
| umb | No | Set true to activate UMB mode, false to deactivate UMB mode | |
| umbCommand | No | UMB command text (when umb: true). If not provided, defaults to "UMB" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It discloses the ability to switch mode, get current mode, and manage UMB, but does not detail side effects of mode switching, potential permissions, or rate limits. The UMB management is explained adequately, but overall behavior could be more 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 two sentences, front-loaded with the primary purpose, and each sentence adds unique value. 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?
For a tool with 3 parameters and no output schema, the description covers the main use cases but omits what the tool returns (e.g., format of current mode info) and any prerequisites or side effects. 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?
Schema description coverage is 100%, so the baseline is 3. The description adds context about calling with no parameters and setting UMB values, but this largely mirrors the schema. No new semantic meaning 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 uses a clear verb 'Switch' and specifies the resources: specific mode, current mode info, and UMB state. It distinguishes between these three use cases, and no sibling tool appears to handle mode switching or UMB management, making the purpose distinct.
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 for when to call with no parameters to get current mode, and when to set UMB. However, it does not explicitly mention when not to use this tool or compare it to alternatives, which would improve guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
track_progressC
Track progress and update Memory Bank files
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action performed (e.g., 'Implemented feature', 'Fixed bug') | |
| description | Yes | Detailed description of the progress | |
| updateActiveContext | No | Whether to update the active context file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It mentions updating Memory Bank files but does not specify which files, the effect of updateActiveContext, or whether the operation is destructive.
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 very concise (6 words), but it sacrifices clarity for brevity. It is not front-loaded with key 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?
Given no annotations, no output schema, and 3 parameters, the description is insufficient. It does not provide enough context for an agent to understand the tool's role in the memory bank 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?
Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond what the schema already 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 'Track progress and update Memory Bank files' provides a general purpose but lacks specificity. It does not clearly differentiate from sibling tools like add_progress_entry or update_tasks.
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 on when to use this tool vs alternatives such as add_progress_entry or add_session_note. The description does not mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_active_contextC
Update the active context file
| Name | Required | Description | Default |
|---|---|---|---|
| tasks | No | List of ongoing tasks | |
| issues | No | List of known issues | |
| nextSteps | No | List of next steps |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It fails to disclose whether updates are destructive, append vs. replace, or require any prerequisites. The single sentence offers no behavioral insight beyond the action.
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?
At only 5 words, the description is extremely terse. While concise, it omits necessary details, making it under-specified rather than efficiently structured.
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 3 optional parameters and no output schema, the description should explain how parameters relate, default behavior, and the concept of 'active context'. It provides none of this, leaving the agent underinformed.
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 (tasks, issues, nextSteps) have descriptions in the schema (100% coverage). The description adds no additional meaning beyond what the schema already 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?
The description states the tool updates the 'active context file', providing a verb and resource. However, it lacks specificity about what fields are updated (tasks, issues, nextSteps) and does not differentiate from sibling tools like 'update_tasks', which may have overlapping functionality.
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 (e.g., update_tasks, add_progress_entry). The description offers no 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.
update_tasksB
Update the current tasks list in active context. Can add, remove, or replace tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| add | No | Tasks to add to the current list | |
| remove | No | Tasks to remove (exact match or substring match) | |
| replace | No | If provided, replaces the entire tasks list |
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 mentions the ability to add, remove, or replace tasks but does not disclose side effects, error conditions, or safety information (e.g., whether changes are reversible). The description is too brief to fully inform an agent about 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?
The description is two sentences with no redundancy or extraneous detail. The purpose is front-loaded in the first sentence, making it quick to parse.
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 lack of output schema and annotations, the description is somewhat incomplete. It does not clarify behavior when multiple parameters are provided (e.g., add and replace together) or explain how the current tasks list is accessed. However, for a simple tool, it provides minimally sufficient information.
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 detailed descriptions for all three parameters. The description adds minimal additional meaning beyond the schema (e.g., summarizing the operations). Baseline 3 is appropriate as the schema already provides adequate parameter info.
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 'update' and the resource 'current tasks list', and lists specific operations (add, remove, replace). It is specific and understandable, though it does not explicitly distinguish from sibling tools like track_progress or update_active_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?
No guidance is provided on when to use this tool versus alternatives (e.g., add_progress_entry). No when-not-to-use or prerequisite information is given, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_memory_bank_fileA
Write to a Memory Bank file. Supports optimistic concurrency control via ifMatchEtag.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | Name of the file to write | |
| content | Yes | Content to write to the file | |
| ifMatchEtag | No | Optional ETag from a previous read. If provided, write will only succeed if the file has not been modified since the read. |
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 optimistic concurrency support but does not mention side effects, overwrite behavior, or success/failure response.
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 then key behavior. No unnecessary words or 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?
Lacks details on error conditions, file creation behavior, or output format. With no output schema and no annotations, the description leaves gaps for a write 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 parameters are already well documented. The description adds minimal value beyond the schema, repeating the concurrency note from the ifMatchEtag 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?
Clearly states the verb 'Write' and resource 'Memory Bank file', distinguishing it from sibling tools like batch_write_files. Mention of optimistic concurrency adds specificity.
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 vs alternatives such as batch_write_files or create_backup. The concurrency feature is implied but not contrasted with others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
36 tool updates
v1.3.0- Added
add_progress_entry - Added
add_session_note - Added
batch_read_files - Added
batch_write_files - Added
create_backup - Added
debug_mcp_config - Added
finalize_thinking_session - Added
get_context_bundle - Added
get_context_digest - Added
get_instructions - Added
get_memory_bank_status - Added
get_targeted_context - Added
graph_add_doc_pointer - Added
graph_add_observation - Added
graph_delete_entity - Added
graph_link_entities - Added
graph_maintain - Added
graph_open_nodes - Added
graph_search - Added
graph_upsert_entity - Added
initialize_memory_bank - Added
list_memory_bank_files - Added
list_stores - Added
log_decision - Added
migrate_file_naming - Added
read_memory_bank_file - Added
restore_backup - Added
search_memory_bank - Added
select_store - Added
sequential_thinking - Added
set_memory_bank_path - Added
switch_mode - Added
track_progress - Added
update_active_context - Added
update_tasks - Added
write_memory_bank_file
TDQS
Each tool targets a specific operation (e.g., adding progress, reading files, managing knowledge graph) with detailed descriptions that clearly differentiate their purposes. Overlap is minimal and well-documented.
All tools follow a consistent verb_noun pattern in snake_case (e.g., add_progress_entry, batch_read_files, graph_upsert_entity), making the set predictable and easy to navigate.
36 tools is well above the typical well-scoped range of 3-15, making the surface feel heavy. While many tools are individually useful, the count suggests the server may be trying to cover too many subdomains.
Core CRUD operations for files and knowledge graph, progress tracking, backups, and search are covered. However, there is no explicit file deletion tool, which represents a minor gap in an otherwise complete surface.
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, portable memory for AI assistants — your private memory graph, from any MCP client.
Cloud-hosted MCP server for durable AI memory
- EngramOAuthapp.getengram
Persistent, verbatim, searchable memory for AI assistants — one memory across every MCP client.
111 One memory, every AI. A shared, user-owned markdown memory your AI clients read and write over MCP.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server that gives AI coding assistants persistent memory across sessions with chain-based project tracking, tickets, and structured handoffs.GPL 3.0
- FlicenseNot gradedqualityDmaintenanceAn advanced MCP server that gives AI assistants persistent memory with machine-learning-powered semantic understanding, enabling branching memory, semantic search, and project analysis.-
- AlicenseNot gradedqualityDmaintenanceA local MCP memory server that gives AI assistants durable project memory across coding sessions, storing context, changes, and decisions.31MIT
- AlicenseNot gradedqualityBmaintenanceOpen-source MCP server that gives AI coding assistants persistent memory, recording conversations and file changes to build user profiles and provide context across sessions.19MIT
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/diaz3618/memory-bank-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server