Skip to main content
Glama

具有远程 SSH 支持的记忆库 MCP 🧠

NPM 版本 许可证:MIT 测试

用于管理记忆库的模型上下文协议 (MCP) 服务器,允许 AI 助手跨会话存储和检索信息。现已提供远程服务器支持!

概述📋

记忆库服务器为 AI 助手提供了一套与记忆库交互的工具和资源。记忆库是结构化的信息存储库,有助于维护上下文并跟踪多个会话的进度。

Related MCP server: MCP Memento

特色✨

  • 存储库管理:初始化、查找和管理存储库

  • 文件操作:读取和写入存储库中的文件

  • 进度跟踪:跟踪进度并更新记忆库文件

  • 决策记录:记录重要决策的背景和替代方案

  • 主动上下文管理:维护和更新主动上下文信息

  • 模式支持:检测并使用 .clinerules 文件实现特定模式的行为

  • UMB 命令:使用 UMB 命令临时更新存储库文件

  • 强大的错误处理:优雅地处理错误并在可能的情况下继续操作

  • 状态前缀系统:立即了解存储库的运行状态

  • 远程服务器支持:使用 SSH 将存储库存储在远程服务器上

目录结构📁

默认情况下,记忆库使用项目根目录中的memory-bank目录。当您使用--path选项指定项目路径时,记忆库将在<project_path>/memory-bank中创建或访问。

您可以使用--folder选项自定义记忆库文件夹的名称。例如,如果您设置了--folder custom-memory ,则记忆库将在<project_path>/custom-memory下创建或访问。

有关自定义文件夹名称的更多详细信息,请参阅自定义存储库文件夹名称

最近的改进🛠️

  • 远程服务器支持:通过 SSH 将您的记忆库存储在远程服务器上

  • 可自定义文件夹名称:您现在可以为存储库指定自定义文件夹名称

  • 一致的目录结构:Memory Bank 现在始终使用项目根目录中配置的文件夹名称

  • 增强初始化:即使 .clinerules 文件不存在,存储库现在也能工作

  • 更好的路径处理:改进了绝对路径和相对路径的处理

  • 改进的目录检测:更好地检测现有的存储库目录

  • 更强大的错误处理:优雅地处理与 .clinerules 文件相关的错误

有关更多详细信息,请参阅存储库错误修复

安装🚀

# Install from npm
npm install @aakarsh-sasi/memory-bank-mcp

# Or install globally
npm install -g @aakarsh-sasi/memory-bank-mcp

# Or run directly with npx (no installation required)
npx @aakarsh-sasi/memory-bank-mcp

与 npx 一起使用

您可以使用 npx 直接运行 Memory Bank MCP,无需安装:

# Run with default settings
npx @aakarsh-sasi/memory-bank-mcp

# Run with specific mode
npx @aakarsh-sasi/memory-bank-mcp --mode code

# Run with custom project path
npx @aakarsh-sasi/memory-bank-mcp --path /path/to/project

# Run with custom folder name
npx @aakarsh-sasi/memory-bank-mcp --folder custom-memory-bank

# Run with remote server
npx @aakarsh-sasi/memory-bank-mcp --remote --remote-user username --remote-host example.host.com --remote-path /home/username/memory-bank

# Show help
npx @aakarsh-sasi/memory-bank-mcp --help

有关使用 npx 的更多详细信息,请参阅npx-usage.md

使用远程服务器模式🌐

记忆库 MCP 现支持通过 SSH 将记忆库存储到远程服务器。这样您就可以:

  1. 集中管理你的记忆库:将所有项目记忆保存在一个地方

  2. 共享存储库:多个用户可以访问同一个存储库

  3. 持久存储:即使本地机器被擦除,您的存储库仍会保留

远程服务器要求

  • SSH 访问远程服务器

  • SSH密钥认证设置(不支持密码认证)

  • 具有足够的权限来创建/修改指定目录中的文件

SSH 密钥设置

要为远程服务器设置 SSH 密钥认证:

  1. 生成新的 SSH 密钥对(如果您还没有):

    # Using modern Ed25519 algorithm (recommended)
    ssh-keygen -t ed25519 -C "your_email@example.com"
    
    # OR using RSA if required for compatibility
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  2. 启动 SSH 代理并添加您的密钥

    # Start the agent
    eval "$(ssh-agent -s)"
    
    # Add your key
    ssh-add ~/.ssh/id_ed25519  # or ~/.ssh/id_rsa if you used RSA
  3. 将您的公钥复制到远程服务器

    # Easiest method (if available)
    ssh-copy-id username@your-remote-host.com
    
    # Alternative: manually copy your public key
    cat ~/.ssh/id_ed25519.pub  # copy the output

    然后将密钥粘贴到远程服务器上的~/.ssh/authorized_keys文件中。

  4. 测试您的连接

    ssh username@your-remote-host.com

    您应该能够无需密码登录。

有关更详细的 SSH 密钥设置说明,请参阅我们的SSH 密钥指南

远程服务器配置

要使用远程服务器模式,您需要提供以下参数:

npx @aakarsh-sasi/memory-bank-mcp --remote \
  --ssh-key ~/.ssh/your_ssh_key \
  --remote-user username \
  --remote-host example.host.com \
  --remote-path /home/username/memory-bank

默认情况下,SSH 密钥位于~/.ssh/your_ssh_key 。您可以使用--ssh-key选项指定其他密钥。

远程服务器示例

# Using with a server at example.host.com
npx @aakarsh-sasi/memory-bank-mcp --remote \
  --remote-user username \
  --remote-host example.host.com \
  --remote-path /home/username/memory-bank

在 Cursor 中配置

Cursor 是一款 AI 驱动的代码编辑器,支持模型上下文协议 (MCP)。要在 Cursor 中配置内存条 MCP,请执行以下操作:

  1. 将存储库 MCP 与 npx 结合使用

    无需全局安装包。您可以直接使用 npx:

    # Verify npx is working correctly
    npx @aakarsh-sasi/memory-bank-mcp --help
  2. 打开光标设置

    • 前往“设置”(⚙️) > 扩展程序 > MCP

    • 点击“添加 MCP 服务器”

  3. 配置 MCP 服务器

    • 名称:记忆库 MCP

    • 命令:npx

    • 参数@aakarsh-sasi/memory-bank-mcp --mode code (或根据需要的其他模式)

    对于远程服务器:

    • 参数@aakarsh-sasi/memory-bank-mcp --mode code --remote --remote-user username --remote-host example.host.com --remote-path /home/username/memory-bank

  4. 保存并激活

    • 点击“保存”

    • 启用 MCP 服务器

  5. 验证连接

    • 在 Cursor 中打开一个项目

    • 记忆库 MCP 现在应该处于活动状态并可用于你的 AI 交互

有关 Cursor 的详细说明和高级用法,请参阅cursor-integration.md

与 Cursor 一起使用

配置完成后,您可以通过 AI 命令与 Cursor 中的 Memory Bank MCP 进行交互:

  • 初始化内存库/mcp memory-bank-mcp initialize_memory_bank path=./memory-bank

  • 跟踪进度/mcp memory-bank-mcp track_progress action="Feature Implementation" description="Implemented feature X"

  • 日志决策/mcp memory-bank-mcp log_decision title="API Design" context="..." decision="..."

  • 切换模式/mcp memory-bank-mcp switch_mode mode=code

MCP 模式及其用法

Memory Bank MCP 支持不同的操作模式,以优化特定任务的 AI 交互:

可用模式

  1. 代码模式👨‍💻

    • 重点:代码实施和开发

    • 用法: npx @aakarsh-sasi/memory-bank-mcp --mode code

    • 最适合:编写、重构和优化代码

  2. 建筑师模式🏗️

    • 重点:系统设计和架构

    • 用法: npx @aakarsh-sasi/memory-bank-mcp --mode architect

    • 最适合:规划项目结构、设计组件和制定架构决策

  3. 提问模式

    • 重点:回答问题并提供信息

    • 用法: npx @aakarsh-sasi/memory-bank-mcp --mode ask

    • 最适合:获取解释、澄清和信息

  4. 调试模式🐛

    • 重点:故障排除和问题解决

    • 用法: npx @aakarsh-sasi/memory-bank-mcp --mode debug

    • 最适合:查找和修复错误,分析问题

  5. 测试模式

    • 重点:测试和质量保证

    • 用法: npx @aakarsh-sasi/memory-bank-mcp --mode test

    • 最适合:编写测试、测试驱动开发

切换模式

您可以通过多种方式切换模式:

  1. 启动服务器时

    npx @aakarsh-sasi/memory-bank-mcp --mode architect
  2. 在会话期间

    memory-bank-mcp switch_mode mode=debug
  3. 在光标处

    /mcp memory-bank-mcp switch_mode mode=test
  4. 使用 .clinerules 文件:在您的项目中创建一个.clinerules-[mode]文件,以便在检测到该文件时自动切换到该模式。

记忆库 MCP 的工作原理

Memory Bank MCP 基于模型上下文协议 (MCP) 构建,该协议使 AI 助手能够与外部工具和资源进行交互。其工作原理如下:

核心组件🧩

  1. 记忆库:以 markdown 文件形式存储的结构化信息存储库:

    • product-context.md :项目总体信息和目标

    • active-context.md :当前状态、正在进行的任务和后续步骤

    • progress.md :项目更新和里程碑的历史记录

    • decision-log.md :记录重要决策的背景和理由

    • system-patterns.md :项目中使用的架构和代码模式

  2. MCP 服务器:为 AI 助手提供与记忆库交互的工具和资源:

    • 作为独立进程运行

    • 通过MCP协议与AI助手进行通信

    • 提供一套用于管理存储库的工具

  3. 模式系统:支持不同的操作模式:

    • code :关注代码实现

    • ask :专注于回答问题

    • architect :专注于系统设计

    • debug :专注于调试问题

    • test :专注于测试

数据流

  1. 初始化:AI助手连接到MCP服务器并初始化记忆库

  2. 工具调用:AI助手调用MCP服务器提供的工具来读取/写入Memory Bank文件

  3. 上下文维护:记忆库在会话期间维护上下文,使人工智能能够回忆以前的决策和进展

记忆库结构📂

记忆库使用标准化结构来组织信息:

  • 产品背景:项目概述、目标、技术和架构

  • 活动上下文:当前状态、正在进行的任务、已知问题和后续步骤

  • 进度:按时间顺序记录项目更新和里程碑

  • 决策日志:记录重要决策的背景、替代方案和后果

  • 系统模式:架构模式、代码模式和文档模式

高级功能🚀

  • UMB 命令:在会话期间临时更新存储库文件,但不提交更改

  • 模式检测:根据用户输入自动检测和切换模式

  • 文件迁移:在不同文件命名约定之间迁移的工具

  • 语言标准化:所有记忆库文件均以英文生成,以保持一致性

版本控制📌

该项目遵循语义化版本控制,并使用约定式提交来记录提交信息。当更改合并到主分支时,版本会自动升级,并根据提交信息生成变更日志。

  • 当发生重大更改时,主要版本会被提升(提交带有BREAKING CHANGE!:的消息)

  • 添加新功能时,次要版本会升级(提交带有feat:feat(scope):的消息)

  • 补丁版本因所有其他更改(错误修复、文档等)而提升。

有关更改的完整历史记录,请参阅CHANGELOG.md文件。

用法📝

作为命令行工具💻

# Initialize a Memory Bank
memory-bank-mcp initialize_memory_bank path=./memory-bank

# Track progress
memory-bank-mcp track_progress action="Feature Implementation" description="Implemented feature X"

# Log a decision
memory-bank-mcp log_decision title="API Design" context="..." decision="..."

# Switch mode
memory-bank-mcp switch_mode mode=code

作为图书馆📚

import { MemoryBankServer } from "@aakarsh-sasi/memory-bank-mcp";

// Create a new server instance
const server = new MemoryBankServer();

// Start the server
server.run().catch(console.error);

贡献👥

请参阅CONTRIBUTING.md了解我们的行为准则和提交拉取请求的流程的详细信息。

许可证📄

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。

记忆库状态系统🚦

存储库 MCP 实现了状态前缀系统,可以立即查看存储库的运行状态:

状态指示器

使用 Memory Bank MCP 的 AI 助手的每一个响应都以以下状态指示器之一开始:

  • [MEMORY BANK: ACTIVE] :记忆库可用并用于提供情境感知响应

  • [MEMORY BANK: INACTIVE] :存储库不可用或配置不正确

  • [MEMORY BANK: UPDATING] :存储库当前正在更新(在 UMB 命令执行期间)

该系统确保用户始终知道 AI 助手是在完全情境感知下还是在有限信息下运行。

好处

  • 透明度:用户始终知道人工智能是否有权访问完整的项目上下文

  • 故障排除:当存储库配置不正确时,立即显现出来

  • 语境意识:帮助用户理解为什么某些回应可能缺乏历史背景

有关详细信息,请参阅存储库状态前缀系统

Available Tools

15 tools
complete_umbC

Completes the Update Memory Bank (UMB) process

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.2/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It fails to describe what 'completing' entails—whether it's a read-only operation, a destructive update, requires specific permissions, has side effects, or what the expected outcome is. This leaves critical behavioral traits unspecified for a tool named 'complete_umb'.

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

Conciseness5/5

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

The description is a single, efficient sentence with no wasted words. It's front-loaded and directly states the tool's action, making it highly concise and well-structured for its limited content.

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

Completeness2/5

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

Given the complexity implied by 'complete_umb' (suggesting a multi-step process) and the lack of annotations or output schema, the description is incomplete. It doesn't explain what 'UMB' is, what 'completing' it achieves, or how it relates to sibling tools, leaving significant gaps for the agent to understand the tool's role and effects.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description doesn't need to add parameter details, and it appropriately avoids discussing nonexistent parameters, earning a baseline score of 4 for not introducing confusion.

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

Purpose2/5

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

The description 'Completes the Update Memory Bank (UMB) process' is a tautology that restates the tool name 'complete_umb' with minimal elaboration. It specifies a verb ('completes') and resource ('Update Memory Bank process'), but lacks detail on what the UMB process entails or what 'completing' it actually does, making it vague and uninformative beyond the name itself.

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

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'initialize_memory_bank', 'process_umb_command', and 'update_active_context', it's unclear what distinguishes 'complete_umb' from these related operations, leaving the agent without context for tool selection.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
verboseNoWhether to include detailed information

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

No guidance on when to use this tool 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.

get_current_modeC

Gets information about the current mode

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'gets information', implying a read-only operation, but doesn't specify what information is returned (e.g., mode name, status, settings), whether it requires permissions, or if it has side effects like logging. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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

Conciseness4/5

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

The description is a single, efficient sentence: 'Gets information about the current mode'. It's front-loaded with the core action and resource, with no wasted words. However, it could be more structured by including key details like the type of information returned, but given its brevity, it's appropriately concise.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete for understanding the tool's functionality. It doesn't explain what 'information' is returned (e.g., a mode identifier, configuration details), how it might be used in context with sibling tools, or any behavioral traits. For a tool with no structured data to rely on, the description should provide more context to be fully helpful.

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

Parameters4/5

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

The tool has 0 parameters, and schema description coverage is 100% (as there are no parameters to describe). The description doesn't need to add parameter semantics beyond what the schema provides, so it meets the baseline expectation. No additional parameter information is required or provided.

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

Purpose2/5

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

The description 'Gets information about the current mode' is a tautology that essentially restates the tool name 'get_current_mode'. While it clarifies the verb 'gets' and resource 'current mode', it doesn't specify what type of information is retrieved or how this differs from sibling tools like 'switch_mode' or 'debug_mcp_config'. The purpose is stated but lacks specificity and differentiation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. With sibling tools like 'switch_mode' (which likely changes modes) and 'debug_mcp_config' (which might inspect configuration), the description doesn't indicate scenarios where retrieving current mode information is preferred or necessary. There's no mention of prerequisites, timing, or exclusions.

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

get_memory_bank_statusC

Check Memory Bank status

ParametersJSON Schema
NameRequiredDescriptionDefault
random_stringYesDummy parameter for no-parameter tools

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action ('check') without detailing what the check entails (e.g., read-only operation, potential side effects, error handling, or response format). For a status-checking tool with zero annotation coverage, this is a significant gap in transparency.

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

Conciseness5/5

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

The description is extremely concise ('Check Memory Bank status'), consisting of a single, front-loaded sentence that directly states the tool's purpose without unnecessary words. Every part of the description earns its place by conveying the core action and target efficiently.

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

Completeness2/5

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

Given the complexity of a status-checking tool with no annotations and no output schema, the description is incomplete. It lacks details on what 'status' includes, how results are returned, or any behavioral context, making it inadequate for an agent to understand the tool's full scope and usage without additional inference.

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

Parameters4/5

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

The input schema has 1 parameter with 100% description coverage, documenting it as a 'Dummy parameter for no-parameter tools'. The description does not add any parameter-specific information beyond this, which is acceptable since the schema fully covers the parameter. With 0 meaningful parameters, a baseline of 4 is appropriate as the description need not compensate.

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

Purpose3/5

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

The description 'Check Memory Bank status' clearly states the action (check) and target (Memory Bank status), avoiding tautology. However, it lacks specificity about what 'status' entails (e.g., operational state, usage metrics, or configuration) and does not differentiate from siblings like 'get_current_mode' or 'debug_mcp_config', which might overlap in monitoring functions.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. With siblings like 'get_current_mode' and 'debug_mcp_config' that could relate to system status, the description fails to indicate context, prerequisites, or exclusions, leaving the agent to infer usage based on tool names alone.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath where the Memory Bank will be initialized

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must 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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like '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_filesC

List Memory Bank files

ParametersJSON Schema
NameRequiredDescriptionDefault
random_stringYesDummy parameter for no-parameter tools

TDQS

C2.2/5.0
Behavior1/5

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 only states the action 'List Memory Bank files', failing to cover critical aspects such as whether this is a read-only operation, potential side effects, authentication needs, rate limits, or output format. This is inadequate for a tool with no annotation support, leaving the agent uninformed about its behavior.

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

Conciseness5/5

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

The description is extremely concise at three words, with no wasted text. It is front-loaded and directly states the tool's action without unnecessary elaboration, making it efficient for quick understanding. However, this conciseness comes at the cost of completeness, but it scores high on this dimension alone.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It does not explain what 'List' entails (e.g., format, pagination, filtering) or how it relates to sibling tools. For a tool with no structured support, more context is needed to guide the agent effectively, making this insufficient for reliable use.

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

Parameters4/5

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

The input schema has 1 parameter with 100% description coverage, documenting it as a 'Dummy parameter for no-parameter tools'. The description adds no parameter information, but since the schema fully covers the single parameter and it's a dummy, this is acceptable. The baseline is 3 for high schema coverage, but the dummy nature elevates it as no meaningful parameters need explanation.

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

Purpose2/5

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

The description 'List Memory Bank files' restates the tool name 'list_memory_bank_files' with minimal elaboration, making it tautological. It specifies the verb 'List' and resource 'Memory Bank files', but lacks differentiation from sibling tools like 'read_memory_bank_file' or details on scope (e.g., all files, filtered). This is a basic restatement that provides little additional insight.

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

Usage Guidelines1/5

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

The description offers no guidance on when to use this tool versus alternatives. It does not mention sibling tools such as 'read_memory_bank_file' for reading specific files or 'get_memory_bank_status' for status checks, nor does it provide context like prerequisites or exclusions. This leaves the agent without direction on appropriate usage scenarios.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
alternativesNoAlternatives considered
consequencesNoConsequences of the decision
contextYesDecision context
decisionYesThe decision made
titleYesDecision title

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must 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.

Conciseness4/5

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.

Completeness2/5

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

Given the tool has 5 parameters, 3 required, 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool 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

ParametersJSON Schema
NameRequiredDescriptionDefault
random_stringYesDummy parameter for no-parameter tools

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the migration action but lacks critical details: whether this is a destructive operation (e.g., renames files in place), requires specific permissions, handles errors, or provides progress feedback. For a tool that likely modifies file names, this omission is significant.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without any fluff or redundancy. It is appropriately sized and front-loaded, making it easy for an agent to parse quickly.

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

Completeness2/5

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

Given the lack of annotations and output schema, and the tool's likely complexity (migrating file names), the description is incomplete. It does not explain what the migration entails (e.g., batch processing, dry-run options), potential side effects, or return values, leaving gaps for safe and effective use by an agent.

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

Parameters4/5

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

The input schema has 100% coverage with one parameter described as a 'Dummy parameter for no-parameter tools', indicating no meaningful parameters. The description does not add parameter details beyond this, but with zero functional parameters, the baseline is 4 as the schema adequately handles the dummy case without needing extra explanation in the description.

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

Purpose5/5

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

The description clearly states the specific action ('Migrate') and resource ('Memory Bank files'), with precise details about the naming convention change ('from camelCase to kebab-case'). It distinguishes this tool from siblings like 'list_memory_bank_files' or 'write_memory_bank_file' by focusing on a migration operation rather than listing, reading, or writing files.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as whether it should be run once during setup or as needed for file consistency. It does not mention prerequisites, exclusions, or related tools, leaving the agent to infer usage context from the tool name alone.

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

process_umb_commandC

Processes the Update Memory Bank (UMB) command

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesComplete UMB command

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states 'Processes', implying a mutation or action, but doesn't disclose behavioral traits such as side effects, permissions needed, error handling, or what 'processing' entails operationally, leaving significant gaps.

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

Conciseness4/5

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

The description is a single, efficient sentence with no wasted words, making it appropriately sized. However, it's front-loaded with minimal content, which limits its helpfulness despite being concise.

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

Completeness2/5

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

Given no annotations, no output schema, and a vague purpose, the description is incomplete. It doesn't explain what 'processing' involves, the return values, or how it fits with siblings, failing to provide enough context for effective use.

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

Parameters3/5

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

The schema description coverage is 100%, with the parameter 'command' documented as 'Complete UMB command'. The description adds no additional meaning beyond this, so it meets the baseline of 3 where the schema does the heavy lifting without extra value from the description.

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

Purpose3/5

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

The description states the tool 'Processes the Update Memory Bank (UMB) command', which provides a basic verb+resource (process + UMB command). However, it's vague about what processing entails and doesn't differentiate from siblings like 'complete_umb' or 'update_active_context', leaving ambiguity about its specific role.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. With siblings like 'complete_umb' and 'update_active_context' that might overlap, the description lacks context, prerequisites, or exclusions, offering no help for selection.

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

read_memory_bank_fileC

Read a file from the Memory Bank

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYesName of the file to read

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool reads a file, implying a read-only operation, but fails to describe critical behaviors such as error handling (e.g., if the file doesn't exist), return format (e.g., text content), permissions needed, or any side effects. This leaves significant gaps for agent understanding.

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

Conciseness5/5

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

The description is a single, clear sentence with zero wasted words, making it highly concise and front-loaded. It directly communicates the core purpose without unnecessary elaboration, earning full marks for efficiency.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete for a tool that reads files. It does not explain what is returned (e.g., file content as text), error conditions, or how it interacts with the Memory Bank system. For a read operation with no structured output documentation, more context is needed to guide the agent effectively.

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

Parameters3/5

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

The input schema has 100% description coverage, with the 'filename' parameter fully documented in the schema. The description does not add any semantic details beyond what the schema provides (e.g., file naming conventions, supported extensions, or path structure). Baseline 3 is appropriate as the schema handles parameter documentation adequately.

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

Purpose4/5

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

The description clearly states the action ('Read') and resource ('a file from the Memory Bank'), making the purpose immediately understandable. However, it does not explicitly differentiate from sibling tools like 'list_memory_bank_files' or 'write_memory_bank_file', which would require mentioning it retrieves file content rather than metadata or performs a read-only operation versus writing.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., files must exist), exclusions, or comparisons to siblings like 'list_memory_bank_files' for browsing or 'write_memory_bank_file' for modifications, leaving usage context unclear.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoCustom path for the Memory Bank. If not provided, the current directory will be used.

TDQS

B3/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

The description provides no guidance on when to use this tool versus alternatives, 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_modeD

Switches to a specific mode

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesName of the mode to switch to (architect, ask, code, debug, test)

TDQS

D1.9/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure but offers almost none. 'Switches to a specific mode' implies a state change, but it doesn't describe what effects this has (e.g., does it alter system behavior, require permissions, have side effects like resetting other states, or provide feedback?). It lacks details on success/failure conditions, response format, or any behavioral traits, making it inadequate for a mutation tool with zero annotation coverage.

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

Conciseness4/5

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

The description is extremely concise with just one sentence, 'Switches to a specific mode', which is front-loaded and wastes no words. However, this brevity borders on under-specification, as it lacks necessary detail for a tool that likely performs a state mutation. While efficient, it could benefit from additional context to earn a higher score.

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

Completeness1/5

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

Given the complexity of a mode-switching tool (likely a state mutation with no annotations and no output schema), the description is severely incomplete. It doesn't explain what 'mode' entails, what happens after switching, potential errors, or how it interacts with sibling tools. For a tool that may change system behavior, this minimal description fails to provide the context needed for safe and effective use.

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

Parameters3/5

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

The description adds no parameter semantics beyond what the input schema provides. The schema has 100% description coverage, with the 'mode' parameter clearly documented as 'Name of the mode to switch to (architect, ask, code, debug, test)'. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract from the schema's completeness.

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

Purpose2/5

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

The description 'Switches to a specific mode' is a tautology that essentially restates the tool name 'switch_mode' without adding meaningful specificity. It mentions the action 'switches' and the resource 'mode', but fails to clarify what 'mode' means in this context or what the tool actually accomplishes beyond the literal interpretation of its name. Compared to siblings like 'get_current_mode' or 'update_active_context', it doesn't distinguish its purpose clearly.

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

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, context for switching modes, or refer to sibling tools like 'get_current_mode' (which might be used before switching) or 'update_active_context' (which might be related). There's no indication of when this tool is appropriate or what scenarios it's designed for, leaving the agent with no usage context.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction performed (e.g., 'Implemented feature', 'Fixed bug')
descriptionYesDetailed description of the progress
updateActiveContextNoWhether to update the active context file

TDQS

C2.5/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It mentions 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.

Conciseness3/5

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.

Completeness2/5

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

Given no annotations, no output schema, and 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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool 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

ParametersJSON Schema
NameRequiredDescriptionDefault
issuesNoList of known issues
nextStepsNoList of next steps
tasksNoList of ongoing tasks

TDQS

C2.2/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (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.

write_memory_bank_fileC

Write to a Memory Bank file

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesContent to write to the file
filenameYesName of the file to write

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the write operation but doesn't cover critical aspects like permissions required, whether it overwrites existing files, error handling, or side effects. This is inadequate for a mutation tool with zero annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero wasted words. It's appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration.

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

Completeness2/5

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

Given this is a write operation with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits, error conditions, or what happens on success/failure, leaving significant gaps for a mutation tool in a context with multiple sibling tools.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents both parameters ('filename' and 'content'). The description adds no additional meaning beyond what the schema provides, such as file format expectations or content constraints, meeting the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Write') and target resource ('Memory Bank file'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'read_memory_bank_file' or 'list_memory_bank_files' beyond the basic operation type, missing explicit distinction.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There are no mentions of prerequisites, when-not-to-use scenarios, or comparisons with sibling tools like 'update_active_context' or 'log_decision' that might handle related operations.

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.

  1. 15 tool updatesv1.0.0
    • First observedcomplete_umb
    • First observeddebug_mcp_config
    • First observedget_current_mode
    • First observedget_memory_bank_status
    • First observedinitialize_memory_bank
    • First observedlist_memory_bank_files
    • First observedlog_decision
    • First observedmigrate_file_naming
    • First observedprocess_umb_command
    • First observedread_memory_bank_file
    • First observedset_memory_bank_path
    • First observedswitch_mode
    • First observedtrack_progress
    • First observedupdate_active_context
    • First observedwrite_memory_bank_file

TDQS

C2.8/5.0

Scored across 15 tools

Disambiguation3/5

Most tools have distinct purposes, but there is notable overlap between 'complete_umb' and 'process_umb_command' which both handle UMB processes, and 'track_progress' and 'update_active_context' could be confused for similar context management tasks. Descriptions help clarify, but some ambiguity remains.

Naming Consistency4/5

Tool names follow a consistent verb_noun pattern throughout, such as 'initialize_memory_bank' and 'read_memory_bank_file', with minor deviations like 'debug_mcp_config' using 'debug' instead of a more standard verb. Overall, the naming is predictable and readable.

Tool Count5/5

With 15 tools, the count is well-scoped for managing a Memory Bank system, covering initialization, reading/writing files, status checks, mode switching, and debugging. Each tool appears to serve a specific function without unnecessary bloat.

Completeness4/5

The tool set provides comprehensive CRUD-like coverage for Memory Bank operations, including initialization, file management, status tracking, and mode control. Minor gaps may exist, such as lacking direct tools for deleting files or advanced configuration management, but core workflows are well-supported.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Memory Bank Server provides a set of tools and resources for AI assistants to interact with Memory Banks. Memory Banks are structured repositories of information that help maintain context and track progress across multiple sessions.
    15 npm
    46
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A persistent long-term memory server for AI assistants that enables storing and recalling solutions, facts, and decisions with intelligent confidence tracking and relationship mapping. It allows developers to build a cross-platform knowledge base that integrates seamlessly with IDEs and CLI agents.
    17
    2
    MIT