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経由でリモートサーバーにメモリバンクを保存します

  • カスタマイズ可能なフォルダ名: メモリバンクのカスタムフォルダ名を指定できるようになりました

  • 一貫したディレクトリ構造: メモリバンクは、プロジェクトルートで構成されたフォルダ名を常に使用するようになりました。

  • 初期化の強化: .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. メモリバンクを一元管理: すべてのプロジェクトメモリを 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は、モデルコンテキストプロトコル(MCP)をサポートするAI搭載のコードエディターです。CursorでメモリバンクMCPを設定するには、以下の手順に従ってください。

  1. npx でメモリバンク MCP を使用する:

    パッケージをグローバルにインストールする必要はありません。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. 接続を確認:

    • カーソルでプロジェクトを開く

    • メモリバンクMCPがアクティブになり、AIインタラクションで利用できるようになります。

カーソルの詳細な手順と高度な使用方法については、 cursor-integration.md を参照してください。

カーソルと一緒に使う🤖

設定が完了すると、カーソル内の AI コマンドを通じてメモリ バンク 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 モードとその使用法 🔄

メモリバンク 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は、AIアシスタントが外部ツールやリソースと連携できるようにするモデルコンテキストプロトコル(MCP)を基盤としています。その仕組みは以下のとおりです。

コアコンポーネント 🧩

  1. メモリ バンク: マークダウン ファイルとして保存された構造化された情報リポジトリ:

    • 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サーバーが提供するツールを呼び出して、メモリバンクファイルの読み取り/書き込みを行います。

  3. コンテキスト維持: メモリバンクはセッション間でコンテキストを維持し、AIが以前の決定と進行を思い出せるようにします。

メモリバンクの構造 📂

メモリ バンクは、標準化された構造を使用して情報を整理します。

  • 製品コンテキスト: プロジェクトの概要、目的、テクノロジー、アーキテクチャ

  • アクティブコンテキスト: 現在の状態、進行中のタスク、既知の問題、次のステップ

  • 進捗状況: プロジェクトの最新情報とマイルストーンの時系列記録

  • 意思決定ログ: 重要な意思決定を、その背景、代替案、結果とともに記録します。

  • システムパターン: アーキテクチャパターン、コードパターン、ドキュメントパターン

高度な機能 🚀

  • UMB コマンド: 変更をコミットせずにセッション中にメモリバンクファイルを一時的に更新する

  • モード検出: ユーザー入力に基づいてモードを自動的に検出して切り替えます

  • ファイル移行: 異なるファイル命名規則間で移行するためのツール

  • 言語標準化: すべてのメモリバンクファイルは一貫性を保つために英語で生成されます

バージョン管理 📌

このプロジェクトはセマンティック・バージョニングに準拠し、コミットメッセージにはConventional Commitsを採用しています。変更がメインブランチにマージされると、バージョンは自動的に更新され、コミットメッセージに基づいて変更ログが生成されます。

  • 重大な変更がある場合、メジャー バージョンが引き上げられます ( 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 アシスタントが完全なコンテキスト認識で動作しているのか、それとも限定された情報で動作しているのかをユーザーが常に把握できるようになります。

利点

  • 透明性: 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