Skip to main content
Glama
nicavcrm

Memory Bank MCP Server

by nicavcrm

Memory Bank MCP Server

A Model Context Protocol (MCP) server implementing the Memory Bank system based on the cursor-memory-bank custom modes.

Overview

This MCP server provides structured workflow tools for managing software development projects through different complexity levels and phases:

  • VAN Mode: Project initialization and complexity assessment

  • PLAN Mode: Detailed implementation planning

  • CREATIVE Mode: Design and architecture decisions

  • IMPLEMENT Mode: Code implementation and execution

  • REFLECT+ARCHIVE Mode: Project reflection and documentation archiving

Related MCP server: MCP Development Server

Features

🎯 VAN Mode (Entry Point)

  • Initialize new projects with complexity levels 1-4

  • Set up Memory Bank file structure

  • Determine appropriate next mode based on complexity

📋 PLAN Mode (Planning)

  • Generate implementation plans based on complexity level

  • Create detailed step-by-step approaches

  • Identify components requiring creative phases

🎨 CREATIVE Mode (Design)

  • Architecture design with multiple options analysis

  • Algorithm design with complexity considerations

  • UI/UX design with accessibility and usability focus

  • Structured documentation of design decisions

⚒️ IMPLEMENT Mode (Execution)

  • Phase-based implementation for complex projects

  • Integration testing and documentation

  • Progress tracking and status updates

🤔 REFLECT+ARCHIVE Mode (Completion)

  • Implementation reflection and lessons learned

  • Complete project archiving

  • Preparation for next task initialization

Installation

npm install
npm run build

Usage

Running the Server

npm start

Available Tools

1. van_mode

Initialize a project with complexity assessment.

Parameters:

  • complexity (required): "1" | "2" | "3" | "4"

    • Level 1: Quick bug fix

    • Level 2: Simple enhancement

    • Level 3: Complex feature

    • Level 4: Major feature/refactor

  • task_description (optional): Description of the task

Example:

{
  "complexity": "3",
  "task_description": "Implement user authentication system"
}

2. plan_mode

Create detailed implementation plan.

Parameters:

  • complexity (optional): Complexity level (reads from tasks.md if not provided)

3. creative_mode

Perform design and architecture work.

Parameters:

  • component_name (required): Name of component requiring design

  • creative_type (required): "architecture" | "algorithm" | "uiux"

  • requirements (required): Requirements and constraints

Example:

{
  "component_name": "user_auth_system",
  "creative_type": "architecture",
  "requirements": "Secure authentication with JWT tokens, OAuth integration, and role-based access control"
}

4. implement_mode

Execute implementation based on plan.

Parameters:

  • phase (optional): Implementation phase for complex projects

  • complexity (optional): Complexity level (reads from tasks.md if not provided)

5. reflect_archive_mode

Reflect on implementation and archive documentation.

Parameters:

  • action (required): "reflect" | "archive"

    • "reflect": Review and document implementation experience

    • "archive": Create final documentation archive

Memory Bank Files

The server creates and manages several files in the .memory_bank directory:

  • tasks.md: Main task tracking and status

  • activeContext.md: Current context and focus

  • progress.md: Implementation progress tracking

  • implementation-plan.md: Detailed implementation plan

  • reflection.md: Post-implementation reflection

  • creative-{component}.md: Creative phase documentation

  • docs/archive/project-archive.md: Final project archive

Workflow Example

# 1. Initialize project
van_mode(complexity="3", task_description="Build REST API")

# 2. Create implementation plan
plan_mode()

# 3. Design complex components (if Level 3-4)
creative_mode(component_name="api_architecture", creative_type="architecture", requirements="...")

# 4. Implement the solution
implement_mode(phase="core_components")

# 5. Reflect and archive
reflect_archive_mode(action="reflect")
reflect_archive_mode(action="archive")

Complexity Levels

  • Level 1: Quick bug fixes - Direct implementation, minimal planning

  • Level 2: Simple enhancements - Streamlined planning, straightforward implementation

  • Level 3: Complex features - Comprehensive planning, creative phases may be required

  • Level 4: Major features/refactors - Detailed architecture, phased implementation, creative design required

Development

# Development mode with auto-reload
npm run dev

# Build TypeScript
npm run build

# Run compiled server
npm start

Troubleshooting

Module Resolution Errors

If you encounter ERR_MODULE_NOT_FOUND errors when running the server, ensure:

  1. Build First: Always run npm run build before npm start

  2. ES Module Imports: All imports in source files use .js extensions

  3. TypeScript Config: The tsconfig.json is configured for ES modules with "module": "ESNext"

# Clean build if issues persist
rm -rf dist/
npm run build
npm start

Memory Bank Directory Permissions

If the server can't create the .memory_bank directory:

# Ensure write permissions in the working directory
chmod 755 .

Integration

This MCP server can be integrated with:

  • Claude Desktop: Add to MCP server configuration

  • Cursor IDE: Use with MCP client capabilities

  • VS Code: Through MCP extensions

  • Custom clients: Any MCP-compatible application

Based On

This implementation is based on the excellent cursor-memory-bank project by vanzan01, adapted for use as an MCP server.

License

MIT

Available Tools

5 tools
creative_modeCREATIVE ModeC

Design and architecture work for complex components

ParametersJSON Schema
NameRequiredDescriptionDefault
component_nameYes
creative_typeYes
requirementsYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'Design and architecture work' which implies a creative/planning operation rather than execution, but doesn't specify whether this is a read-only analysis, a generative process, or something else. No information about permissions, side effects, rate limits, or output format is provided, leaving significant gaps in understanding how the tool behaves.

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

Conciseness4/5

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

The description is a single, efficient sentence that gets straight to the point without unnecessary words. It's appropriately sized for a tool with 3 parameters and no annotations, though it could benefit from being more informative while maintaining brevity.

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

Completeness2/5

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

Given the complexity (3 required parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what the tool produces, how parameters interact, or what 'creative mode' entails operationally. For a tool that presumably involves significant processing (design/architecture work), more context about the workflow, output expectations, or limitations is needed.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate but adds no parameter information. It doesn't explain what 'component_name', 'creative_type', or 'requirements' mean or how they should be used. The description's reference to 'complex components' vaguely relates to 'component_name' but provides no practical guidance on parameter usage or relationships.

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

Purpose3/5

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

The description states 'Design and architecture work for complex components' which provides a general purpose (design/architecture) and target (complex components), but it's somewhat vague about the specific action. It doesn't clearly distinguish from siblings like 'plan_mode' or 'implement_mode' which might also involve design or architecture work. The description is better than a tautology but lacks specificity about what 'creative mode' uniquely does.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'plan_mode' or 'implement_mode'. There's no mention of prerequisites, appropriate contexts, or exclusions. The agent must infer usage from the tool name and description alone, which is insufficient for clear decision-making among multiple similar tools.

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

implement_modeIMPLEMENT ModeC

Execute the implementation based on plan and creative decisions

ParametersJSON Schema
NameRequiredDescriptionDefault
complexityNo
phaseNo

TDQS

C2/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure but fails to deliver. 'Execute the implementation' suggests a potentially destructive or state-changing operation, but there's no information about side effects, permissions required, idempotency, error conditions, or what 'execution' entails. The description doesn't mention whether this is a read-only operation, what happens upon completion, or any behavioral constraints. This leaves the agent completely in the dark about how the tool behaves.

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

Conciseness4/5

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

The description is appropriately concise - a single sentence that gets straight to the point without unnecessary words. It's front-loaded with the core action ('Execute the implementation'). While the content is inadequate, the form is efficient with no wasted verbiage. The sentence structure is clear and direct, making good use of limited space.

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

Completeness2/5

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

Given the complexity of an 'implementation' tool with no annotations, no output schema, and 2 undocumented parameters, the description is woefully incomplete. The agent needs to understand what 'implementation' means in this system, what happens when executed, what the parameters control, and how this differs from related modes. The description provides only the barest hint of functionality without the necessary context for safe and effective tool invocation.

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

Parameters2/5

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

With 0% schema description coverage for both parameters (complexity and phase), the description must compensate but provides no parameter information whatsoever. The description mentions 'plan and creative decisions' which might relate to parameters, but doesn't map to the actual parameters 'complexity' and 'phase' in the schema. For a tool with 2 undocumented parameters, this represents a significant gap in understanding what inputs are required and what they mean.

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

Purpose2/5

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

The description 'Execute the implementation based on plan and creative decisions' is tautological - it essentially restates the tool name 'implement_mode' as 'execute the implementation'. While it mentions 'plan and creative decisions' as inputs, it doesn't specify what resource or system is being implemented, what 'implementation' means in this context, or how it differs from sibling tools like 'creative_mode' or 'plan_mode'. The purpose remains vague rather than specific.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, sequencing (e.g., 'use after plan_mode'), or contextual triggers. With sibling tools like 'creative_mode', 'plan_mode', and 'reflect_archive_mode' available, the agent receives no help in selecting the appropriate tool for a given situation. The phrase 'based on plan and creative decisions' hints at dependencies but doesn't constitute clear usage guidelines.

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

plan_modePLAN ModeC

Create detailed implementation plan based on complexity level

ParametersJSON Schema
NameRequiredDescriptionDefault
complexityNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool creates a plan, implying a generative or analytical operation, but doesn't describe what 'detailed implementation plan' entails, whether it's a one-time or iterative process, or any constraints like rate limits or permissions needed. This is a significant gap for a tool with no annotation coverage.

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

Conciseness4/5

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

The description is a single, efficient sentence that front-loads the core action ('Create detailed implementation plan') without unnecessary words. However, it could be more structured by explicitly separating purpose from usage context, but it earns high marks for brevity and clarity within its limited scope.

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

Completeness2/5

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

Given the tool's complexity (generating plans based on input), lack of annotations, no output schema, and incomplete parameter documentation, the description is inadequate. It doesn't explain what the output looks like, how the plan is structured, or any behavioral nuances, making it incomplete for effective agent use.

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

Parameters2/5

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

The input schema has one parameter ('complexity') with 0% description coverage, and the tool description doesn't add any meaning beyond what the schema provides. It mentions 'complexity level' but doesn't explain what values are expected, their format, or how they influence the plan creation. With low schema coverage, the description fails to compensate, leaving the parameter undocumented.

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

Purpose3/5

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

The description states the tool creates a detailed implementation plan based on complexity level, which is a clear purpose with a verb ('create') and resource ('implementation plan'). However, it doesn't distinguish this from sibling tools like 'creative_mode' or 'implement_mode', leaving ambiguity about how planning differs from implementation or creative tasks.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'implement_mode' or 'creative_mode'. The description implies usage when a plan is needed based on complexity, but it doesn't specify contexts, prerequisites, or exclusions, leaving the agent to guess about appropriate scenarios.

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

reflect_archive_modeREFLECT+ARCHIVE ModeC

Reflect on implementation and archive documentation

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes

TDQS

C2.2/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. The description mentions 'reflect' and 'archive' but doesn't explain what these actions entail—whether they are read-only, destructive, require specific permissions, have side effects, or produce any output. This leaves critical behavioral traits completely unspecified.

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

Conciseness4/5

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

The description is a single, efficient sentence with no wasted words. It's appropriately sized for a simple tool, though it could be more front-loaded with clearer purpose. The brevity is a strength, but it comes at the cost of clarity.

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

Completeness2/5

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

Given the lack of annotations, no output schema, and a vague description, this tool's definition is incomplete. The description doesn't compensate for the missing structured data—it doesn't explain what happens when the tool is invoked, what results to expect, or how it differs from siblings. This leaves significant gaps for an agent to understand and use the tool effectively.

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

Parameters3/5

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

The description doesn't explicitly mention parameters, but the input schema has one parameter 'action' with enum values 'reflect' and 'archive', which align with the description's verbs. Since schema description coverage is 0%, the description adds minimal value by implying what the parameter might control, but it doesn't explain the semantics or differences between the two actions beyond the schema's enum.

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

Purpose2/5

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

The description 'Reflect on implementation and archive documentation' states a vague purpose with two possible actions but doesn't specify what resources are involved or what concrete outcomes occur. It's not tautological (doesn't just repeat the name/title), but it's too abstract to clearly understand what the tool actually does compared to its siblings like creative_mode or implement_mode.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any context, prerequisites, or exclusions, leaving the agent with no information about appropriate usage scenarios relative to sibling tools like plan_mode or van_mode.

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

van_modeVAN ModeC

Initialize project and determine complexity level. Entry point for the Memory Bank system.

ParametersJSON Schema
NameRequiredDescriptionDefault
complexityYes
task_descriptionNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions initialization and complexity determination, but doesn't describe what happens during initialization, whether this creates persistent resources, what permissions might be required, or what the expected output looks like. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

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

Conciseness4/5

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

The description is appropriately concise with two clear sentences that efficiently convey the core purpose and context. It's front-loaded with the main function and follows with additional system context without unnecessary elaboration.

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

Completeness2/5

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

For a tool with 2 parameters, 0% schema coverage, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what the tool returns, how parameters affect behavior, or provide enough context about the Memory Bank system to understand the tool's role within it. The description leaves too many unanswered questions for effective tool selection and invocation.

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

Parameters2/5

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

With 0% schema description coverage for 2 parameters, the description provides no information about what 'complexity' or 'task_description' parameters mean, their expected formats, or how they influence the tool's behavior. The description mentions 'determine complexity level' which hints at the complexity parameter but doesn't explain its semantics or relationship to the tool's function.

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

Purpose3/5

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

The description states the tool 'Initialize project and determine complexity level' which provides a general purpose, but it's vague about what 'project' refers to and what 'complexity level' means. It mentions being an 'Entry point for the Memory Bank system' which adds some context, but doesn't clearly distinguish this from sibling tools like creative_mode or plan_mode that might also initialize projects.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. While it mentions being an 'entry point', it doesn't specify when to choose van_mode over other entry points or sibling tools, nor does it outline any prerequisites or exclusions for usage.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 5 tool updatesv1.0.0
    • First observedcreative_mode
    • First observedimplement_mode
    • First observedplan_mode
    • First observedreflect_archive_mode
    • First observedvan_mode

TDQS

B3/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose in the Memory Bank workflow: creative_mode for design, implement_mode for execution, plan_mode for planning, reflect_archive_mode for reflection/documentation, and van_mode for initialization. There is no overlap or ambiguity between these tools as they represent sequential stages in a project lifecycle.

Naming Consistency5/5

All tool names follow a consistent pattern of descriptive_verb_mode (e.g., creative_mode, implement_mode, plan_mode). This uniform naming convention makes the tool set predictable and easy to understand, with no deviations in style or structure.

Tool Count5/5

With 5 tools, this server is well-scoped for its purpose of managing a Memory Bank system workflow. Each tool earns its place by covering a distinct phase from initialization to reflection, avoiding bloat while ensuring comprehensive coverage of the project lifecycle.

Completeness5/5

The tool set provides complete lifecycle coverage for the Memory Bank domain: van_mode initializes projects, plan_mode creates plans, creative_mode handles design, implement_mode executes, and reflect_archive_mode concludes with reflection and archiving. There are no obvious gaps, and the tools support a seamless workflow from start to finish.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nicavcrm/memory-bank-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server