Skip to main content
Glama

MCP Memory Server with Folder Mapping

A comprehensive MCP (Model Context Protocol) server that provides AI coding assistants with memory management, file approval tracking, changelog functionality, and automatic folder mapping.

πŸ†• New Features Added

πŸ“ Folder Mapping System

Automatically generates _map.md files for each folder in your project, providing quick overviews of:

  • Classes, interfaces, functions, and types

  • Method signatures and parameters

  • File purposes and relationships

  • Dependencies and test locations

  • Risk assessments

This solves the problem of code discoverability - helping both AI agents and developers quickly understand what's available without diving into every file.

Related MCP server: ContextStream MCP Server

πŸš€ Quick Start

1. Install Dependencies

npm install

2. Test the System

node test-memory.js

3. Build the Project

npm run build

4. Run the MCP Server

npm start

πŸ› οΈ Available MCP Tools

Memory Management

  • start_session(task) - Start a new coding session

  • add_session_step(step, filesModified, description?) - Record completed work

  • add_decision(key, value, reasoning) - Record important decisions

  • get_project_memory() - Get current project state

File Approvals

  • set_file_approval(filePath, approvalType, approvedBy) - Set approval status

  • get_file_approval_status(filePath) - Check approval status

  • check_before_modification(filePath) - Validate before changes

  • get_modification_actions(filePath) - Get post-change actions

πŸ“ Folder Mapping (NEW)

  • generate_folder_map(folderPath) - Generate _map.md for specific folder

  • generate_all_folder_maps() - Generate maps for all project folders

  • update_folder_map_if_needed(filePath) - Update map if files changed

  • find_all_map_files() - List all existing map files

  • validate_all_maps() - Check if maps are up-to-date

Metadata & Changelog

  • parse_file_metadata(filePath) - Extract AI metadata from files

  • update_file_metadata(filePath, updates) - Update file metadata

  • add_changelog_entry(...) - Add changelog entry

  • get_recent_changes(days?) - Get recent project changes

πŸ“‹ Folder Map Example

When you run generate_folder_map("src/services"), it creates src/services/_map.md:

# βš™οΈ services Module Map

> **Purpose**: Business logic and external service integrations

## πŸ“Š Quick Stats
- **Files**: 4
- **Classes**: 3
- **Interfaces**: 2
- **Functions**: 8

## πŸ—‚οΈ Files Overview

### `user-service.ts`
**Purpose**: User management and authentication | **Risk**: medium

**CLASS**: `UserService`
- `authenticateUser(credentials)` - Validates user credentials
- `getUserProfile(userId)` - Retrieves user profile data
- `updateUserSettings(userId, settings)` - Updates user preferences

### `api-client.ts`
**Purpose**: HTTP client for external APIs | **Risk**: high

**CLASS**: `ApiClient`
- `get(url, options?)` - HTTP GET request
- `post(url, data, options?)` - HTTP POST request
- `handleError(error)` - Centralized error handling

## πŸ”— Dependencies
- `../types/user-types.ts`
- `../utils/http-utils.ts`

## πŸ§ͺ Tests
- `tests/services/user-service.test.ts`
- `tests/services/api-client.test.ts`

πŸ”§ Integration with Your Test Project

For your Zendesk-ClickUp automation project:

  1. Navigate to your test project:

    cd D:\Development\Projects\Products\zendesk-clickup-automation
  2. Copy the MCP server files or install as dependency

  3. Generate folder maps:

    # Using MCP client, call:
    generate_all_folder_maps()
  4. Your folder structure will get maps:

    src/
    β”œβ”€β”€ agents/
    β”‚   └── _map.md  ← Overview of all agent classes
    β”œβ”€β”€ services/
    β”‚   └── _map.md  ← Service integrations overview  
    β”œβ”€β”€ types/
    β”‚   └── _map.md  ← All TypeScript definitions
    └── utils/
        └── _map.md  ← Utility functions overview

πŸ›‘οΈ Memory Recording Fix

The memory recording issues have been fixed by:

  1. Ensuring directory creation before all file operations

  2. Better error handling with detailed logging

  3. Automatic retry logic for file system operations

  4. Proper async/await patterns throughout

πŸ’‘ Benefits for AI Agents

Before Folder Mapping:

  • AI has to read every file to understand what's available

  • Often creates duplicate functionality

  • Slow to understand project structure

  • Poor code reuse suggestions

After Folder Mapping:

  • Instant project comprehension from _map.md files

  • Prevents duplicate code - AI sees what already exists

  • Better suggestions - AI knows available methods and classes

  • Faster development - Quick navigation and understanding

πŸ“– Usage in AI Workflows

Typical AI Session:

# 1. Start a session
start_session("Add user authentication feature")

# 2. Generate/update maps to understand codebase
generate_all_folder_maps()

# 3. AI reads maps to understand existing code
# 4. AI writes new code using existing patterns

# 5. Record progress
add_session_step("Created UserAuth class", ["src/auth/user-auth.ts"], "Implemented JWT-based authentication")

# 6. Update relevant maps
update_folder_map_if_needed("src/auth/user-auth.ts")

🎯 Best Practices

For AI Agents:

  • Always read relevant _map.md files before suggesting new code

  • Use update_folder_map_if_needed() after creating/modifying files

  • Check existing functionality to avoid duplication

For Developers:

  • Review generated maps for accuracy

  • Update maps when adding major new features

  • Use maps for onboarding new team members

πŸ”„ Auto-Update Strategy

Maps can be kept current by:

  1. File watchers - Update when source files change

  2. Build integration - Generate maps during build process

  3. Git hooks - Update maps on commits

  4. CI/CD integration - Validate maps in pipelines

🚨 Troubleshooting

Memory Not Recording:

# Run the test script
node test-memory.js

# Check for errors in .ai-memory folder creation
# Ensure proper permissions on project directory

Maps Not Generating:

# Check TypeScript parsing dependencies
npm install @typescript-eslint/typescript-estree

# Verify src directory exists
# Check file permissions

MCP Connection Issues:

# Rebuild the project
npm run build

# Check MCP client configuration
# Verify server is running on correct port

πŸ“š Next Steps

  1. Test the system with your Zendesk-ClickUp project

  2. Generate initial maps to see the folder mapping in action

  3. Integrate with your AI workflow using the MCP tools

  4. Customize map templates if needed for your specific patterns

The folder mapping feature transforms how AI agents understand and work with your codebase, making them far more effective at code reuse and avoiding duplication.

Available Tools

19 tools
add_changelog_entryC

Add an entry to the project changelog

Inputs: description (required), filesChanged (required), type (required), breakingChange, +1 more.

add_decisionC

Record an important technical decision

Inputs: key (required), value (required), reasoning (required).

add_session_stepC

Record completion of a step in the current session

Inputs: step (required), filesModified (required), description.

check_before_modificationC

Check if a file can be modified according to AI metadata rules

Inputs: filePath (required).

find_files_with_metadataC

Find all files that contain AI metadata

Inputs: pattern.

generate_all_folder_mapsB

Generate _map.md files for all folders in the project

Inputs: no named parameters.

generate_folder_mapC

Generate or update a _map.md file for a specific folder

Inputs: folderPath (required).

get_file_approval_statusC

Get approval status for a file

Inputs: filePath (required).

get_file_changelogC

Get changelog entries for a specific file

Inputs: filePath (required).

get_file_last_editorC

Get the last editor of a file from Git history

Inputs: filePath (required).

get_modification_actionsC

Get actions that should be taken after modifying a file

Inputs: filePath (required).

get_project_memoryB

Get current project memory and session state

Inputs: no named parameters.

get_recent_changesC

Get recent changelog entries

Inputs: days.

parse_file_metadataC

Parse AI metadata from a file

Inputs: filePath (required).

set_file_approvalC

Set approval status for a file

Inputs: filePath (required), approvalType (required), approvedBy (required).

start_sessionC

Start a new AI coding session with a specific task

Inputs: task (required).

update_all_last_editorsB

Update @last-editor fields in all files with Git author information

Inputs: no named parameters.

update_file_metadataC

Update AI metadata in a file

Inputs: filePath (required), updates (required).

update_last_editorC

Update @last-editor field in a file with Git author information

Inputs: filePath (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.3/5.0

    Scored across 19 tools

    Disambiguation4/5

    Most tools have distinct purposes, but there is some overlap between 'update_file_metadata' and 'parse_file_metadata' that could cause confusion, as both involve metadata handling. Additionally, 'get_file_last_editor' and 'update_last_editor' are closely related but serve different functions, which is acceptable. Overall, the tools are well-differentiated with only minor ambiguities.

    Naming Consistency5/5

    The tool names follow a consistent verb_noun pattern throughout, such as 'add_changelog_entry', 'find_files_with_metadata', and 'update_file_metadata'. All tools use snake_case without deviation, making the naming highly predictable and readable. This consistency aids in easy identification and usage by agents.

    Tool Count4/5

    With 19 tools, the count is slightly high but reasonable for a memory server that manages project metadata, changelogs, and sessions. The tools cover various aspects like file operations, session management, and metadata handling, so each seems to earn its place. However, it borders on being heavy, which could overwhelm agents if not well-organized.

    Completeness5/5

    The tool set provides comprehensive coverage for project memory management, including CRUD operations for metadata, changelogs, and approvals, as well as session lifecycle management. Tools like 'start_session', 'add_session_step', and 'get_project_memory' ensure full session handling, while others cover file-specific actions and metadata updates, leaving no obvious gaps for the domain.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      C
      maintenance
      Provides AI assistants with persistent memory of your project architecture, development history, and technical decisions, allowing them to give context-aware coding help without needing repeated explanations.
      16
      61 npm
      2
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Provides persistent memory for AI coding assistants, storing and retrieving architectural decisions, patterns, and solutions across sessions using semantic search, while also offering git integration for commit messages and code expertise mapping.
      MIT
    • A
      license
      Not graded
      quality
      F
      maintenance
      Provides AI coding assistants with persistent project memory by capturing development checkpoints during git commits, branch switches, and inactivity. It enables seamless task resumption through tools that retrieve session history, momentum, and synthesized re-entry briefings.
      21 npm
      3
      MIT