Skip to main content
Glama
README.md9.19 kB
# Project Memory MCP A Model Context Protocol (MCP) server that provides AI-driven project memory management through structured prompts. This server acts as a **pure prompt provider** - it never touches your files directly. Instead, it returns instructions for Claude to execute using its standard tools. ## What is This? `project-memory-mcp` helps Claude manage your project context by: - **Parsing tasks** from specs and implementation plans - **Reviewing code** before commits - **Syncing project memory** with commit history - **Maintaining project documentation** (architecture, conventions, commands) All operations are performed by Claude using its Read, Write, Edit, and Bash tools after getting your approval. ## Key Features ✅ **Pure prompt provider** - No file access, only returns instructions ✅ **Interface-agnostic** - Works with Claude Desktop, Claude Code CLI, or custom clients ✅ **No API costs** - Uses your existing Claude subscription ✅ **User approval required** - Claude asks before making any changes ✅ **Project-specific prompts** - Customized during initialization for your stack ✅ **200-line limit** - Prevents context bloat ## Installation Install globally from GitHub: ```bash npm install -g git+https://github.com/misaamane21j/project-memory-mcp.git ``` ## Setup ### Configure MCP in Claude Desktop Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS): ```json { "mcpServers": { "project-memory": { "command": "project-memory-mcp" } } } ``` ### Configure MCP in Claude Code CLI Add to your MCP settings (`~/.config/claude/mcp_settings.json`): ```json { "mcpServers": { "project-memory": { "command": "project-memory-mcp" } } } ``` ### Restart Claude Restart Claude Desktop or Claude Code CLI to load the MCP server. ## Usage ### Initialize Project Memory In your project directory, ask Claude: ``` "Initialize project memory" ``` Claude will: 1. Create `.project-memory/` folder structure 2. Analyze your project (language, frameworks, structure, conventions) 3. Generate and customize project-specific prompts (base.md, parse-tasks.md, review.md, sync.md) 4. Populate initial documentation files (architecture.md, conventions.md, useful-commands.md) with detected project info 5. Add minimal IMPORTANT reference to `claude.md` **Important:** Each prompt file is limited to ≤ 200 lines to prevent context bloat. ### Parse Tasks from Specs Add a spec file to `.project-memory/specs/feature-name.md`, then ask Claude: ``` "Parse tasks from the spec" ``` Claude will: 1. Read the spec file 2. Extract tasks with IDs, descriptions, acceptance criteria, dependencies 3. Show you the parsed tasks 4. After approval, add them to `.project-memory/tasks/tasks-active.json` ### Review Code Before Committing Before committing, ask Claude: ``` "Review my changes" ``` Claude will: 1. Get `git diff` and `git diff --cached` 2. Read current tasks and architecture 3. Analyze code for issues 4. Propose task status updates 5. After approval, update project memory ### Sync After Commits After committing, ask Claude: ``` "Sync project memory" ``` Claude will: 1. Get recent commit history 2. Determine completed tasks 3. Update commit log (last 20 commits) 4. Update architecture if changed 5. After approval, apply updates ### Organize Existing CLAUDE.md For existing projects with verbose CLAUDE.md files, ask Claude: ``` "Organize my CLAUDE.md into project memory" ``` Claude will: 1. Read and analyze your CLAUDE.md 2. Identify sections: architecture, conventions, commands, tasks, specs 3. Show migration plan with line numbers 4. After approval, migrate content to `.project-memory/` files 5. Replace verbose sections with minimal references in CLAUDE.md **Example migration:** - Architecture (75 lines) → `.project-memory/architecture.md` - Conventions (60 lines) → `.project-memory/conventions.md` - Commands (30 lines) → `.project-memory/useful-commands.md` - Tasks → `.project-memory/tasks/tasks-active.json` - Specs → `.project-memory/specs/*.md` **Result:** CLAUDE.md stays clean with just references, detailed content lives in organized files. ### Proactive Prompting After initialization, Claude will automatically prompt you: - **When you provide a spec:** "Would you like me to parse tasks?" - **Before commits:** "Would you like me to review your changes?" - **After commits:** "Would you like me to sync project memory?" - **Session start:** Check for pending reviews/syncs ## Project Structure After initialization, your project will have: ``` .project-memory/ ├── tasks/ │ ├── tasks-active.json # Active and in-progress tasks │ └── tasks-completed.json # Completed tasks ├── specs/ │ └── *.md # Immutable spec files (you create these) ├── prompts/ │ ├── base.md # Core instructions (≤200 lines) │ ├── parse-tasks.md # Task parsing workflow (≤200 lines) │ ├── review.md # Code review workflow (≤200 lines) │ ├── sync.md # Post-commit sync workflow (≤200 lines) │ └── languages/ # Optional language-specific extensions ├── architecture.md # Project architecture docs ├── conventions.md # Coding conventions ├── useful-commands.md # Common commands └── commit-log.md # Last 20 commits ``` ## Task Schema Tasks follow this structure: ```json { "id": "TASK-001", "title": "Brief description", "description": "Detailed description", "status": "pending | in_progress | completed", "priority": "low | medium | high | critical", "acceptanceCriteria": ["criterion 1", "criterion 2"], "dependencies": ["TASK-000"], "subtasks": [ { "id": "TASK-001-1", "title": "Sub-task title", "status": "pending", "acceptanceCriteria": ["optional"] } ], "specReference": "specs/feature-auth.md", "complexity": "simple | moderate | complex", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-16T14:30:00Z", "completedAt": null } ``` ## MCP Tools The server exposes 5 tools (all return prompts only): ### `init` Initialize project memory system. Run once per project. ### `parse-tasks` Parse tasks from spec files or implementation plans. ### `review` Review uncommitted code changes against project context. ### `sync` Sync project memory with recent commits. ### `organize` Organize existing CLAUDE.md into project-memory structure. Migrates architecture, conventions, commands, tasks, and specs from verbose CLAUDE.md to organized files. ## How It Works ``` ┌─────────────────────────────────────┐ │ Claude (your subscription) │ │ - Analyzes prompts │ │ - Uses Read/Write/Edit/Bash tools │ │ - Asks for user approval │ └──────────────┬──────────────────────┘ │ MCP protocol ▼ ┌─────────────────────────────────────┐ │ project-memory-mcp Server │ │ - Returns prompt text only │ │ - NO file operations │ │ - NO git commands │ └─────────────────────────────────────┘ ``` ## Architecture Principles 1. **MCP is a pure prompt provider** - Only returns text instructions - Never reads/writes project files - Never executes git commands 2. **Claude does all the work** - Uses standard tools (Read, Write, Edit, Bash) - User sees all operations - Requires approval via AskUserQuestion 3. **Project-specific customization** - Prompts tailored to your tech stack - Language-specific guidelines - Framework conventions 4. **200-line limit per prompt** - Prevents context bloat - Keeps prompts focused - Enforced during init ## Development ```bash # Install dependencies npm install # Build npm run build # Watch mode npm run watch # Run tests npm test # Lint npm run lint # Format npm run format ``` ## Testing Run the test suite: ```bash npm test ``` Tests cover: - Prompt length validation (200-line limit) - Prompt composition - Edge cases ## Contributing Contributions welcome! Please: 1. Fork the repository 2. Create a feature branch 3. Make your changes 4. Add tests 5. Submit a pull request ## License MIT ## Links - [Spec](./spec.md) - Detailed specification - [MCP Documentation](https://modelcontextprotocol.io/) - [GitHub Repository](https://github.com/misaamane21j/project-memory-mcp) ## Support For issues, questions, or feedback: - [GitHub Issues](https://github.com/misaamane21j/project-memory-mcp/issues) --- **Note:** This MCP server requires Claude Desktop, Claude Code CLI, or another MCP-compatible client to function.

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/misaamane21j/project-memory-mcp'

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