Project Memory MCP
Click on "Install 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., "@Project Memory MCPreview my changes before I commit this feature"
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.
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:
npm install -g git+https://github.com/misaamane21j/project-memory-mcp.gitSetup
Configure MCP in Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"project-memory": {
"type": "stdio",
"command": "project-memory-mcp"
}
}
}Configure MCP in Claude Code CLI
Add to your user config at ~/.claude.json:
{
"mcpServers": {
"project-memory": {
"type": "stdio",
"command": "project-memory-mcp"
}
}
}This will make the mcp available in all your project.
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:
Create
.project-memory/folder structureAnalyze your project (language, frameworks, structure, conventions)
Generate and customize project-specific prompts (base.md, parse-tasks.md, review.md, sync.md)
Populate initial documentation files (architecture.md, conventions.md, useful-commands.md) with detected project info
Add session-start checklist to CLAUDE.md (ensures project memory is loaded every session)
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:
Read the spec file
Extract tasks with IDs, descriptions, acceptance criteria, dependencies
Show you the parsed tasks
After approval, add them to
.project-memory/tasks/tasks-active.json
Review Code Before Committing
Before committing, ask Claude:
"Review my changes"Claude will:
Get
git diffandgit diff --cachedRead current tasks and architecture
Analyze code for issues
Propose task status updates
After approval, update project memory
Sync After Commits
After committing, ask Claude:
"Sync project memory"Claude will:
Get recent commit history
Determine completed tasks
Update commit log (last 20 commits)
Update architecture if changed
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:
Read and analyze your CLAUDE.md
Identify sections: architecture, conventions, commands, tasks, specs
Show migration plan with line numbers
After approval, migrate content to
.project-memory/filesReplace verbose sections with minimal references in CLAUDE.md
Example migration:
Architecture (75 lines) →
.project-memory/architecture.mdConventions (60 lines) →
.project-memory/conventions.mdCommands (30 lines) →
.project-memory/useful-commands.mdTasks →
.project-memory/tasks/tasks-active.jsonSpecs →
.project-memory/specs/*.md
Result: CLAUDE.md stays clean with just references, detailed content lives in organized files.
Create Spec from Requirements
When you have a feature idea or requirements, ask Claude:
"Create a spec for user authentication"Claude will:
Clarify ambiguous requirements
Validate against existing codebase
Consider security, edge cases, and testing
Write spec to
.project-memory/specs/
Refresh Prompts
When prompt templates have been updated, ask Claude:
"Refresh project memory prompts"Claude will:
Backup existing prompts
Compare with new templates
Preserve your customizations
Merge improvements into updated prompts
Proactive Prompting
After initialization, Claude will automatically:
Session start: Read project memory files (tasks, architecture, conventions) before working
When you provide a spec: Offer to parse tasks
Before commits: Offer to review changes
After commits: Offer to sync project memory
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 commitsTask Schema
Tasks follow this structure:
{
"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 7 tools (all return prompts only):
init
Initialize project memory system. Run once per project.
parse-tasks
Parse tasks from spec files or implementation plans. Checks existing tasks AND codebase to avoid duplicates.
review
Review uncommitted code changes against project context. Uses extended thinking for thorough analysis.
sync
Sync project memory with recent commits. Ensures CLAUDE.md never has outdated references.
organize
Organize existing CLAUDE.md into project-memory structure. Migrates architecture, conventions, commands, tasks, and specs from verbose CLAUDE.md to organized files.
create-spec
Create detailed specification from user requirements. Clarifies ambiguity, validates against codebase, considers security and edge cases.
refresh-prompts
Update project-specific prompts with latest template improvements while preserving customizations. Backs up existing prompts before changes.
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
MCP is a pure prompt provider
Only returns text instructions
Never reads/writes project files
Never executes git commands
Claude does all the work
Uses standard tools (Read, Write, Edit, Bash)
User sees all operations
Requires approval via AskUserQuestion
Project-specific customization
Prompts tailored to your tech stack
Language-specific guidelines
Framework conventions
200-line limit per prompt
Prevents context bloat
Keeps prompts focused
Enforced during init
Development
# Install dependencies
npm install
# Build
npm run build
# Watch mode
npm run watch
# Run tests
npm test
# Lint
npm run lint
# Format
npm run formatTesting
Run the test suite:
npm testTests cover:
Prompt length validation (200-line limit)
Prompt composition
Edge cases
Contributing
Contributions welcome! Please:
Fork the repository
Create a feature branch
Make your changes
Add tests
Submit a pull request
License
MIT
Links
Spec - Detailed specification
Support
For issues, questions, or feedback:
Note: This MCP server requires Claude Desktop, Claude Code CLI, or another MCP-compatible client to function.
Available Tools
7 toolscreate-specA
Create detailed specification from user requirements. Use this tool when: (1) user asks to create/write a spec, (2) user describes a feature they want to build, (3) user says "spec this" or "write a spec for". Clarifies ambiguity, validates against codebase, considers security/edge cases/tests, and writes spec to .project-memory/specs/.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 describes key behaviors such as clarifying ambiguity, validating against codebase, considering security/edge cases/tests, and writing to a specific directory, which adds useful context. However, it lacks details on error handling, performance expectations, or authentication needs, leaving some gaps in 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 well-structured and front-loaded with the core purpose, followed by usage guidelines and behavioral details. It is appropriately sized with no wasted sentences, though it could be slightly more concise by integrating the behavioral aspects more tightly with the usage scenarios.
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's complexity (involving validation and writing to files) and the absence of annotations and output schema, the description does a good job covering purpose, usage, and key behaviors. It explains the output location (.project-memory/specs/) but could benefit from mentioning the format or structure of the created spec to enhance 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 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately does not discuss parameters, focusing instead on the tool's purpose and usage. This meets the baseline expectation for tools with no parameters, as it avoids unnecessary details.
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 with specific verbs ('create detailed specification') and resources ('from user requirements'), and distinguishes it from siblings by detailing its unique function of writing specs to a specific directory (.project-memory/specs/). It goes beyond a tautology by explaining the process includes clarifying ambiguity, validation, and consideration of security/edge cases/tests.
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 guidelines with three specific scenarios when to use this tool (e.g., user asks to create/write a spec, describes a feature, or uses phrases like 'spec this'), offering clear context for activation. It implicitly distinguishes from siblings by focusing on spec creation rather than other tasks like initialization or review.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
initA
Initialize project memory system. Creates folder structure, generates project-specific prompts, and sets up claude.md instructions. Only run once per project.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it's a setup/initialization operation that creates multiple artifacts (folders, prompts, instructions). It doesn't mention permissions, side effects, or error handling, but covers the core behavior adequately.
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 the core purpose followed by implementation details and critical usage constraint. Every word earns its place with zero redundancy or filler content.
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 zero-parameter setup tool with no annotations or output schema, the description provides complete operational context: what it does, what it creates, and crucial usage frequency. It could mention what happens on re-execution or error scenarios, but covers the essentials well.
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 0 parameters with 100% schema description coverage. The description appropriately doesn't discuss parameters since none exist, maintaining focus on the tool's purpose and behavior rather than unnecessary parameter details.
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 specific action ('Initialize project memory system') and enumerates concrete outcomes: creates folder structure, generates project-specific prompts, sets up claude.md instructions. It distinguishes from siblings by specifying 'Only run once per project'.
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 when to use ('Only run once per project') and implies when not to use (avoid re-running on same project). While it doesn't name specific alternatives, the 'once per project' constraint provides clear operational guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
organizeA
Organize existing CLAUDE.md into project-memory structure. Migrates architecture, conventions, commands, tasks, and specs from CLAUDE.md to .project-memory/ files while keeping minimal references. Requires user approval.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 reveals important behavioral traits: the tool performs migration/reorganization (implies mutation), requires user approval (interactive/confirmation step), and keeps minimal references (preservation behavior). However, it doesn't disclose potential side effects like whether original CLAUDE.md is modified or deleted, error handling, or what happens if .project-memory/ already exists. The description adds value but leaves gaps for a mutation tool.
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 perfectly concise and well-structured in two sentences. The first sentence states the core action and scope. The second sentence adds crucial behavioral constraints (user approval requirement). Every word earns its place with no redundancy or fluff. It's front-loaded with the main purpose immediately clear.
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 this is a mutation tool (reorganizes/migrates files) with no annotations and no output schema, the description should do more heavy lifting. It covers the what (migration) and one constraint (user approval) but doesn't describe what the tool returns, error conditions, or what happens to the source CLAUDE.md file. For a file manipulation tool with zero structured metadata, this leaves significant gaps in understanding the complete behavior.
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 0 parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't waste space discussing parameters that don't exist. It focuses on what the tool does rather than parameter details, which is correct for a zero-parameter tool. Baseline for 0 params 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's purpose: 'Organize existing CLAUDE.md into project-memory structure' and specifies what gets migrated (architecture, conventions, commands, tasks, specs). It distinguishes from siblings like 'create-spec' or 'parse-tasks' by focusing on migration/organization rather than creation or parsing. However, it doesn't explicitly contrast with 'sync' or 'refresh-prompts' which might have overlapping functionality.
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 clear context for when to use this tool: when you need to migrate content from CLAUDE.md to .project-memory/ files. It explicitly states 'Requires user approval' which indicates a prerequisite condition. However, it doesn't specify when NOT to use it or mention alternatives among sibling tools like 'sync' or 'refresh-prompts' that might handle similar content management.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parse-tasksA
Parse tasks from spec files or implementation plans. Extracts tasks with IDs, descriptions, acceptance criteria, dependencies, and adds them to tasks-active.json after user approval.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 describes key behaviors: parsing tasks from files, extracting specific attributes (IDs, descriptions, etc.), and adding them to a JSON file after user approval. However, it lacks details on error handling, file format requirements, or what happens if tasks-active.json doesn't exist. It adds value but misses some operational context.
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 a single, well-structured sentence that efficiently conveys the tool's purpose, source, extraction details, and approval step. Every part earns its place, with no redundant information. It could be slightly more front-loaded by starting with the core action, but it's highly 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 the tool's complexity (parsing and modifying files with user approval), no annotations, no output schema, and 0 parameters, the description is moderately complete. It covers the what and how but lacks details on file paths, approval mechanism, error cases, or output format. For a tool with behavioral implications, it should provide more operational 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?
The input schema has 0 parameters with 100% coverage, so the baseline is 4. The description doesn't need to explain parameters, and it doesn't introduce any parameter-related confusion. It appropriately focuses on the tool's action rather than inputs.
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 with specific verbs ('parse', 'extracts', 'adds') and resources ('tasks from spec files or implementation plans', 'tasks-active.json'). It distinguishes from siblings by focusing on task parsing rather than creation (create-spec), organization (organize), or review (review). However, it doesn't explicitly differentiate from all siblings like 'sync' or 'refresh-prompts'.
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 context ('from spec files or implementation plans', 'after user approval'), suggesting when to use this tool for task extraction and approval workflows. However, it doesn't provide explicit guidance on when to use alternatives like 'organize' or 'review', nor does it state when not to use this tool. The guidance is present but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refresh-promptsA
Refresh project-specific prompts with latest template improvements while preserving customizations. Backs up existing prompts, compares with new templates, identifies customizations, and merges them into updated templates. Requires user approval before modifications.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: it backs up existing prompts, compares templates, identifies customizations, merges updates, and requires user approval before modifications. This covers safety and process details, though it lacks specifics on error handling or performance.
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 purpose in the first clause and efficiently uses three sentences to detail the process and requirement. Every sentence adds essential information without waste, making it highly concise and well-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?
Given the complexity of a tool that modifies prompts with user approval, no annotations, and no output schema, the description is largely complete. It explains what the tool does, the process, and the approval step, though it could benefit from mentioning the output format or error scenarios to be fully comprehensive.
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 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately does not discuss parameters, focusing instead on the tool's behavior and context, which adds value beyond the empty 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 specific action ('refresh project-specific prompts') and resource ('prompts'), explaining it involves updating templates while preserving customizations. It distinguishes from potential siblings like 'sync' or 'organize' by focusing on template merging with user approval.
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 clear context for usage ('with latest template improvements while preserving customizations') and implies when to use it (for updating prompts from templates). However, it does not explicitly state when not to use it or name alternatives among the sibling tools, such as when to choose 'sync' instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reviewB
Review uncommitted code changes. Analyzes git diff, checks against current tasks and architecture, identifies issues, and proposes task/architecture updates for user approval.
| 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 full burden. It describes behavioral aspects like analyzing git diff and proposing updates for approval, but lacks details on permissions needed, whether it modifies files, error handling, or output format. For a tool with no annotations, this is a significant gap in 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 a single, well-structured sentence that efficiently covers the tool's actions: review, analyze, check, identify, and propose. It's front-loaded with the main purpose and avoids unnecessary details, though it could be slightly more concise by combining some clauses.
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, no output schema, and 0 parameters, the description provides a clear purpose and high-level behavior. However, for a tool that performs analysis and proposes updates, it lacks details on what the output looks like, how approvals are handled, or any limitations, making it minimally adequate but with 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?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately adds no parameter details, focusing on the tool's function. Baseline for 0 parameters is 4, as it doesn't need to compensate for any schema gaps.
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: 'Review uncommitted code changes' with specific actions like analyzing git diff, checking against tasks/architecture, identifying issues, and proposing updates. It uses a specific verb ('Review') and resource ('uncommitted code changes'), though it doesn't explicitly differentiate from sibling tools like 'organize' or 'parse-tasks'.
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 context through 'uncommitted code changes' and 'for user approval,' suggesting it's used during development before committing. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like 'sync' or 'organize,' nor does it specify prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
syncB
Sync project memory with recent commits. Updates tasks (marks completed), prunes commit log to last 20 commits, updates architecture if needed, and extracts new commands.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 describes multiple actions (updating tasks, pruning commit log, updating architecture, extracting commands), which gives some context on what changes occur. However, it lacks details on permissions, side effects, or response format, leaving gaps for a tool that performs multiple updates.
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 appropriately sized and front-loaded, starting with the core purpose followed by a list of specific actions. Each sentence adds value, though it could be slightly more structured (e.g., bullet points) for clarity. There's minimal waste, making it 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?
Given the tool's complexity (performing multiple updates) and lack of annotations or output schema, the description is moderately complete. It outlines key actions but doesn't cover all contextual aspects like error handling, dependencies, or what 'updates architecture if needed' entails. It's adequate but has clear gaps for a multi-action sync 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 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description doesn't need to add parameter semantics, and it appropriately focuses on the tool's actions without redundant parameter info, meeting the baseline for this case.
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: 'Sync project memory with recent commits' followed by specific actions it performs. It uses a specific verb ('sync') and identifies the resource ('project memory'), though it doesn't explicitly differentiate from sibling tools like 'refresh-prompts' or 'organize' which might have overlapping domains.
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 explicit guidance on when to use this tool versus alternatives is provided. The description lists what the tool does but doesn't indicate context, prerequisites, or when it should be invoked relative to siblings like 'refresh-prompts' or 'organize'. Usage is implied through the action list but not clearly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose with no overlap: create-spec generates specifications, init sets up the system, organize migrates existing content, parse-tasks extracts tasks, refresh-prompts updates templates, review analyzes code changes, and sync integrates commits. The descriptions provide specific use cases and actions, making misselection unlikely.
All tool names follow a consistent verb-based pattern (e.g., create-spec, init, organize, parse-tasks, refresh-prompts, review, sync), using lowercase with hyphens for multi-word names. This uniformity makes the set predictable and easy to navigate, with no deviations in style.
With 7 tools, this server is well-scoped for managing project memory, covering initialization, organization, task parsing, prompt refreshing, code review, and synchronization. Each tool earns its place by addressing a specific aspect of the workflow without being excessive or insufficient.
The tool set provides complete coverage for the project memory domain, including setup (init, organize), content creation (create-spec, parse-tasks), maintenance (refresh-prompts, sync), and quality assurance (review). There are no obvious gaps, and the tools support a full lifecycle from initialization to ongoing updates.
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
Persistent, governed institutional memory for Claude Code — specs, decisions, learnings.
Persistent memory for Claude Code and Cursor. Stop re-explaining your project every session.
Persistent context for Claude. Your AI always knows your projects and next actions across sessions.
Shared project context for AI agents and teams: docs, tasks, and messages that stay current.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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