memory-bank-mcp
Uses OpenAI's API for generating embeddings and reasoning-based project documentation, enabling semantic code search and intelligent knowledge generation.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@memory-bank-mcpsearch codebase for authentication flow"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Core Memory Bank (Precise Search)
🔍 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
Option 1: NPX (Recommended)
The easiest way to use Memory Bank MCP without local installation:
npx @grec0/memory-bank-mcp@latestOption 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 |
| REQUIRED. Your OpenAI API key |
Indexing Variables
Variable | Default | Description |
|
| Directory where the vector index is stored |
|
| Workspace root (usually auto-detected) |
|
| OpenAI embedding model |
|
| Vector dimensions (1536 or 512) |
|
| Maximum tokens per chunk (limit: 8192) |
|
| Overlap between chunks to maintain context |
Project Knowledge Layer Variables
Variable | Default | Description |
|
| Model for generating documentation (supports reasoning) |
|
| Reasoning level: |
|
| 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:
Map Phase: Splits chunks into batches (~100K chars each), summarizes each batch
Reduce Phase: Combines batch summaries into a coherent final summary
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"
}
}
}
}Complete Configuration (Recommended)
{
"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?
Code Analysis: The system analyzes indexed code using semantic search
AI Generation: Uses reasoning models (gpt-5-mini) to generate structured documentation
Incremental Updates: Only regenerates documents affected by significant changes
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 |
| General Description | What the project is, its main purpose, key features |
| Business Perspective | Why it exists, problems it solves, target users, UX |
| Architecture and Patterns | Code structure, design patterns, technical decisions |
| Tech Stack | Technologies, dependencies, configurations, integrations |
| Current State | What's being worked on, recent changes, next steps |
| 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 IDforce(optional):trueto regenerate everything,falsefor 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:
Regenerate all 6 markdown documents
NEW: Extract responsibilities, ownership, and exports
NEW: Update
global_registry.jsonwith enriched metadataEnable
memorybank_route_taskto 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
Agent Board (
agentBoard.md): A central "whiteboard" in the.memorybank/folder that tracks active agents and locks.Protocol: Agents follow a strict "Check -> Claim -> Work -> Release" protocol.
Atomic Locks: Uses file-system based locking (
.lockdirectories) to ensure safety even across different processes and machines accessing the same filesystem.
Workflow
Check Board: Agents consult the
Agent Boardbefore starting work.Register Identity: Agents identify themselves (e.g.,
Dev-VSCode-GPT4-8A2F).Claim Resource: Agents "lock" files or tasks they are working on.
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-dtosexists❌ 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
Enriched Registry: When you run
memorybank_generate_project_docs, it automatically extracts:responsibilities: What this project is responsible forowns: Files/folders that belong to this projectexports: What this project provides to othersprojectType: api, library, frontend, backend, etc.
Route Before Implementing: Call
memorybank_route_taskBEFORE any code changes:
memorybank_route_task({
"projectId": "my-api",
"taskDescription": "Create DTOs for user management and expose REST endpoints"
})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 |
| Everything belongs to this project, proceed |
| Nothing belongs here, delegate everything |
| Some parts belong here, delegate the rest |
| 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:
You can work on Project A and query code from Project B
Agents can learn from similar already-indexed projects
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
The project must be previously indexed with its
projectIdUse the correct projectId when making queries
Documentation is independent per project
Real Example: Two Related Projects
// 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 yourAGENTS.mdfile.
memorybank_index_code
Indexes code semantically to enable searches.
Parameters:
projectId(REQUIRED): Unique project identifierpath(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
}memorybank_search
Searches code by semantic similarity.
Parameters:
projectId(REQUIRED): Project identifier to search inquery(required): Natural language querytopK(optional): Number of results (default: 10)minScore(optional): Minimum score 0-1 (default: 0.4)filterByFile(optional): Filter by file patternfilterByLanguage(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 pathstartLine(optional): Start lineendLine(optional): End line
memorybank_write_file
Writes a file and automatically reindexes it.
Parameters:
projectId(REQUIRED): Project identifier for reindexingpath(required): File pathcontent(required): File contentautoReindex(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 analyzepath(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 routingtaskDescription(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 identifierforce(optional): Force regeneration (default: false)
memorybank_get_project_docs
Reads AI-generated project documentation.
Parameters:
projectId(REQUIRED): Project identifierdocument(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 identifierprojectPath(REQUIRED): Absolute project pathprojectName(optional): Human-readable project namedescription(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 descriptionproductContext.md- Product contextsystemPatterns.md- Architecture patternstechContext.md- Tech stackactiveContext.md- Session contextprogress.md- Progress trackingdecisionLog.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 identifiercurrentSession(optional): Session information (date, mode, task)recentChanges(optional): List of recent changesopenQuestions(optional): Pending questionsnextSteps(optional): Planned next stepsnotes(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 identifierdecision(REQUIRED): Object with decision informationtitle(REQUIRED): Decision titledescription(REQUIRED): What was decidedrationale(REQUIRED): Why this decision was madealternatives(optional): Considered alternativesimpact(optional): Expected impactcategory(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 identifierprogress(optional): Tasks to updatecompleted: Completed tasksinProgress: Tasks in progressblocked: Blocked tasksupcoming: 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 phasephaseStatus(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 |
| Active session context |
| Progress tracking |
| Technical decision log |
| Project context (brief + tech) |
| System patterns |
| Project description |
Usage example:
// Access active context for "my-project"
memory://my-project/active
// Access decision log
memory://my-project/decisionsResources 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.mdformat for GitHub Copilot in VS Code
Available Modes
Mode | File | Ideal Use |
Basic |
| Total control, manual indexing |
Auto-Index |
| Active development, automatic sync |
Sandboxed |
| 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_fileto read✅ MUST use
memorybank_write_fileto 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)
Mode | URL |
Basic | |
Auto-Index | |
Sandboxed |
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 pathVS Code / GitHub Copilot Format
Mode | URL |
Basic | |
Auto-Index | |
Sandboxed | |
Instructions |
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": trueInstructions 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.mdThis 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?2. Code Search
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_docs5. 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
*.mp4Respecting .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
Don't push
.memorybank/to git (already in .gitignore)Use
.memoryignoreto exclude sensitive filesAPI keys in environment variables, never in code
Verify
.envis 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:
Directory is empty
All files are in .gitignore/.memoryignore
No recognized code files
Searches return irrelevant results
Solutions:
Increase
minScore: Use 0.8 or 0.9 for more precise resultsUse filters:
filterByFileorfilterByLanguageRephrase query: Be more specific and descriptive
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):
AGENTS.basic.md - Basic mode (manual indexing)
AGENTS.auto-index.md - Auto-index mode
AGENTS.sandboxed.md - Sandboxed mode (no direct file access)
VS Code / Copilot Format:
copilot-instructions.basic.md - Basic mode
copilot-instructions.auto-index.md - Auto-index mode
copilot-instructions.sandboxed.md - Sandboxed mode
memory-bank.instructions.md - Conditional instructions
🤝 Contributing
Contributions are welcome!
Fork the project
Create your feature branch (
git checkout -b feature/AmazingFeature)Commit changes (
git commit -m 'Add some AmazingFeature')Push to branch (
git push origin feature/AmazingFeature)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:
Advanced Cursor: Use the Memory Bank - Eliminate hallucinations with persistent memory
How Cursor Indexes Codebases Fast - Efficient indexing techniques
Cline - Structured Project Documentation
The Project Knowledge Layer system (structured markdown documents) is inspired by the Cline Memory Bank approach:
Cline MCP Memory Bank - Reference Memory Bank implementation for Cline
Cline Memory Bank Custom Instructions - Custom instructions for using Memory Bank
Documents from the Cline approach we adopted:
Document | Purpose |
| Project requirements and scope |
| Purpose, target users, problems solved |
| Current tasks, recent changes, next steps |
| Architectural decisions, patterns, relationships |
| Tech stack, dependencies, configurations |
| Milestones, overall status, known issues |
Our Contribution
Memory Bank MCP merges both approaches:
Semantic Search (Cursor-style): Vector embeddings + LanceDB to find relevant code instantly
Structured Documentation (Cline-style): 6 AI-generated markdown documents providing global context
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
Issues: GitHub Issues
Documentation: Project Wiki
OpenAI API: Official Documentation
LanceDB: Documentation
⭐ If you find this project useful, consider giving it a star!
Made with ❤️ for the AI coding assistants community
Available Tools
19 toolsmemorybank_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)
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | RUTA ABSOLUTA al directorio raíz del workspace. Ejemplo: 'C:/workspaces/mi-proyecto' | |
| projectId | Yes | Identificador del proyecto (OBLIGATORIO) | |
| includeTree | No | Incluir árbol de directorios detallado (LENTO en proyectos grandes, omitir normalmente) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | ID de la tarea a reclamar (ej: 'EXT-123456', 'TASK-789012') | |
| projectId | Yes | Identificador único del proyecto (OBLIGATORIO) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It 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.
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.
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.
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.
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.
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-).
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | ID de la tarea a completar (ej: 'EXT-123456', 'TASK-789012') | |
| projectId | Yes | Identificador único del proyecto (OBLIGATORIO) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Título corto de la tarea | |
| context | No | Contexto técnico adicional para que el agente receptor entienda la tarea | |
| projectId | Yes | ID del proyecto origen (quien pide) | |
| description | Yes | Descripción detallada de lo que se necesita | |
| targetProjectId | Yes | ID del proyecto destino (quien debe hacer el trabajo) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Término de búsqueda (por ID, descripción o keywords) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Forzar regeneración de todos los documentos aunque no hayan cambiado | |
| projectId | Yes | Identificador del proyecto (OBLIGATORIO). Debe coincidir con el usado al indexar |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Formato de salida: 'full' devuelve contenido completo, 'summary' devuelve resumen de todos los docs | full |
| document | No | Documento específico a recuperar: projectBrief, productContext, systemPatterns, techContext, activeContext, progress, all, summary | summary |
| projectId | Yes | Identificador del proyecto (OBLIGATORIO). Debe coincidir con el usado al generar los docs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits, 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | RUTA ABSOLUTA al DIRECTORIO a indexar. Ejemplo: 'C:/workspaces/proyecto/src'. NO usar rutas relativas. NO usar rutas a archivos. | |
| projectId | Yes | Identificador único del proyecto (OBLIGATORIO). Debe coincidir con el definido en AGENTS.md | |
| recursive | No | Indexar recursivamente subdirectorios (default: true) | |
| forceReindex | No | RARAMENTE NECESARIO. El sistema detecta cambios por hash automáticamente. Solo usa true si necesitas regenerar embeddings sin cambios en archivos. |
TDQS
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.
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.
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.
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.
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.
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"
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Identificador único del proyecto (OBLIGATORIO) | |
| description | No | Descripción inicial del proyecto (opcional) | |
| projectName | No | Nombre legible del proyecto (opcional) | |
| projectPath | Yes | RUTA ABSOLUTA al proyecto. Ejemplo: 'C:/workspaces/mi-proyecto' |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | Tarea o fichero en el que se enfoca (para update_status). | |
| action | Yes | Acción a realizar | |
| status | No | Estado del agente (para update_status). | |
| taskId | No | ID de la tarea para complete_task, claim_task o get_task_details (ej: 'EXT-123456', 'TASK-789012'). | |
| agentId | No | Identificador del agente (ej: 'dev-agent-1'). Requerido para escrituras. | |
| resource | No | Identificador del recurso a bloquear (ej: 'src/auth/'). | |
| projectId | Yes | Identificador único del proyecto (OBLIGATORIO) | |
| sessionId | No | UUID de sesión del agente para tracking de contexto. | |
| workspacePath | No | RUTA ABSOLUTA al directorio raíz del workspace. IMPORTANTE para registro correcto del proyecto. |
TDQS
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.
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.
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.
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.
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.
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"
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Ruta al archivo. Preferir ABSOLUTA: 'C:/workspaces/proyecto/src/file.ts' | |
| endLine | No | Línea final (opcional) | |
| projectId | No | Identificador del proyecto (Opcional, pero necesario para logging de sesión) | |
| startLine | No | Línea inicial (opcional) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| decision | Yes | Información de la decisión a registrar | |
| projectId | Yes | Identificador único del proyecto (OBLIGATORIO) |
TDQS
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.
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.
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.
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.
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.
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:
Lee las responsabilidades de TODOS los proyectos del workspace
Analiza qué componentes necesita la tarea (DTOs, services, controllers, etc.)
Asigna cada componente al proyecto responsable
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
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ID del proyecto que está solicitando el enrutamiento | |
| taskDescription | Yes | Descripción detallada de la tarea a implementar |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It 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.
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.
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.
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.
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.
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_searchA
Busca código relevante mediante búsqueda semántica vectorial. Usa esta herramienta SIEMPRE que necesites información sobre el código. El projectId es OBLIGATORIO
| Name | Required | Description | Default |
|---|---|---|---|
| topK | No | Número máximo de resultados a retornar | |
| query | Yes | Consulta semántica: describe qué estás buscando en lenguaje natural (ej: 'función de autenticación', '¿cómo se validan los emails?') | |
| minScore | No | Puntuación mínima de similitud (0-1). por defecto usa 0.4 y basado en el resultado ajusta el valor | |
| projectId | Yes | Identificador del proyecto donde buscar (OBLIGATORIO). Debe coincidir con el usado al indexar | |
| filterByFile | No | Filtrar resultados por patrón de ruta de archivo (ej: 'auth/', 'utils.ts') | |
| filterByLanguage | No | Filtrar resultados por lenguaje de programación (ej: 'typescript', 'python') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only states it's a semantic search, but lacks details on whether it reads/writes, rate limits, prerequisites (e.g., index must exist), or result format. Minimal behavioral context beyond schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose. Each sentence is meaningful. Could be slightly improved by adding a note on indexing prerequisite, but still concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 params and no output schema, the description should explain return values and usage context (e.g., 'results include chunk and score'). Does not mention output or indexing dependency, leaving gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good parameter descriptions. The description adds only that projectId is mandatory (already in schema). No additional meaning beyond baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches code via semantic vector search, using the verb 'busca' and specifying the resource. It distinguishes itself from sibling tools like memorybank_index_code or memorybank_analyze_coverage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Usa esta herramienta SIEMPRE que necesites información sobre el código' (always use when you need code info), providing strong when-to-use guidance. Does not specify when not to use, but given context of siblings, it's clear.
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:
Escanea carpetas de documentación (.memorybank/projects/*)
Escanea código indexado en vector store
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| phase | No | Fase actual del proyecto | |
| blockers | No | Blockers a registrar | |
| progress | No | Tareas a actualizar | |
| milestone | No | Milestone a añadir o actualizar | |
| projectId | Yes | Identificador único del proyecto (OBLIGATORIO) | |
| phaseStatus | No | Estado de la fase |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Notas adicionales o consideraciones | |
| nextSteps | No | Próximos pasos planificados | |
| projectId | Yes | Identificador único del proyecto (OBLIGATORIO) | |
| openQuestions | No | Preguntas pendientes de resolver | |
| recentChanges | No | Lista de cambios recientes realizados | |
| currentSession | No | Información de la sesión actual |
TDQS
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.
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.
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.
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.
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.
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"
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Ruta al archivo. Preferir ABSOLUTA: 'C:/workspaces/proyecto/src/file.ts' | |
| content | Yes | Contenido COMPLETO del archivo | |
| projectId | Yes | Identificador del proyecto (OBLIGATORIO) | |
| autoReindex | No | Auto-reindexar después de escribir (default: true) |
TDQS
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.
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.
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.
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.
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.
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.
19 tool updates
v0.2.15- First observed
memorybank_analyze_coverage - First observed
memorybank_claim_task - First observed
memorybank_complete_task - First observed
memorybank_delegate_task - First observed
memorybank_discover_projects - First observed
memorybank_generate_project_docs - First observed
memorybank_get_project_docs - First observed
memorybank_get_stats - First observed
memorybank_index_code - First observed
memorybank_initialize - First observed
memorybank_manage_agents - First observed
memorybank_read_file - First observed
memorybank_record_decision - First observed
memorybank_route_task - First observed
memorybank_search - First observed
memorybank_sync_projects - First observed
memorybank_track_progress - First observed
memorybank_update_context - First observed
memorybank_write_file
TDQS
Scored across 19 tools
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.
All tools follow the consistent pattern 'memorybank_verb_noun' in snake_case, with no mixing of conventions or deviant styles.
19 tools cover the full scope of memory bank management (indexing, search, tasks, docs, agents, files) without being excessive or insufficient.
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
Related MCP Connectors
Persistent memory and cross-session learning for AI coding assistants (hosted remote MCP).
An MCP memory server. One memory your agents share — across models, devices and apps.
Cloud-hosted MCP server for durable AI memory
Capability registry for the agentic economy. Semantic search over verified MCP server listings.
Related MCP Servers
- AlicenseBqualityBmaintenanceMCP 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.991Apache 2.0
- FlicenseNot gradedqualityDmaintenanceA local MCP server that provides semantic memory storage and retrieval for coding and AI agents, enabling durable context across chat sessions.474-
- AlicenseAqualityDmaintenanceMCP server that provides a shared semantic memory layer for AI coding agents, enabling teams to store, search, and sync context, decisions, and knowledge across projects with project-based isolation and multi-backend support.141MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for semantic code search and dependency graph analysis. Indexes codebases into a knowledge graph with vector embeddings for AI-powered code understanding.38MIT