Skip to main content
Glama

Memory Bank MCP - Semantic Code Indexing

MCP (Model Context Protocol) server for semantic code indexing. Enables AI agents like Claude, Copilot, Cursor, and others to maintain a "persistent memory" of entire codebases through vector embeddings and semantic search.

🧠 What is Memory Bank?

Memory Bank is an external memory system for code agents that solves the fundamental problem of context loss in AIs. It works as the project's "external brain":

  • Indexes all your code using OpenAI embeddings

  • Chunks intelligently using AST parsing (functions, classes, methods)

  • Stores vectors in LanceDB for ultra-fast searches

  • Searches semantically: ask in natural language, get relevant code

  • Updates incrementally: only reindexes modified files

  • Multi-project: query code from any indexed project from any workspace

Why do you need it?

Without Memory Bank, AIs:

  • ❌ Forget everything between sessions

  • ❌ Only see small code snippets

  • ❌ Hallucinate non-existent implementations

  • ❌ Give generic answers without context

With Memory Bank, AIs:

  • ✅ Remember the entire codebase

  • ✅ Understand architecture and patterns

  • ✅ Respond with real project code

  • ✅ Generate code consistent with your style

  • Query multiple indexed projects simultaneously

Related MCP server: local-memory-mcp

🚀 Features

  • 🔍 Semantic Search: Ask "how does authentication work?" and get relevant code

  • 🧩 Intelligent Chunking: AST parsing for TS/JS/Python with token limits (8192 max)

  • ⚡ Incremental Updates: Only reindexes modified files (hash-based detection)

  • 💾 Embedding Cache: Avoids regenerating embeddings unnecessarily

  • 🎯 Advanced Filters: By file, language, chunk type

  • 📊 Detailed Statistics: Know the state of your index at all times

  • 🔒 Privacy: Local vector store, respects .gitignore and .memoryignore

  • 🔀 Multi-Project: Query any indexed project using its projectId

Project Knowledge Layer (Global Knowledge)

  • 📄 Automatic Documentation: Generates 6 structured markdown documents about the project

  • 🧠 AI with Reasoning: Uses OpenAI Responses API with reasoning models (gpt-5-mini)

  • 🔄 Smart Updates: Only regenerates documents affected by changes

  • 📚 Global Context: Complements precise search with high-level vision

Context Management (Session Management) 🆕

  • 🚀 Quick Initialization: Creates Memory Bank structure with initial templates (no AI)

  • 📝 Session Tracking: Records active context, recent changes, and next steps

  • 📋 Decision Log: Documents technical decisions with rationale and alternatives

  • 📊 Progress Tracking: Manages tasks, milestones, and blockers

  • 📡 MCP Resources: Direct read-only access to documents via URIs

Multi-Agent Coordination (Team Sync) 🤖

  • 🚦 Traffic Control: Prevents multiple agents from modifying the same files simultaneously

  • 📌 Agent Board: Centralized view of active agents, claimed tasks, and locked files

  • 🆔 Identity Management: Tracks who is doing what (GitHub Copilot, Cursor, etc.)

  • 🔒 Atomic Locks: File-system based locking safe across different processes/IDEs

Task Orchestration (Smart Routing) 🧭 NEW

  • 🎯 Intelligent Routing: Analyzes tasks BEFORE implementation to determine ownership

  • 📋 Enriched Project Registry: Projects have responsibilities, ownership, and exports metadata

  • 🤖 AI Reasoning: Uses reasoning models to distribute work across projects

  • 🔀 Auto-Delegation: Automatically identifies what should be delegated to other projects

  • 📦 Import Suggestions: Recommends what to import from other projects instead of reimplementing

📋 Requirements

  • Node.js >= 18.0.0

  • OpenAI API Key: Get one here

  • Disk space: ~10MB per 10,000 files (embeddings + metadata)

🛠️ Installation

The easiest way to use Memory Bank MCP without local installation:

npx @grec0/memory-bank-mcp@latest

Option 2: Local Installation

For development or contribution:

# Clone repository
git clone https://github.com/gcorroto/memory-bank-mcp.git
cd memory-bank-mcp

# Install dependencies
npm install

# Build
npm run build

# Run
npm run start

⚙️ Complete Configuration

Environment Variables

Memory Bank is configured through environment variables. You can set them in your MCP client or in a .env file:

Required Variables

Variable

Description

OPENAI_API_KEY

REQUIRED. Your OpenAI API key

Indexing Variables

Variable

Default

Description

MEMORYBANK_STORAGE_PATH

.memorybank

Directory where the vector index is stored

MEMORYBANK_WORKSPACE_ROOT

process.cwd()

Workspace root (usually auto-detected)

MEMORYBANK_EMBEDDING_MODEL

text-embedding-3-small

OpenAI embedding model

MEMORYBANK_EMBEDDING_DIMENSIONS

1536

Vector dimensions (1536 or 512)

MEMORYBANK_MAX_TOKENS

7500

Maximum tokens per chunk (limit: 8192)

MEMORYBANK_CHUNK_OVERLAP_TOKENS

200

Overlap between chunks to maintain context

Project Knowledge Layer Variables

Variable

Default

Description

MEMORYBANK_REASONING_MODEL

gpt-5-mini

Model for generating documentation (supports reasoning)

MEMORYBANK_REASONING_EFFORT

medium

Reasoning level: low, medium, high

MEMORYBANK_AUTO_UPDATE_DOCS

false

Auto-regenerate docs when indexing code

Map-Reduce Auto-Summarization (v0.2.0+)

For large projects that exceed the LLM context window, Memory Bank automatically uses Map-Reduce summarization:

  1. Map Phase: Splits chunks into batches (~100K chars each), summarizes each batch

  2. Reduce Phase: Combines batch summaries into a coherent final summary

  3. Recursive: If combined summaries still exceed threshold, recurses up to 3 levels

This happens automatically when content exceeds 400K characters. No configuration needed.

Configuration in Cursor IDE

Edit your MCP configuration file:

Windows: %APPDATA%\Cursor\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json

Minimal Configuration

{
  "mcpServers": {
    "memory-bank-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["@grec0/memory-bank-mcp@latest"],
      "env": {
        "OPENAI_API_KEY": "sk-your-api-key-here"
      }
    }
  }
}
{
  "mcpServers": {
    "memory-bank-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["@grec0/memory-bank-mcp@latest"],
      "env": {
        "OPENAI_API_KEY": "sk-your-api-key-here",
        "MEMORYBANK_REASONING_MODEL": "gpt-5-mini",
        "MEMORYBANK_REASONING_EFFORT": "medium",
        "MEMORYBANK_AUTO_UPDATE_DOCS": "false",
        "MEMORYBANK_MAX_TOKENS": "7500",
        "MEMORYBANK_CHUNK_OVERLAP_TOKENS": "200",
        "MEMORYBANK_EMBEDDING_MODEL": "text-embedding-3-small",
        "MEMORYBANK_EMBEDDING_DIMENSIONS": "1536"
      }
    }
  }
}

Configuration in Claude Desktop

Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/claude/claude_desktop_config.json

{
  "mcpServers": {
    "memory-bank": {
      "command": "npx",
      "args": ["@grec0/memory-bank-mcp@latest"],
      "env": {
        "OPENAI_API_KEY": "sk-your-api-key-here",
        "MEMORYBANK_REASONING_MODEL": "gpt-5-mini",
        "MEMORYBANK_REASONING_EFFORT": "medium"
      }
    }
  }
}

Configuration with Local Installation

{
  "mcpServers": {
    "memory-bank": {
      "command": "node",
      "args": ["/absolute/path/memory-bank-mcp/dist/index.js"],
      "cwd": "/absolute/path/memory-bank-mcp",
      "env": {
        "OPENAI_API_KEY": "sk-your-api-key-here"
      }
    }
  }
}

📄 Project Documentation System (Project Knowledge Layer)

Memory Bank includes an intelligent documentation system that generates and maintains structured knowledge about your project using AI with reasoning capabilities.

How Does It Work?

  1. Code Analysis: The system analyzes indexed code using semantic search

  2. AI Generation: Uses reasoning models (gpt-5-mini) to generate structured documentation

  3. Incremental Updates: Only regenerates documents affected by significant changes

  4. Persistent Storage: Documents are saved in .memorybank/projects/{projectId}/docs/

Generated Documents

The system generates 6 markdown documents that provide different perspectives of the project:

Document

Purpose

Content

projectBrief.md

General Description

What the project is, its main purpose, key features

productContext.md

Business Perspective

Why it exists, problems it solves, target users, UX

systemPatterns.md

Architecture and Patterns

Code structure, design patterns, technical decisions

techContext.md

Tech Stack

Technologies, dependencies, configurations, integrations

activeContext.md

Current State

What's being worked on, recent changes, next steps

progress.md

Tracking

Change history, what works, what's missing, known issues

Documentation Tools

memorybank_generate_project_docs

Generates or regenerates project documentation.

{
  "projectId": "my-project",
  "force": false
}
  • projectId (REQUIRED): Project ID

  • force (optional): true to regenerate everything, false for incremental updates

memorybank_get_project_docs

Reads generated documentation.

// Get summary of all documents
{
  "projectId": "my-project",
  "document": "summary"
}

// Get specific document
{
  "projectId": "my-project",
  "document": "systemPatterns"
}

// Get all complete documents
{
  "projectId": "my-project",
  "document": "all",
  "format": "full"
}

Documentation Workflow

1. Index code
   memorybank_index_code({ projectId: "my-project" })

2. Generate documentation (also updates global registry)
   memorybank_generate_project_docs({ projectId: "my-project" })

3. Query documentation at the start of each session
   memorybank_get_project_docs({ projectId: "my-project", document: "activeContext" })

4. Route task BEFORE implementing (mandatory in auto-index mode)
   memorybank_route_task({ projectId: "my-project", taskDescription: "..." })

5. Search specific code
   memorybank_search({ projectId: "my-project", query: "..." })

Auto-Update Documentation

If you configure MEMORYBANK_AUTO_UPDATE_DOCS=true, documents will be automatically regenerated after each indexing. This is useful for keeping documentation always up to date but consumes more API tokens.

Upgrading Existing Projects 🆕

If you have projects already initialized with a previous version, simply regenerate the docs to enable Task Orchestration:

// For each existing project:
memorybank_generate_project_docs({ "projectId": "your-project", "force": true })

This will:

  1. Regenerate all 6 markdown documents

  2. NEW: Extract responsibilities, ownership, and exports

  3. NEW: Update global_registry.json with enriched metadata

  4. Enable memorybank_route_task to work with this project


🤖 Multi-Agent Coordination

Memory Bank includes a Coordination Layer to support multiple agents (e.g., in different IDEs, parallel sessions, or team members) working on the same project without conflicts.

Why is this needed?

When you have multiple AI agents (e.g., one in VS Code, one in Cursor, one in Windsurf) or multiple developers working on the same codebase, they often collide:

  • Modifying the same file simultaneously

  • Duplicating work

  • Halucinating that a task is "todo" when someone else is already doing it

How It Works

  1. Agent Board (agentBoard.md): A central "whiteboard" in the .memorybank/ folder that tracks active agents and locks.

  2. Protocol: Agents follow a strict "Check -> Claim -> Work -> Release" protocol.

  3. Atomic Locks: Uses file-system based locking (.lock directories) to ensure safety even across different processes and machines accessing the same filesystem.

Workflow

  1. Check Board: Agents consult the Agent Board before starting work.

  2. Register Identity: Agents identify themselves (e.g., Dev-VSCode-GPT4-8A2F).

  3. Claim Resource: Agents "lock" files or tasks they are working on.

  4. Work & Release: Agents work on the task and release the lock when finished (or when the lock expires/stales).

New Tool: memorybank_manage_agents

This tool allows agents to interact with the board:

// Register on the board
{
  "projectId": "my-project",
  "action": "register",
  "agentId": "Dev-VSCode-GPT4-8A2F"
}

// See what others are doing
{
  "projectId": "my-project",
  "action": "get_board"
}

// Claim a task/file
{
  "projectId": "my-project",
  "action": "claim_resource",
  "agentId": "Dev-VSCode-GPT4-8A2F",
  "resource": "src/auth/login.ts"
}

Protocol for Cross-Project Delegation (Handoff) 🆕

Agents can also discover and delegate tasks to other projects in the ecosystem.

1. Discovery: Find other agents/projects.

// Find backend projects
memorybank_discover_projects({ "query": "backend" })
// Returns: [{ projectId: "memory_bank_mcp", description: "Backend MCP Server..." }]

2. Delegation: Create a task in another project's board.

memorybank_delegate_task({
  "projectId": "frontend-app",
  "targetProjectId": "memory_bank_mcp",
  "title": "Add API endpoint",
  "description": "Please add a new endpoint...",
  "context": "Frontend needs this for feature X"
})

Task Orchestration (Smart Routing) 🧭 NEW

The Task Orchestrator analyzes tasks BEFORE implementation to prevent agents from creating code that belongs to other projects.

Why is this needed?

Without orchestration, agents often:

  • ❌ Create DTOs in the API project when lib-dtos exists

  • ❌ Duplicate utilities that are already in shared-utils

  • ❌ Implement features that belong to other microservices

  • ❌ Violate architectural boundaries unknowingly

With the orchestrator:

  • ✅ Know exactly what belongs to this project

  • ✅ Automatically delegate work to the right project

  • ✅ Get import suggestions instead of reimplementing

  • ✅ Respect ecosystem boundaries

How It Works

  1. Enriched Registry: When you run memorybank_generate_project_docs, it automatically extracts:

    • responsibilities: What this project is responsible for

    • owns: Files/folders that belong to this project

    • exports: What this project provides to others

    • projectType: api, library, frontend, backend, etc.

  2. Route Before Implementing: Call memorybank_route_task BEFORE any code changes:

memorybank_route_task({
  "projectId": "my-api",
  "taskDescription": "Create DTOs for user management and expose REST endpoints"
})
  1. Orchestrator Response:

{
  "action": "partial_delegate",
  "myResponsibilities": [
    "Create REST endpoints in src/controllers/",
    "Implement business logic in src/services/"
  ],
  "delegations": [
    {
      "targetProjectId": "lib-dtos",
      "taskTitle": "Create UserDTO and UserResponseDTO",
      "reason": "DTOs belong to lib-dtos per project responsibilities"
    }
  ],
  "suggestedImports": [
    "import { UserDTO } from 'lib-dtos'"
  ],
  "architectureNotes": "Use shared DTOs to maintain consistency across services"
}

Possible Actions

Action

Meaning

implement_here

Everything belongs to this project, proceed

delegate_all

Nothing belongs here, delegate everything

partial_delegate

Some parts belong here, delegate the rest

needs_clarification

Task is ambiguous, ask user for details


🔀 Multi-Project: Cross-Project Queries

A powerful feature of Memory Bank is the ability to query any indexed project from any workspace.

How Does It Work?

All indexed projects are stored in a shared vector store, identified by their projectId. This means:

  1. You can work on Project A and query code from Project B

  2. Agents can learn from similar already-indexed projects

  3. Reuse patterns from other projects in your organization

Usage Example

# You're working on "frontend-app" but need to see how something was done in "backend-api"

User: How was authentication implemented in the backend-api project?

Agent: [executes memorybank_search({ 
  projectId: "backend-api",  // Another project
  query: "JWT middleware authentication"
})]

Found the implementation in backend-api:
- The auth middleware is in src/middleware/auth.ts
- Uses JWT with refresh tokens
- Validation is done with jsonwebtoken...

Requirements for Multi-Project

  1. The project must be previously indexed with its projectId

  2. Use the correct projectId when making queries

  3. Documentation is independent per project

// Project 1: a2a_gateway (already indexed)
memorybank_search({
  "projectId": "a2a_gateway",
  "query": "how agents are registered"
})

// Project 2: GREC0AI (current workspace)
memorybank_search({
  "projectId": "GREC0AI", 
  "query": "AgentEntity implementation"
})

// You can query both in the same session!

📚 Available Tools

⚠️ IMPORTANT: All tools require mandatory projectId. This ID must match the one defined in your AGENTS.md file.

memorybank_index_code

Indexes code semantically to enable searches.

Parameters:

  • projectId (REQUIRED): Unique project identifier

  • path (optional): Relative or absolute path (default: workspace root)

  • recursive (optional): Index subdirectories (default: true)

  • forceReindex (optional): Force complete reindexing (default: false)

Example:

{
  "projectId": "my-project",
  "path": "src/auth",
  "recursive": true
}

Searches code by semantic similarity.

Parameters:

  • projectId (REQUIRED): Project identifier to search in

  • query (required): Natural language query

  • topK (optional): Number of results (default: 10)

  • minScore (optional): Minimum score 0-1 (default: 0.4)

  • filterByFile (optional): Filter by file pattern

  • filterByLanguage (optional): Filter by language

Example:

{
  "projectId": "my-project",
  "query": "function that authenticates users with JWT",
  "topK": 5,
  "minScore": 0.8
}

memorybank_read_file

Reads file contents.

Parameters:

  • path (required): File path

  • startLine (optional): Start line

  • endLine (optional): End line

memorybank_write_file

Writes a file and automatically reindexes it.

Parameters:

  • projectId (REQUIRED): Project identifier for reindexing

  • path (required): File path

  • content (required): File content

  • autoReindex (optional): Auto-reindex (default: true)

memorybank_get_stats

Gets Memory Bank statistics.

memorybank_analyze_coverage

Analyzes project indexing coverage.

Parameters:

  • projectId (REQUIRED): Project identifier to analyze

  • path (REQUIRED): Absolute workspace path to analyze

Example:

{
  "projectId": "my-project",
  "path": "C:/workspaces/my-project"
}

memorybank_route_task 🆕

Analyzes a task and determines what belongs to this project vs what should be delegated. MUST be called BEFORE any implementation.

Parameters:

  • projectId (REQUIRED): Project requesting the routing

  • taskDescription (REQUIRED): Detailed description of what needs to be implemented

Example:

{
  "projectId": "my-api",
  "taskDescription": "Create user registration endpoint with validation and DTOs"
}

Response:

{
  "action": "partial_delegate",
  "myResponsibilities": ["Create POST /users endpoint", "Add validation middleware"],
  "delegations": [{ "targetProjectId": "lib-dtos", "taskTitle": "Create UserDTO" }],
  "suggestedImports": ["import { UserDTO } from 'lib-dtos'"],
  "architectureNotes": "Follow REST conventions, use shared DTOs"
}

memorybank_generate_project_docs

Generates structured project documentation using AI with reasoning. Also automatically updates the global registry with enriched project metadata (responsibilities, owns, exports, projectType).

Parameters:

  • projectId (REQUIRED): Project identifier

  • force (optional): Force regeneration (default: false)

memorybank_get_project_docs

Reads AI-generated project documentation.

Parameters:

  • projectId (REQUIRED): Project identifier

  • document (optional): "summary", "all", or specific name (projectBrief, systemPatterns, etc.)

  • format (optional): "full" or "summary" (default: "full")


🔄 Context Management Tools (Cline-style)

These tools allow managing project context manually, complementing automatic AI generation.

memorybank_initialize

Initializes Memory Bank for a new project. Creates directory structure and 7 markdown documents with initial templates. Does not use AI.

Parameters:

  • projectId (REQUIRED): Unique project identifier

  • projectPath (REQUIRED): Absolute project path

  • projectName (optional): Human-readable project name

  • description (optional): Initial project description

Example:

{
  "projectId": "my-project",
  "projectPath": "C:/workspaces/my-project",
  "projectName": "My Awesome Project",
  "description": "A web application for..."
}

Created documents:

  • projectBrief.md - General description

  • productContext.md - Product context

  • systemPatterns.md - Architecture patterns

  • techContext.md - Tech stack

  • activeContext.md - Session context

  • progress.md - Progress tracking

  • decisionLog.md - Decision log

memorybank_update_context

Updates active context with current session information. Maintains history of the last 10 sessions. Does not use AI.

Parameters:

  • projectId (REQUIRED): Project identifier

  • currentSession (optional): Session information (date, mode, task)

  • recentChanges (optional): List of recent changes

  • openQuestions (optional): Pending questions

  • nextSteps (optional): Planned next steps

  • notes (optional): Additional notes

Example:

{
  "projectId": "my-project",
  "currentSession": {
    "mode": "development",
    "task": "Implementing authentication"
  },
  "recentChanges": ["Added JWT middleware", "Created user model"],
  "nextSteps": ["Add refresh token", "Create login endpoint"]
}

memorybank_record_decision

Records technical decisions with rationale in the decision log. Does not use AI.

Parameters:

  • projectId (REQUIRED): Project identifier

  • decision (REQUIRED): Object with decision information

    • title (REQUIRED): Decision title

    • description (REQUIRED): What was decided

    • rationale (REQUIRED): Why this decision was made

    • alternatives (optional): Considered alternatives

    • impact (optional): Expected impact

    • category (optional): architecture, technology, dependencies, etc.

Example:

{
  "projectId": "my-project",
  "decision": {
    "title": "JWT Authentication",
    "description": "Use JWT tokens for API authentication",
    "rationale": "Stateless, scalable, works well with microservices",
    "alternatives": ["Session-based auth", "OAuth only"],
    "category": "architecture"
  }
}

memorybank_track_progress

Updates progress tracking with tasks, milestones, and blockers. Does not use AI.

Parameters:

  • projectId (REQUIRED): Project identifier

  • progress (optional): Tasks to update

    • completed: Completed tasks

    • inProgress: Tasks in progress

    • blocked: Blocked tasks

    • upcoming: Upcoming tasks

  • milestone (optional): Milestone to add/update (name, status, targetDate, notes)

  • blockers (optional): List of blockers with severity (low/medium/high)

  • phase (optional): Current project phase

  • phaseStatus (optional): Phase status

Example:

{
  "projectId": "my-project",
  "progress": {
    "completed": ["Setup project structure", "Configure ESLint"],
    "inProgress": ["Implement user authentication"],
    "upcoming": ["Add unit tests"]
  },
  "milestone": {
    "name": "MVP",
    "status": "in_progress",
    "targetDate": "2026-02-01"
  }
}

📡 MCP Resources (Direct Access)

Memory Bank exposes MCP resources for direct read-only access to project documents.

Resource URI

Content

memory://{projectId}/active

Active session context

memory://{projectId}/progress

Progress tracking

memory://{projectId}/decisions

Technical decision log

memory://{projectId}/context

Project context (brief + tech)

memory://{projectId}/patterns

System patterns

memory://{projectId}/brief

Project description

Usage example:

// Access active context for "my-project"
memory://my-project/active

// Access decision log
memory://my-project/decisions

Resources are read-only. To modify documents, use the corresponding tools (memorybank_update_context, memorybank_record_decision, etc.).


📋 Agent Instruction Templates

Memory Bank includes instruction templates in two formats to configure agent behavior:

  • AGENTS.md - Standard agents.md (compatible with Claude, Cursor, multiple agents)

  • VSCode/Copilot - .github/copilot-instructions.md format for GitHub Copilot in VS Code

Available Modes

Mode

File

Ideal Use

Basic

AGENTS.basic.md

Total control, manual indexing

Auto-Index

AGENTS.auto-index.md

Active development, automatic sync

Sandboxed

AGENTS.sandboxed.md

Environments without direct file access

1. Basic Mode

For projects where you want total control.

  • ✅ Agent ALWAYS consults Memory Bank before acting

  • ✅ Only indexes when user explicitly requests

  • ✅ Asks permission before modifying code

  • ✅ Suggests reindexing after changes

Ideal for: Critical projects, code review, onboarding.

2. Auto-Index Mode

For active development with automatic synchronization.

  • ✅ Agent consults Memory Bank automatically

  • Routes tasks before implementing (Rule 0.5)

  • ✅ Reindexes EVERY file after modifying it

  • ✅ Keeps Memory Bank always up to date

  • ✅ Can read/write files directly

  • Auto-delegates to other projects when appropriate

Ideal for: Active development, rapid iteration, teams, multi-project ecosystems.

3. Sandboxed Mode

For environments without direct file system access.

  • ✅ Does NOT have direct file access

  • ✅ MUST use memorybank_read_file to read

  • ✅ MUST use memorybank_write_file to write

  • ✅ Auto-reindexes automatically on each write

Ideal for: Restricted environments, remote development, security.

Available Templates

All templates are available in the GitHub repository:

AGENTS.md Format (Cursor, Claude, Multi-agent)

Installation:

# Download template (choose one)
curl -o AGENTS.md https://raw.githubusercontent.com/gcorroto/memory-bank-mcp/main/templates/AGENTS.basic.md
# Or
curl -o AGENTS.md https://raw.githubusercontent.com/gcorroto/memory-bank-mcp/main/templates/AGENTS.auto-index.md
# Or
curl -o AGENTS.md https://raw.githubusercontent.com/gcorroto/memory-bank-mcp/main/templates/AGENTS.sandboxed.md

# Edit placeholders:
# - Replace {{PROJECT_ID}} with your unique project ID
# - Replace {{WORKSPACE_PATH}} with the absolute workspace path

VS Code / GitHub Copilot Format

Installation:

# Create .github folder if it doesn't exist
mkdir -p .github

# Download template (choose one)
curl -o .github/copilot-instructions.md https://raw.githubusercontent.com/gcorroto/memory-bank-mcp/main/templates/vscode/copilot-instructions.basic.md
# Or
curl -o .github/copilot-instructions.md https://raw.githubusercontent.com/gcorroto/memory-bank-mcp/main/templates/vscode/copilot-instructions.auto-index.md
# Or
curl -o .github/copilot-instructions.md https://raw.githubusercontent.com/gcorroto/memory-bank-mcp/main/templates/vscode/copilot-instructions.sandboxed.md

# Enable in VS Code settings.json:
# "github.copilot.chat.codeGeneration.useInstructionFiles": true

Instructions with Conditional Application (VS Code)

To use the .instructions.md file that applies only to certain files:

# Create instructions folder
mkdir -p .github/instructions

# Download base instructions
curl -o .github/instructions/memory-bank.instructions.md https://raw.githubusercontent.com/gcorroto/memory-bank-mcp/main/templates/vscode/memory-bank.instructions.md

This file includes applyTo: "**/*" which applies to all files, but you can modify it.

Configured AGENTS.md Example

# AGENTS.md

## Project Configuration
- **Project ID**: `my-awesome-app`
- **Workspace**: `C:/workspaces/my-awesome-app`

## Memory Bank Instructions

### CRITICAL: Always Consult Before Acting
Before any action, call `memorybank_search` with projectId="my-awesome-app"

### Auto-Indexing Policy
AFTER every file modification:
memorybank_index_code({ projectId: "my-awesome-app", path: "<modified_file>" })

### Session Start
At the beginning of each session, get context:
memorybank_get_project_docs({ projectId: "my-awesome-app", document: "activeContext" })

🎯 Use Cases

1. First Indexing

User: Hi, I want you to help me with my project. The projectId is "my-app"
Claude: [executes memorybank_get_stats]
        I see there's no code indexed yet. 
        Would you like me to index the project so I can help you better?

User: Yes
Claude: [executes memorybank_index_code({ projectId: "my-app" })]
        I've indexed 145 files (1,234 chunks) in 45 seconds.
        How can I help you?
User: How does authentication work in this project?
Claude: [executes memorybank_search({ projectId: "my-app", query: "authentication login users" })]
        
        Authentication is implemented in src/auth/authService.ts (lines 23-87):
        
        [Found code]
        
        The system uses JWT tokens with refresh token rotation. 
        Validation is done in the middleware src/middleware/auth.ts.

3. Cross-Project Query

User: I'm working on "frontend-v2" but I want to see how pagination was done 
      in the "admin-dashboard" project

Claude: [executes memorybank_search({ 
          projectId: "admin-dashboard", 
          query: "pagination table listing" 
        })]
        
        In admin-dashboard, pagination was implemented like this...
        [Shows code from the other project]
        
        Would you like me to implement something similar in frontend-v2?

4. Documentation Generation

User: Generate project documentation for new developers
Claude: [executes memorybank_generate_project_docs({ projectId: "my-app" })]
        
        I've generated 6 project knowledge documents:
        - projectBrief.md: General description
        - systemPatterns.md: Architecture and patterns
        - techContext.md: Tech stack
        ...
        
        Also updated the global registry with project responsibilities.
        You can query them anytime with memorybank_get_project_docs

5. Task Orchestration (Multi-Project) 🆕

User: I need to add a UserDTO for the new registration endpoint
Claude: [executes memorybank_route_task({ 
          projectId: "my-api", 
          taskDescription: "Create UserDTO for registration endpoint" 
        })]
        
        The orchestrator analyzed your ecosystem and determined:
        
        ❌ DTOs should NOT be created in my-api
        ✅ DTOs belong to lib-dtos project
        
        I'll delegate the DTO creation to lib-dtos and import it:
        
        [executes memorybank_delegate_task({
          projectId: "my-api",
          targetProjectId: "lib-dtos", 
          title: "Create UserDTO",
          description: "DTO for user registration with email, password fields"
        })]
        
        Task delegated! Once lib-dtos creates the DTO, you can:
        import { UserDTO } from 'lib-dtos'

🔧 Configuration Files

.memoryignore

Similar to .gitignore, specifies patterns to exclude from indexing:

# Dependencies
node_modules/
vendor/

# Build outputs
dist/
build/
*.min.js

# Memory Bank storage
.memorybank/

# Large data files
*.csv
*.log
*.db

# Binary and media
*.exe
*.pdf
*.jpg
*.png
*.mp4

Respecting .gitignore

Memory Bank automatically respects .gitignore patterns in your project, in addition to .memoryignore patterns.


💰 OpenAI Costs

Memory Bank uses text-embedding-3-small which is very economical:

  • Embedding price: ~$0.00002 per 1K tokens

  • Example: 10,000 files × 1,000 average tokens = ~$0.20

  • Cache: Embeddings are cached, only regenerated if code changes

  • Incremental: Only modified files are reindexed

Searches are extremely cheap (only 1 embedding per query).

AI Documentation uses reasoning models which are more expensive but only run when explicitly requested.


🧪 Testing

# Run tests
npm test

# Tests with coverage
npm test -- --coverage

🔐 Security and Privacy

  • Local vector store: LanceDB runs on your machine

  • No telemetry: We don't send data to external servers

  • Embeddings only: OpenAI only sees code text, not sensitive metadata

  • Respects .gitignore: Ignored files are not indexed

  • Secure API key: Read from environment variables, never hardcoded

Recommendations

  1. Don't push .memorybank/ to git (already in .gitignore)

  2. Use .memoryignore to exclude sensitive files

  3. API keys in environment variables, never in code

  4. Verify .env is in .gitignore


🐛 Troubleshooting

Error: "OPENAI_API_KEY is required"

Solution: Configure your API key in the MCP environment variables.

Error: "No files found to index"

Possible causes:

  1. Directory is empty

  2. All files are in .gitignore/.memoryignore

  3. No recognized code files

Searches return irrelevant results

Solutions:

  1. Increase minScore: Use 0.8 or 0.9 for more precise results

  2. Use filters: filterByFile or filterByLanguage

  3. Rephrase query: Be more specific and descriptive

  4. Reindex: memorybank_index_code({ path: "..." }) (automatically detects changes by hash)

Error: "projectId is required"

Solution: All tools require projectId. Define projectId in your AGENTS.md file so the agent uses it consistently.

Outdated Index

memorybank_get_stats({})

If pendingFiles shows pending files, reindex the directory:

{
  "projectId": "my-project",
  "path": "C:/workspaces/my-project/src"
}

The system automatically detects changes by hash. Only use forceReindex: true if you need to regenerate embeddings even without changes.


📖 Additional Documentation

Instruction Templates

AGENTS.md Format (multi-agent standard):

VS Code / Copilot Format:


🤝 Contributing

Contributions are welcome!

  1. Fork the project

  2. Create your feature branch (git checkout -b feature/AmazingFeature)

  3. Commit changes (git commit -m 'Add some AmazingFeature')

  4. Push to branch (git push origin feature/AmazingFeature)

  5. Open a Pull Request


🎓 Inspiration

This project combines the best concepts from two complementary approaches:

Cursor IDE - Semantic Indexing

The vector indexing and semantic search system is inspired by how Cursor IDE handles code memory:

Cline - Structured Project Documentation

The Project Knowledge Layer system (structured markdown documents) is inspired by the Cline Memory Bank approach:

Documents from the Cline approach we adopted:

Document

Purpose

projectBrief.md

Project requirements and scope

productContext.md

Purpose, target users, problems solved

activeContext.md

Current tasks, recent changes, next steps

systemPatterns.md

Architectural decisions, patterns, relationships

techContext.md

Tech stack, dependencies, configurations

progress.md

Milestones, overall status, known issues

Our Contribution

Memory Bank MCP merges both approaches:

  1. Semantic Search (Cursor-style): Vector embeddings + LanceDB to find relevant code instantly

  2. Structured Documentation (Cline-style): 6 AI-generated markdown documents providing global context

  3. Multi-Project: Unique capability to query multiple indexed projects from any workspace

This combination allows agents to have both precision (semantic search) and global understanding (structured documentation).


📜 License

This project is licensed under the MIT License - see the LICENSE file for details.


🆘 Support


⭐ If you find this project useful, consider giving it a star!

Made with ❤️ for the AI coding assistants community

Available Tools

19 tools
memorybank_analyze_coverageA

Analiza la cobertura de indexación del proyecto. RÁPIDO (~2s).

⚠️ IMPORTANTE:

  • path debe ser RUTA ABSOLUTA al DIRECTORIO raíz del workspace

  • Ejemplo: "C:/workspaces/mi-proyecto" (NO rutas relativas)

  • Por defecto NO incluye árbol de directorios (lento en proyectos grandes)

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRUTA ABSOLUTA al directorio raíz del workspace. Ejemplo: 'C:/workspaces/mi-proyecto'
projectIdYesIdentificador del proyecto (OBLIGATORIO)
includeTreeNoIncluir árbol de directorios detallado (LENTO en proyectos grandes, omitir normalmente)

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description fully carries the load. It discloses performance (RÁPIDO ~2s), default behavior (no tree), and side effects of includeTree (LENTO). It does not mention auth or rate limits, but for a read-only analysis tool this is sufficient.

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 concise (7 lines), front-loaded with purpose, and uses visual structure (emojis, bold) to highlight important warnings. Every sentence adds value with no redundancy.

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

Completeness4/5

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

Given no output schema, the description covers purpose, input constraints, and performance. It doesn't explain return format, but for a simple coverage analysis, the purpose is self-explanatory. A minor gap is not stating what 'coverage' means concretely.

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?

Schema coverage is 100%, so baseline is 3. The description adds value by clarifying that path must be absolute, providing an example, and explaining the includeTree default and performance implications. This goes beyond the schema's descriptions.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Analiza la cobertura de indexación del proyecto' (Analyzes project indexing coverage). It specifies the verb (analiza), resource (cobertura de indexación), and context (project). This distinguishes it from siblings like memorybank_search or memorybank_index_code.

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

Usage Guidelines4/5

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

The description provides explicit usage instructions: path must be absolute, includes an example, and warns about includeTree performance. While it doesn't explicitly say when not to use or name alternatives, the context is clear enough for an agent to use correctly.

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

memorybank_claim_taskA

Reclama una tarea pendiente para trabajar en ella. Cambia el estado de PENDING a IN_PROGRESS.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesID de la tarea a reclamar (ej: 'EXT-123456', 'TASK-789012')
projectIdYesIdentificador único del proyecto (OBLIGATORIO)

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses the state change (PENDING to IN_PROGRESS), which is a key behavioral trait. However, it does not mention error conditions (e.g., task not found, already claimed), security/permissions, or side effects beyond the state change.

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 consists of two short, front-loaded sentences that state the action and the state transition. Every sentence adds value; no redundant or extraneous information.

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

Completeness3/5

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

The tool has no output schema, so the description should ideally hint at return values (e.g., success confirmation, updated task details). It does not. Additionally, there is no mention of prerequisites (e.g., task must exist, user authorization). However, for a simple claim action, the core function is adequately covered.

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 (both 'projectId' and 'taskId' are described with examples and context). The tool description adds no additional parameter meaning beyond what the schema already provides, so it meets the baseline.

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

Purpose5/5

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

The description uses a specific verb ('Reclama'/'Claims'), identifies the resource ('una tarea pendiente'/'a pending task'), and clearly states the effect ('Cambia el estado de PENDING a IN_PROGRESS'). This distinguishes it from siblings like 'memorybank_complete_task' (likely transitions to COMPLETED) and 'memorybank_delegate_task' (reassigns).

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

Usage Guidelines3/5

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

The description implies the tool is for pending tasks but does not explicitly state when to use it vs. alternatives, nor does it provide exclusions (e.g., 'do not use if task is already IN_PROGRESS'). No 'when-to-use' or 'when-not-to-use' guidance is given.

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

memorybank_complete_taskB

Marca una tarea como completada. Funciona tanto para tareas internas (TASK-) como externas (EXT-).

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesID de la tarea a completar (ej: 'EXT-123456', 'TASK-789012')
projectIdYesIdentificador único del proyecto (OBLIGATORIO)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavior. It states the action (mark as completed) but does not mention side effects, irreversibility, permissions, or whether it triggers notifications. For a mutation tool, this is insufficient.

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

Conciseness5/5

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

Two sentences with no filler. Every word contributes to the meaning. The structure is front-loaded and efficient.

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

Completeness2/5

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

Without annotations or output schema, the description lacks return value, error conditions, prerequisites (e.g., task must be open), and how it interacts with other tools. For a simple action, it could be adequate, but with 18 siblings, more context is needed.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters. The description adds that the tool works for both TASK-* and EXT-* task IDs, which is slightly redundant with the schema's taskId description but provides confirmation.

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

Purpose5/5

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

The description clearly states the verb 'Marca' and the resource 'tarea como completada', and specifies it works for both internal (TASK-*) and external (EXT-*) tasks. This distinguishes it from siblings like claim_task, delegate_task, or route_task.

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

Usage Guidelines2/5

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

The description implies usage when a task is completed, but provides no explicit guidance on when to use this tool versus alternatives. There are siblings like claim_task and delegate_task, but no comparison or exclusion criteria.

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

memorybank_delegate_taskB

Delega una tarea a otro proyecto del ecosistema. Crea una petición externa en el tablero del proyecto destino.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTítulo corto de la tarea
contextNoContexto técnico adicional para que el agente receptor entienda la tarea
projectIdYesID del proyecto origen (quien pide)
descriptionYesDescripción detallada de lo que se necesita
targetProjectIdYesID del proyecto destino (quien debe hacer el trabajo)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description bears full burden. It discloses that a request is created in the destination board, but does not explain side effects (e.g., whether the original task remains, ownership changes, or if delegation is reversible).

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 very concise (two sentences). No wasted words, but it could be slightly more structured with separate lines for purpose and outcome.

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 and no output schema, the description should explain return values or success indicators. It does not, leaving gaps for the 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% (all parameters described). The description adds no additional meaning beyond the schema descriptions. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('delegate a task') and the resource ('to another project'). It specifies the result ('creates an external request in the destination project's board'), distinguishing it from sibling tools like route or claim.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., memorybank_route_task). No exclusions or prerequisites mentioned.

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

memorybank_discover_projectsB

Descubre otros proyectos indexados en el ecosistema Memory Bank local. Útil para coordinar tareas entre proyectos.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoTérmino de búsqueda (por ID, descripción o keywords)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does not disclose any behavioral traits such as whether the tool is read-only, what format the results are in, or any side effects. The description is limited to the purpose and does not explain what happens when the tool is invoked.

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, consisting of two short sentences. Every word adds value: it states the core action and a typical use case. No extraneous information is present.

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

Completeness3/5

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

Given the tool has one optional parameter with full schema coverage, no output schema, and no annotations, the description is somewhat adequate but lacks behavioral transparency and usage guidelines. It provides the basic purpose but does not fully describe what the agent can expect from the tool's output or how to integrate it with other 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?

The schema coverage is 100% for the single query parameter, and the schema description already explains it is a search term by ID, description, or keywords. The tool description does not add any additional meaning beyond what the schema provides, so the baseline score of 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 tool discovers other projects in the local Memory Bank ecosystem. It uses a specific verb ('Descubre') and resource ('otros proyectos indexados'). While it distinguishes from siblings by focusing on discovering projects rather than searching or managing tasks, it does not explicitly contrast with similar tools like memorybank_search or memorybank_get_project_docs, so it is slightly above average.

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 only implicitly suggests usage via 'Útil para coordinar tareas entre proyectos', which gives a vague use case but no explicit guidance on when to use this tool versus alternatives like memorybank_search or memorybank_get_project_docs. No when-not-to-use or exclusion criteria are provided.

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

memorybank_generate_project_docsB

Genera documentación estructurada del proyecto usando IA con razonamiento avanzado (gpt-5-mini).

Crea 6 documentos markdown que proporcionan una visión global del proyecto:

  • projectBrief.md: Descripción general del proyecto

  • productContext.md: Perspectiva de negocio y usuarios

  • systemPatterns.md: Patrones de arquitectura y diseño

  • techContext.md: Stack tecnológico y dependencias

  • activeContext.md: Estado actual de desarrollo

  • progress.md: Seguimiento de cambios

Esta herramienta complementa la búsqueda semántica precisa con conocimiento global del proyecto. Útil para que agentes menos avanzados comprendan mejor el contexto completo.. El projectId es OBLIGATORIO

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoForzar regeneración de todos los documentos aunque no hayan cambiado
projectIdYesIdentificador del proyecto (OBLIGATORIO). Debe coincidir con el usado al indexar

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It discloses the AI model used and that projectId is mandatory, but does not explain side effects (e.g., overwriting, file creation location), idempotency, or any destructive potential, leaving behavioral understanding incomplete.

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 front-loaded with the core action and lists documents, but includes extraneous sentences (e.g., 'Útil para que agentes menos avanzados...') that could be streamlined. It is moderately concise but not optimally 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?

With no output schema, the description should clarify what the tool returns or how docs are delivered. It lists the documents but omits return format, file location, or output behavior, leaving a significant gap for agent understanding.

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?

Input schema covers 100% of parameter descriptions. The description adds emphasis on projectId being mandatory and matching the indexing ID, but provides no new semantic details beyond the schema. 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 tool generates structured project documentation using AI, listing the six specific markdown documents. It also mentions complementing semantic search, which provides some differentiation from sibling tools like memorybank_search, but does not explicitly name alternatives.

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

Usage Guidelines3/5

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

The description implies use for obtaining global project context ('complementa la búsqueda semántica precisa') and for less advanced agents, but lacks explicit when-to-use vs when-not-to-use guidance or direct comparison to siblings like memorybank_get_project_docs.

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

memorybank_get_project_docsA

Lee la documentación del proyecto generada por IA.

Recupera documentos markdown estructurados que proporcionan contexto global del proyecto:

  • projectBrief: Descripción general del proyecto

  • productContext: Perspectiva de negocio y usuarios

  • systemPatterns: Patrones de arquitectura y diseño

  • techContext: Stack tecnológico y dependencias

  • activeContext: Estado actual de desarrollo

  • progress: Seguimiento de cambios

Usa esta herramienta al inicio de cada sesión para cargar contexto global. Complementa la búsqueda semántica precisa (memorybank_search) con visión de alto nivel.. El projectId es OBLIGATORIO

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoFormato de salida: 'full' devuelve contenido completo, 'summary' devuelve resumen de todos los docsfull
documentNoDocumento específico a recuperar: projectBrief, productContext, systemPatterns, techContext, activeContext, progress, all, summarysummary
projectIdYesIdentificador del proyecto (OBLIGATORIO). Debe coincidir con el usado al generar los docs

TDQS

A4/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits, but it does not mention whether the tool is read-only, what happens if projectId is invalid, or any side effects. The description only lists document types and usage context, leaving the agent unaware of potential errors or auth requirements.

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 well-structured with bullet points and clear sections. It is reasonably concise but includes some repetition (e.g., listing document types both in text and as a list). Overall, it is efficient and front-loaded.

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

Completeness3/5

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

Given the absence of an output schema, the description does not explain the structure of the returned markdown documents or what 'full' vs 'summary' entails in terms of output format. The description covers purpose and usage well but could be more specific about the return value to complete the context.

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?

Schema coverage is 100%, but the description adds value by explaining each document type (e.g., 'projectBrief: Descripción general del proyecto') beyond the schema's parameter descriptions. It also reinforces that projectId is mandatory, though that is redundant with the schema.

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

Purpose5/5

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

The description clearly states the tool retrieves project documentation generated by AI, lists the document types (projectBrief, productContext, etc.), and distinguishes itself from the sibling tool memorybank_search by positioning it as providing high-level context versus semantic search. The verb 'Lee' and the resource 'documentación del proyecto' are specific.

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

Usage Guidelines5/5

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

The description explicitly says 'Usa esta herramienta al inicio de cada sesión' (use at the start of each session) and contrasts it with memorybank_search, which is for precise semantic search. This provides clear when-to-use and alternative guidance.

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

memorybank_get_statsA

Obtiene estadísticas del Memory Bank: archivos indexados, chunks totales, última indexación, etc. Usa esta herramienta al inicio de cada sesión

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It correctly implies a read-only operation (getting stats) without side effects. However, it adds no extra behavioral details beyond the obvious.

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?

Two sentences, front-loaded with purpose and usage advice. No redundant words.

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

Completeness4/5

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

Given zero parameters and no output schema, the description covers the purpose and usage context adequately. It could mention the return format, but the description is sufficient for a simple stats tool.

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 zero parameters, so schema coverage is 100%. The description does not need to add parameter information; baseline is 4.

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

Purpose5/5

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

The description clearly states the tool retrieves statistics (stats) from the Memory Bank, listing specific examples like indexed files, total chunks, and last indexation. It is distinct from sibling tools that handle tasks, files, or project management.

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

Usage Guidelines4/5

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

The description explicitly recommends using this tool at the start of each session, providing clear context. It does not mention when to avoid it, but the instruction is sufficient.

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

memorybank_index_codeB

Indexa semánticamente código de un DIRECTORIO para búsquedas semánticas.

⚠️ IMPORTANTE:

  • El path debe ser una RUTA ABSOLUTA a un DIRECTORIO (no archivo)

  • Ejemplo correcto: "C:/workspaces/mi-proyecto/src/components"

  • Ejemplo incorrecto: "src/components" (ruta relativa)

  • Ejemplo incorrecto: "C:/workspaces/mi-proyecto/src/file.ts" (archivo, no directorio)

Si quieres indexar un archivo específico, usa el directorio que lo contiene.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRUTA ABSOLUTA al DIRECTORIO a indexar. Ejemplo: 'C:/workspaces/proyecto/src'. NO usar rutas relativas. NO usar rutas a archivos.
projectIdYesIdentificador único del proyecto (OBLIGATORIO). Debe coincidir con el definido en AGENTS.md
recursiveNoIndexar recursivamente subdirectorios (default: true)
forceReindexNoRARAMENTE NECESARIO. El sistema detecta cambios por hash automáticamente. Solo usa true si necesitas regenerar embeddings sin cambios en archivos.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It only says 'indexes', implying a write operation, but fails to mention whether it is destructive, requires permissions, or how it affects existing indices. This is insufficient.

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

Conciseness4/5

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

The description is concise and well-structured, with a clear warning section and bullet-point examples. Every sentence adds value, though it could be slightly shorter.

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 (indexing code) and lack of an output schema, the description should explain what happens after indexing (e.g., success message, status). It does not describe the return value or error conditions, leaving gaps.

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 main description adds value by emphasizing the absolute path requirement for the 'path' parameter, but does not enhance other parameters beyond the schema.

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

Purpose4/5

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

The description clearly states it indexes code from a directory for semantic searches. The verb 'index' and resource 'directory' are specific, but it does not explicitly differentiate from sibling tools like 'memorybank_search' (which uses the index) or 'memorybank_read_file'.

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 explicit rules about the path being absolute and a directory, with correct and incorrect examples. It advises indexing a directory when targeting a specific file. However, it does not compare this tool to alternatives or state when not to use it.

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

memorybank_initializeA

Inicializa el Memory Bank para un proyecto nuevo. Crea la estructura de directorios y 7 documentos markdown con plantillas iniciales:

  • projectBrief.md: Descripción general del proyecto

  • productContext.md: Contexto de producto y usuarios

  • systemPatterns.md: Patrones de arquitectura

  • techContext.md: Stack tecnológico

  • activeContext.md: Contexto de sesión actual

  • progress.md: Seguimiento de progreso

  • decisionLog.md: Log de decisiones técnicas

Esta herramienta NO usa IA - crea plantillas estáticas. Para documentación detallada basada en análisis de código, usa memorybank_generate_project_docs después de indexar.

⚠️ projectPath debe ser RUTA ABSOLUTA. Ejemplo: "C:/workspaces/mi-proyecto"

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesIdentificador único del proyecto (OBLIGATORIO)
descriptionNoDescripción inicial del proyecto (opcional)
projectNameNoNombre legible del proyecto (opcional)
projectPathYesRUTA ABSOLUTA al proyecto. Ejemplo: 'C:/workspaces/mi-proyecto'

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, description discloses it does not use AI, creates static templates, and requires absolute path. Could mention idempotency or overwrite behavior, but current coverage is good.

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?

Well-structured with bullet list of files and warnings. Slightly verbose but informative. Every sentence adds value.

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

Completeness4/5

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

Covers purpose, usage, parameter constraints, and sibling differentiation. Lacks return value description but is sufficient for an initialization tool without output schema.

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?

Schema coverage is 100%. Description adds the absolute path requirement example, and clarifies projectId is mandatory. Adds value beyond schema for projectPath.

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 it initializes Memory Bank for a new project by creating directory structure and 7 markdown documents with templates. It lists the exact files and distinguishes from sibling memorybank_generate_project_docs.

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

Usage Guidelines5/5

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

Explicitly says when to use (new project initialization) and when not to (use memorybank_generate_project_docs for detailed docs). Includes requirement for absolute path.

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

memorybank_manage_agentsB

Coordina múltiples agentes usando una pizarra central (Agent Board). Permite registrar agentes, pedir recursos (locks), ver estado global, y obtener detalles completos de tareas para evitar conflictos.

ParametersJSON Schema
NameRequiredDescriptionDefault
focusNoTarea o fichero en el que se enfoca (para update_status).
actionYesAcción a realizar
statusNoEstado del agente (para update_status).
taskIdNoID de la tarea para complete_task, claim_task o get_task_details (ej: 'EXT-123456', 'TASK-789012').
agentIdNoIdentificador del agente (ej: 'dev-agent-1'). Requerido para escrituras.
resourceNoIdentificador del recurso a bloquear (ej: 'src/auth/').
projectIdYesIdentificador único del proyecto (OBLIGATORIO)
sessionIdNoUUID de sesión del agente para tracking de contexto.
workspacePathNoRUTA ABSOLUTA al directorio raíz del workspace. IMPORTANTE para registro correcto del proyecto.

TDQS

B3.2/5.0
Behavior2/5

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

Al no haber anotaciones, la descripción debe revelar efectos secundarios, pero solo menciona 'evitar conflictos' y 'coordinación'. No detalla si las acciones son destructivas, requisitos de autenticación, o qué sucede con los locks. La transparencia es insuficiente para una herramienta que modifica estado.

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?

La descripción es concisa (una oración) y frontaliza el propósito. El contenido justifica su extensión, aunque podría estructurarse mejor separando acciones.

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?

Aunque la descripción menciona el retorno de 'estado global' y 'detalles de tareas', no hay esquema de salida. Para 9 parámetros, falta detalle sobre la estructura de la respuesta y el modelo del Agent Board. Es suficiente para acciones básicas pero no exhaustivo.

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?

El esquema cubre el 100% de los parámetros con descripciones adecuadas. La descripción añade poco valor semántico adicional, limitándose a listar acciones. Se mantiene la línea base de 3 puntos.

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?

El verbo 'Coordina' especifica la acción principal, y el recurso 'agentes usando una pizarra central (Agent Board)' es claro. La descripción enumera las capacidades (registrar, pedir recursos, ver estado, obtener detalles), diferenciándolo de herramientas hermanas más específicas como 'claim_task' o 'complete_task'.

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 se proporciona orientación explícita sobre cuándo usar esta herramienta en lugar de otras como 'memorybank_claim_task' o 'memorybank_delegate_task'. Aunque la descripción lista acciones que se superponen con herramientas hermanas, no se mencionan criterios de cuándo preferir una u otra.

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

memorybank_read_fileA

Lee el contenido de un archivo específico. Usa para obtener contexto adicional.

⚠️ Preferir RUTA ABSOLUTA para evitar errores. Ejemplo: "C:/workspaces/proyecto/src/index.ts"

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRuta al archivo. Preferir ABSOLUTA: 'C:/workspaces/proyecto/src/file.ts'
endLineNoLínea final (opcional)
projectIdNoIdentificador del proyecto (Opcional, pero necesario para logging de sesión)
startLineNoLínea inicial (opcional)

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. The name and 'lee el contenido' imply a read-only operation, but there is no explicit statement that the tool does not modify data. This is adequate for a simple read tool, but could be more transparent by confirming no side effects.

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

Conciseness4/5

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

The description is short (two sentences plus an example line) and front-loaded with the core purpose. It avoids unnecessary words. The warning and example are relevant. It is concise but could be slightly more structured (e.g., separating the usage tip from the example).

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

Completeness4/5

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

For a simple read-file tool, the description covers the main purpose and provides a usage tip. Given no output schema and moderate complexity (4 params), it is fairly complete. It does not mention error handling or return format, but those are often implicit for such tools. The sibling context is not leveraged.

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% description coverage, so the baseline is 3. The description adds value by recommending absolute paths and providing an example ('C:/workspaces/proyecto/src/index.ts'), which helps the agent use the 'path' parameter correctly. This extra guidance justifies a 4.

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 'Lee el contenido de un archivo específico' which directly indicates the action and resource. The tool name 'read_file' aligns perfectly, and the sibling 'write_file' provides clear differentiation. However, the phrase 'Usa para obtener contexto adicional' is slightly vague, preventing a perfect score.

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 suggests using the tool for 'obtener contexto adicional', giving a clear context. It does not explicitly state when not to use it or mention alternatives among siblings (e.g., search or index). The tip about absolute path is more about parameter usage than when to invoke the tool.

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

memorybank_record_decisionA

Registra una decisión técnica en el log de decisiones del proyecto.

Cada decisión incluye:

  • Título descriptivo

  • Descripción de lo que se decidió

  • Rationale (por qué se tomó la decisión)

  • Alternativas consideradas (opcional)

  • Impacto esperado (opcional)

  • Categoría (opcional): architecture, technology, dependencies, configuration, process, security, performance, testing, documentation

Útil para mantener un historial de decisiones arquitectónicas y técnicas para referencia futura. No usa IA - registro directo en el documento.

ParametersJSON Schema
NameRequiredDescriptionDefault
decisionYesInformación de la decisión a registrar
projectIdYesIdentificador único del proyecto (OBLIGATORIO)

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It adds the behavioral trait 'No usa IA - registro directo en el documento' (no AI, direct write). However, it omits other important behaviors like whether it appends or overwrites, permission requirements, or idempotency, leaving 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 concise, with a clear front-loaded purpose followed by an itemized list of fields. It uses a bullet style that is easy to scan, though it could be slightly shorter without losing meaning.

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

Completeness3/5

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

Given no annotations and no output schema, the description covers the main functionality and fields but lacks details on error handling, whether the decision log is append-only, or if existing project validation occurs. This leaves some practical context incomplete for 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?

Schema coverage is 100%, so the baseline is 3. The description adds value by listing all decision fields and providing explicit category enum values (architecture, technology, etc.), which are not in the schema as an enum. This helps agents understand valid values beyond the schema's generic 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 tool records a technical decision in the project's decision log, with a specific verb ('Registra') and resource ('decisión técnica en el log de decisiones'). It distinguishes itself from sibling tools like memorybank_write_file by focusing on decisions, not generic file writing.

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

Usage Guidelines4/5

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

The description explains the tool is useful for maintaining an architectural/technical decision history for future reference, providing clear context for when to use it. However, it does not explicitly mention when not to use it or suggest alternatives, though the context is sufficient for an agent to infer appropriate usage.

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

memorybank_route_taskA

🚨 OBLIGATORIO antes de implementar cualquier código.

Analiza una tarea y determina qué partes corresponden a qué proyecto según sus responsabilidades.

El orquestador:

  1. Lee las responsabilidades de TODOS los proyectos del workspace

  2. Analiza qué componentes necesita la tarea (DTOs, services, controllers, etc.)

  3. Asigna cada componente al proyecto responsable

  4. Devuelve un plan de acción con delegaciones

DEBES llamar esta herramienta ANTES de escribir código para evitar:

  • Crear DTOs en un API cuando existe una lib-dtos

  • Duplicar services que ya existen en otro proyecto

  • Violar la separación de responsabilidades

La respuesta incluye:

  • myResponsibilities: Lo que TÚ debes implementar

  • delegations: Tareas a delegar a otros proyectos

  • suggestedImports: Dependencias a usar tras las delegaciones

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesID del proyecto que está solicitando el enrutamiento
taskDescriptionYesDescripción detallada de la tarea a implementar

TDQS

A4.9/5.0
Behavior5/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 transparently describes the orchestration process (reads responsibilities, analyzes task, assigns components, returns plan) and the output format (myResponsibilities, delegations, suggestedImports). This fully informs the agent of the tool's behavior without contradictions.

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 well-structured with emojis, clear sections, and bullet points. Every sentence is meaningful: the opening emphasis, the step-by-step process, the warnings, and the output specification. It is appropriately sized and front-loaded with the most critical information.

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

Completeness5/5

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

Despite no output schema, the description explicitly details the return format (myResponsibilities, delegations, suggestedImports) and explains the rationale for using the tool. This is complete for a routing tool given its simplicity and the clear parameter schema.

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?

Schema description coverage is 100%, so both parameters already have descriptions. The tool description adds context by explaining the role of projectId as the requesting project and taskDescription as the task to route. It also frames parameters within the overall process, adding value beyond the schema alone.

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

Purpose5/5

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

The description clearly states the tool's purpose: analyzing a task and determining which parts belong to which project based on responsibilities. It uses specific verbs ('Analiza', 'determina', 'asigna') and resources ('tarea', 'proyecto'). It distinguishes itself from sibling tools like memorybank_delegate_task by focusing on routing before any implementation.

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

Usage Guidelines5/5

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

Explicitly states it is 'OBLIGATORIO antes de implementar cualquier código' and 'DEBES llamar esta herramienta ANTES de escribir código'. It lists concrete negative consequences of not using it (creating DTOs in API when lib-dtos exists, duplicating services, violating separation of responsibilities), serving as clear when-to-use and when-not-to-use guidance.

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

memorybank_sync_projectsA

Sincroniza y recupera automáticamente todos los proyectos desde múltiples fuentes.

Esta herramienta realiza una sincronización completa con AUTO-RECUPERACIÓN:

DESCUBRIMIENTO MULTI-FUENTE:

  1. Escanea carpetas de documentación (.memorybank/projects/*)

  2. Escanea código indexado en vector store

  3. Lee registry JSON existente (si existe)

RECUPERACIÓN AUTOMÁTICA:

  • Si el registry.json se corrompe o vacía, lo reconstruye desde las carpetas de documentación

  • Genera documentación para código indexado sin docs

  • Actualiza registry con responsabilidades extraídas

Útil cuando:

  • El registry.json se ha corrompido o vaciado (AUTO-RECUPERA desde carpetas!)

  • Has indexado código pero no has generado documentación

  • El registry está desactualizado o incompleto

  • Necesitas poblar las responsabilidades de proyectos para el orquestador

  • Has perdido proyectos del registry pero las carpetas siguen existiendo

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries full burden for behavioral disclosure. It describes auto-recovery behavior and multi-source scanning. However, it does not explicitly state if the tool modifies files outside the registry or if it requires specific permissions, which would enhance transparency.

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 verbose and includes sections and bullet lists, which aids readability. However, some redundancy exists (e.g., repeating 'AUTO-RECUPERACIÓN' in multiple places). It is well-structured but could be more concise.

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

Completeness4/5

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

Given zero parameters, no output schema, and no annotations, the description covers the tool's purpose, usage scenarios, and behavior comprehensively. It lacks detail about the return value or output format, which would improve completeness.

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 zero parameters, so baseline is 4. The description does not need to add parameter information, and it appropriately focuses on the tool's behavior and use cases.

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

Purpose5/5

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

The description clearly states the tool synchronizes and auto-recovers projects from multiple sources. It distinguishes itself from siblings by detailing the multi-source discovery and auto-recovery features, which are not mentioned in sibling tool names like memorybank_discover_projects or memorybank_generate_project_docs.

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

Usage Guidelines5/5

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

The description provides explicit scenarios when the tool is useful, such as corrupt registry, indexed code without docs, outdated registry, etc. This gives clear guidance on when to use it versus alternatives.

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

memorybank_track_progressA

Actualiza el seguimiento de progreso del proyecto con tareas, milestones y blockers.

Permite:

  • Marcar tareas como completadas, en progreso, bloqueadas o próximas

  • Añadir/actualizar milestones con estado y fecha objetivo

  • Registrar blockers con severidad (low/medium/high)

  • Actualizar fase y estado del proyecto

Las tareas se fusionan inteligentemente evitando duplicados. No usa IA - actualización directa del documento.

ParametersJSON Schema
NameRequiredDescriptionDefault
phaseNoFase actual del proyecto
blockersNoBlockers a registrar
progressNoTareas a actualizar
milestoneNoMilestone a añadir o actualizar
projectIdYesIdentificador único del proyecto (OBLIGATORIO)
phaseStatusNoEstado de la fase

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses intelligent task merging to avoid duplicates and states no AI is used. However, it does not clarify whether updates replace or merge milestones/blockers, nor any permissions or side effects beyond task merging.

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?

Description is well-structured with a bullet list of capabilities. It is concise and front-loaded, but could be slightly shorter. Every sentence adds value.

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

Completeness3/5

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

Given complexity (nested objects, 6 params, no output schema), the description covers main use cases but lacks information on return format, error handling, or what happens to existing data beyond tasks. It is adequate but not fully complete.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. Description adds context about merging tasks and repeats severity levels already in schema, but does not explain additional parameter meaning beyond schema descriptions.

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

Purpose5/5

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

The description clearly states the tool updates project progress with tasks, milestones, and blockers, and lists specific actions. It differentiates from siblings by focusing on overall progress tracking rather than individual task actions like claim/completed.

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

Usage Guidelines3/5

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

The description implies usage through listed capabilities (mark tasks, update milestones, etc.) but does not explicitly state when to use this tool versus siblings like memorybank_claim_task or memorybank_record_decision. No exclusions or alternatives are mentioned.

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

memorybank_update_contextA

Actualiza el contexto activo del proyecto con información de la sesión actual.

Permite registrar:

  • Sesión actual (fecha, modo de trabajo, tarea)

  • Cambios recientes realizados

  • Preguntas abiertas pendientes

  • Próximos pasos planificados

  • Notas y consideraciones

Mantiene un historial de las últimas 10 sesiones para tracking de progreso. No usa IA - actualización directa del documento.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoNotas adicionales o consideraciones
nextStepsNoPróximos pasos planificados
projectIdYesIdentificador único del proyecto (OBLIGATORIO)
openQuestionsNoPreguntas pendientes de resolver
recentChangesNoLista de cambios recientes realizados
currentSessionNoInformación de la sesión actual

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description fully carries the burden of behavioral disclosure. It states the tool does not use AI and maintains a history of the last 10 sessions for tracking. This gives good insight into its behavior. However, it could be more explicit about whether updates overwrite or append, though the history mention suggests preservation.

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 concise and structured with a clear first sentence followed by a bullet list. It avoids unnecessary words. The information is front-loaded. However, the phrase 'No usa IA' is slightly redundant but still adds value. A more compact presentation might improve structure.

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

Completeness4/5

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

Given the tool has 6 parameters (1 required), nested objects, and no output schema, the description covers the purpose, lists what can be recorded, and mentions the history feature. It provides sufficient context for an AI agent to understand the tool's function, though it lacks details about error handling or return values (which would be expected given no output schema).

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, so the baseline is 3. The description enumerates categories of fields (session, changes, questions, etc.) but adds little semantic value beyond what the schema descriptions already provide. It does not clarify constraints or formatting beyond what is in the schema.

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 states the tool updates the active project context with current session information. It lists specific data that can be recorded, making the purpose clear. However, it does not explicitly differentiate from sibling tools like memorybank_record_decision or memorybank_track_progress, so it loses a point for lack of sibling distinction.

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 mentions 'No usa IA - actualización directa del documento' (Doesn't use AI - direct document update), which provides some guidance about when to use this tool (for direct updates). However, it does not specify when to use it versus alternatives, nor does it state prerequisites or exclusions. Guidelines are implied but not explicit.

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

memorybank_write_fileA

Escribe un archivo y automáticamente lo reindexa en el Memory Bank.

⚠️ Preferir RUTA ABSOLUTA para evitar errores. Ejemplo path: "C:/workspaces/proyecto/src/nuevo.ts"

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRuta al archivo. Preferir ABSOLUTA: 'C:/workspaces/proyecto/src/file.ts'
contentYesContenido COMPLETO del archivo
projectIdYesIdentificador del proyecto (OBLIGATORIO)
autoReindexNoAuto-reindexar después de escribir (default: true)

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavior. It mentions auto-reindexing and path preference but does not clarify overwrite behavior, file existence handling, permissions, or error scenarios. Basic disclosure but insufficient for a potentially destructive write operation.

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: two short sentences plus a warning line. Every sentence serves a purpose without redundancy. Front-loaded with the main action, followed by a practical tip.

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 4 parameters, no output schema, and no annotations, the description should cover error handling, overwrite behavior, permissions, or reindexing details. It lacks this context, leaving significant gaps for a reliable tool invocation.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already describes all four parameters. The description adds a usage hint for absolute paths, which has minimal overlap with the schema's example. No additional semantics for content, projectId, or autoReindex. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool writes a file and automatically reindexes it in the Memory Bank. The verb 'Escribe' and object 'un archivo' are specific, and the auto-reindexing distinguishes it from siblings like memorybank_read_file or memorybank_index_code.

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 advises using an absolute path to avoid errors and provides an example. However, it lacks explicit guidance on when to use this tool versus alternatives (e.g., memorybank_index_code, memorybank_read_file), and no when-not-to-use or prerequisite conditions are mentioned.

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. 19 tool updatesv0.2.15
    • First observedmemorybank_analyze_coverage
    • First observedmemorybank_claim_task
    • First observedmemorybank_complete_task
    • First observedmemorybank_delegate_task
    • First observedmemorybank_discover_projects
    • First observedmemorybank_generate_project_docs
    • First observedmemorybank_get_project_docs
    • First observedmemorybank_get_stats
    • First observedmemorybank_index_code
    • First observedmemorybank_initialize
    • First observedmemorybank_manage_agents
    • First observedmemorybank_read_file
    • First observedmemorybank_record_decision
    • First observedmemorybank_route_task
    • First observedmemorybank_search
    • First observedmemorybank_sync_projects
    • First observedmemorybank_track_progress
    • First observedmemorybank_update_context
    • First observedmemorybank_write_file

TDQS

A3.9/5.0

Scored across 19 tools

Disambiguation5/5

Each tool targets a distinct operation: indexing, search, task management, documentation, agent coordination, file I/O, etc. Descriptions are detailed and clearly differentiate purposes, leaving no ambiguity.

Naming Consistency5/5

All tools follow the consistent pattern 'memorybank_verb_noun' in snake_case, with no mixing of conventions or deviant styles.

Tool Count5/5

19 tools cover the full scope of memory bank management (indexing, search, tasks, docs, agents, files) without being excessive or insufficient.

Completeness5/5

The tool surface comprehensively covers initialization, indexing/search, documentation lifecycle, task management, progress tracking, decision logging, context updates, agent coordination, and file operations. No obvious gaps for the domain.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    MCP server that provides cross-session persistent memory for AI coding assistants using local vector database and semantic search, enabling automatic recall of project context, issues, and tasks.
    9
    91
    Apache 2.0