Skip to main content
Glama
aaronfeingold

MCP Project Context Server

MCP Project Context Server

A Model Context Protocol (MCP) server that provides persistent project context and planning state between Claude Code sessions. This eliminates the need to re-explain project details, current status, and development context every time you start a new coding session.

What It Does

The MCP Project Context Server acts as a persistent memory layer for your development projects, maintaining:

  • Project Information: Name, description, current phase, and status

  • Technology Stack: Frontend, backend, database, infrastructure, and tooling choices

  • Task Management: Development tasks with priorities, status tracking, and dependencies

  • Decision History: Architectural and technical decisions with reasoning

  • Session Continuity: Goals, achievements, and blockers from previous sessions

  • Development Notes: Important observations and insights

Related MCP server: agent-mem0

How It Works

The server implements the Model Context Protocol to provide Claude Code with tools for managing project context:

  1. Project Creation: Initialize new projects with tech stack and current phase

  2. Context Retrieval: Get comprehensive project state and history

  3. Task Management: Create, update, and track development tasks

  4. Decision Recording: Document important technical and architectural decisions

  5. Session Tracking: Maintain continuity between development sessions

  6. Note Taking: Capture important insights and observations

Data is stored as JSON files in a local data directory, making it easy to backup, version control, or inspect manually.

Key Features

  • Persistent Context: Project state survives between Claude Code sessions

  • Technology Stack Awareness: Tracks your preferred technologies and tools

  • Task Prioritization: Organize work with priority levels and status tracking

  • Decision Documentation: Maintain architectural decision records (ADRs)

  • Session Goals: Track what you planned vs what you achieved

  • File-Based Storage: Simple JSON storage that's easy to understand and backup

Prerequisites

  • Node.js 18 or higher

  • pnpm package manager

  • Claude Code CLI tool

Installation

  1. Clone and setup the project:

git clone <repository-url>
cd mcp-project-context
pnpm install
  1. Build the server:

pnpm run build
  1. Make the server executable:

chmod +x dist/index.js

Configuration

Claude Code Setup

  1. Create or edit the Claude Code MCP configuration file:

mkdir -p ~/.claude
  1. Add your server configuration to `~/.claude.json:

{
    "mcpServers": {
      "mcp-project-context": {
        "type": "stdio",
        "command": "/path/to/mcp-project-context/dist/index.js",
        "args": [],
        "env": {}
      }
    }
}

Replace /absolute/path/to/your/mcp-project-context with the actual path to your project directory.

  1. Verify the configuration:

cat ~/.claude/mcp.json

Usage

Once configured, Claude Code will automatically start and connect to your MCP server. You can then use natural language to interact with your project context:

Example Commands

Create a new project:

"Create a new project called 'E-commerce Platform' for building a modern online store using Next.js, Node.js, PostgreSQL, and Docker"

Get current project status:

"What's the current status of my project? Where did we leave off?"

Add development tasks:

"Add a high-priority task to implement user authentication with OAuth"

Record architectural decisions:

"Record that we decided to use Prisma as our ORM because it provides better TypeScript support and easier migrations"

Update task status:

"Mark the authentication task as completed"

Add project notes:

"Add a note that the API rate limiting is causing issues in development"

Available Tools

The server provides these tools to Claude Code:

  • create_project - Initialize a new project with tech stack and description

  • get_project_context - Retrieve comprehensive project state and history

  • list_projects - Show all projects ordered by last access

  • add_task - Create new development tasks with priorities

  • update_task - Modify task status, priority, or details

  • add_note - Capture important observations and insights

  • record_decision - Document architectural and technical decisions

  • start_session - Begin a development session with specific goals

Data Storage

Project data is stored in the data directory:

data/
├── projects/
│   ├── project-uuid-1.json
│   ├── project-uuid-2.json
│   └── project-uuid-3.json
└── sessions/
    ├── session-uuid-1.json
    ├── session-uuid-2.json
    └── session-uuid-3.json

Each file contains structured JSON data that you can inspect or backup as needed.

Development

Project Structure

mcp-project-context/
├── src/
│   ├── index.ts              # Entry point
│   ├── server.ts             # MCP server implementation
│   ├── storage/
│   │   ├── project-store.ts  # File-based storage layer
│   │   └── context-manager.ts # Context management logic
│   └── types/
│       └── project-types.ts  # TypeScript type definitions
├── data/                     # Project data storage
├── package.json
├── tsconfig.json
└── README.md

Available Scripts

  • pnpm run build - Compile TypeScript to JavaScript

  • pnpm run start - Run the compiled server

  • pnpm run dev - Run in development mode with auto-reload

Testing the Server

You can test the server manually:

# Start the server directly
node dist/index.js

# The server will wait for MCP protocol messages via stdin

For interactive testing, use the MCP Inspector:

npx @modelcontextprotocol/inspector node dist/index.js

Troubleshooting

Server Connection Issues

  1. Verify the server builds successfully:

pnpm run build
  1. Check that the executable bit is set:

ls -la dist/index.js
chmod +x dist/index.js
  1. Test the server manually:

node dist/index.js
  1. Verify Claude Code configuration:

cat ~/.claude/mcp.json

Data Directory Issues

If you encounter permission errors, ensure the data directory exists and is writable:

mkdir -p data/projects data/sessions
chmod -R 755 data/

Claude Code Logs

Check Claude Code logs for connection issues:

# The server logs errors to stderr, which Claude Code captures
# Check your terminal output when starting Claude Code

Privacy and Data

  • All project data is stored locally on your machine

  • No data is transmitted to external services

  • JSON files can be easily backed up or version controlled

  • Each developer/machine maintains separate project contexts

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests if applicable

  5. Submit a pull request

License

MIT License - see LICENSE file for details

Support

For issues related to:

Available Tools

9 tools
add_noteAdd NoteC

Add a note to the project

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesProject ID
contentYesNote content
categoryNoNote category

TDQS

C2.9/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 full burden. It states 'Add a note' which implies a write operation, but doesn't disclose behavioral traits such as permissions required, whether notes are editable/deletable, rate limits, or what happens on success/failure. This is a significant gap 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.

Conciseness5/5

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

The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, directly stating the tool's purpose 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?

Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like side effects, error handling, or return values, leaving significant gaps for an AI agent to understand how to use it correctly.

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?

Schema description coverage is 100%, so the schema already documents all three parameters (projectId, content, category) with basic descriptions. The description adds no additional meaning beyond what the schema provides, such as format examples or constraints, meeting the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Add') and target ('note to the project'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'record_decision' or 'add_task', which might also involve adding content to projects, so it lacks sibling distinction.

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. With siblings like 'add_task', 'record_decision', and 'create_project', there's no indication of when a note is appropriate versus other types of project additions or updates.

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

add_taskAdd TaskC

Add a new task to the project

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesProject ID
titleYesTask title
descriptionNoTask description
priorityYesTask priority
tagsNoTask tags

TDQS

C2.9/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 states this is an 'Add' operation, implying a write/mutation, but doesn't address permissions, side effects, error conditions, or what happens on success (e.g., returns a task ID). For a mutation 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.

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose with zero wasted words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly 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 mutation tool with 5 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what the tool returns, error handling, authentication requirements, or how it differs from sibling tools. The combination of write operation complexity and lack of structured metadata requires more descriptive context than provided.

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?

Schema description coverage is 100%, providing clear documentation for all 5 parameters including types, required status, enums for priority, and defaults for tags. The description adds no parameter-specific information beyond what's in the schema, so it meets the baseline for high schema coverage without compensating with extra semantic context.

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

Purpose4/5

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

The description clearly states the action ('Add') and resource ('new task to the project'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'update_task' or 'create_project', which would require more specific language about what makes this tool unique for task creation versus project creation or task modification.

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 'update_task' or 'create_project'. There's no mention of prerequisites, context, or exclusions, leaving the agent to infer usage based solely on the tool name and basic purpose.

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

create_projectCreate ProjectC

Create a new project with initial context

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProject name
descriptionYesProject description
techStackNo
currentPhaseYesCurrent project phase

TDQS

C2.9/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. While 'Create' implies a write operation, the description doesn't address permissions required, whether the operation is idempotent, what happens on duplicate names, or what the response contains. For a mutation tool with zero annotation coverage, this leaves significant behavioral questions unanswered.

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

Conciseness5/5

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

The description is perfectly concise at 6 words, front-loading the essential action. Every word earns its place: 'Create' (verb), 'new project' (resource), 'with initial context' (scope). There's no wasted language or 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 creation tool with 4 parameters (including a complex nested object), no annotations, and no output schema, the description is insufficient. It doesn't explain what 'initial context' means, what happens after creation, or provide any behavioral context. The agent would need to guess about the tool's full behavior and output.

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?

With 75% schema description coverage, the schema already documents most parameters well. The description adds minimal value beyond what's in the schema - 'initial context' vaguely relates to parameters but doesn't explain how 'techStack' or 'currentPhase' contribute to that context. The baseline of 3 is appropriate given the schema does substantial documentation work.

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

Purpose4/5

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

The description clearly states the verb ('Create') and resource ('new project'), making the purpose immediately understandable. It distinguishes from siblings like 'list_projects' or 'get_project_context' by specifying creation rather than retrieval. However, it doesn't explicitly differentiate from potential similar creation tools that might exist in other contexts.

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, when this should be used instead of other project-related tools, or what constitutes 'initial context' that would trigger its use. The agent must infer usage from the tool name alone.

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

end_sessionEnd SessionC

End current session with summary

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYesSession ID
achievementsNoSession achievements
blockersNoBlockers encountered
nextSessionNoPlans for next session

TDQS

C2.7/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 full burden. 'End current session with summary' implies a mutation (ending something) but doesn't disclose behavioral traits like whether this is destructive, what happens to session data, if it requires specific permissions, or what the summary output looks like. It lacks details on side effects or system behavior.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste. It's front-loaded with the core action ('End current session') and adds a clarifying detail ('with summary'). Every word earns its place, 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.

Completeness2/5

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 a mutation tool (implied by 'End'), the description is incomplete. It doesn't explain what 'ending a session' means in this context, what the summary includes, or what the tool returns. For a tool with 4 parameters and potential side effects, more context is needed to guide the agent 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?

Schema description coverage is 100%, so the schema fully documents all 4 parameters. The description adds no parameter semantics beyond what's in the schema—it doesn't explain how 'achievements', 'blockers', or 'nextSession' relate to the summary or session ending. Baseline 3 is appropriate as the schema handles parameter documentation.

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 'End current session with summary' states the verb ('End') and resource ('current session'), but it's vague about what 'with summary' entails. It doesn't clearly distinguish this tool from sibling tools like 'start_session' or explain what ending a session actually does beyond the summary aspect.

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 prerequisites (e.g., must have an active session), exclusions, or relationships to sibling tools like 'start_session' or 'add_note'. The agent must infer usage from the tool name alone.

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

get_project_contextGet Project ContextC

Get comprehensive project context and current state

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesProject ID

TDQS

C2.9/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 'gets' information, implying a read-only operation, but doesn't clarify permissions, rate limits, or what 'comprehensive context' entails (e.g., includes tasks, notes, decisions). For a tool with no annotations, this leaves significant gaps in understanding its behavior.

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: 'Get comprehensive project context and current state'. It's front-loaded with the core purpose and avoids unnecessary words. However, it could be slightly more specific without losing conciseness.

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

Completeness3/5

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

Given the tool's moderate complexity (retrieving project context), no annotations, no output schema, and a simple input schema, the description is minimally adequate. It states what the tool does but lacks details on return values, behavioral constraints, or usage context. It meets the bare minimum for a read operation but leaves the agent guessing about the output format and scope.

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

Parameters4/5

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

The input schema has 100% description coverage, with the single parameter 'projectId' documented as 'Project ID'. The description doesn't add any parameter-specific details beyond what the schema provides, but with only one parameter and high schema coverage, the baseline is high. No additional value is added, but no compensation is needed.

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's purpose as 'Get comprehensive project context and current state', which is clear but vague. It specifies the verb 'Get' and resource 'project context', but doesn't distinguish it from potential sibling tools like 'list_projects' or provide specifics about what 'comprehensive context' includes. This is adequate but lacks differentiation.

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. With siblings like 'list_projects' and 'create_project', there's no indication of when this retrieval tool is appropriate versus listing or creating projects. The agent must infer usage from the name and description alone.

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

list_projectsList ProjectsB

List all projects ordered by last accessed

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/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. It states the ordering behavior ('ordered by last accessed'), which is useful. However, it lacks critical details: whether it's paginated, what fields are returned, if it requires authentication, or any rate limits. For a list operation with zero annotation coverage, this is a significant gap.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste. It front-loads the core action ('List all projects') and adds a useful constraint ('ordered by last accessed') 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?

Given no annotations and no output schema, the description is incomplete. It doesn't explain the return format, pagination, or authentication needs. For a list tool that likely returns multiple items, this leaves the agent with insufficient context to use it effectively.

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

Parameters4/5

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 adds no parameter information, which is appropriate. Baseline is 4 for zero parameters, as the schema fully covers the absence of inputs.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('projects') with a specific ordering constraint ('ordered by last accessed'). It distinguishes from siblings like 'create_project' by indicating retrieval rather than creation. However, it doesn't explicitly differentiate from potential other listing tools (though none are present in the sibling list).

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 prerequisites, context, or compare with siblings like 'get_project_context' for specific project details. The agent must infer usage solely from the tool name and description.

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

record_decisionRecord DecisionC

Record an architectural or technical decision

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesProject ID
decisionYesDecision made
reasoningYesReasoning behind the decision
impactNoExpected impact of the decision

TDQS

C2.9/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. 'Record' implies a write operation, but the description doesn't specify whether this creates a new record, updates an existing one, requires permissions, has side effects, or what the response looks like. It lacks details on persistence, error handling, or any behavioral traits beyond the basic action.

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

Conciseness5/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 front-loaded with the core action and resource, making it easy to parse. Every part of the sentence contributes directly to understanding the tool's purpose, achieving optimal conciseness.

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 a write operation with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like what happens after recording, error conditions, or return values. For a tool that likely mutates data, more context is needed to guide the agent effectively, leaving significant gaps in understanding.

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?

Schema description coverage is 100%, with clear descriptions for all parameters (e.g., 'Decision made', 'Reasoning behind the decision'). The description adds no additional semantic context beyond what the schema provides, such as examples or usage notes. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, but there's no extra value from the description.

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

Purpose4/5

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

The description clearly states the verb 'record' and the resource 'architectural or technical decision', making the purpose understandable. However, it doesn't differentiate this tool from sibling tools like 'add_note' or 'add_task', which might also record information but for different types of content. The description is specific about what kind of decision is being recorded.

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 prerequisites, context (e.g., during project planning), or exclusions. With siblings like 'add_note' and 'add_task', there's no indication of how this tool differs in usage, leaving the agent to guess based on tool names alone.

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

start_sessionStart SessionC

Start a new development session

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesProject ID
goalsYesSession goals

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states the action without disclosing behavioral traits. It doesn't mention if this creates persistent resources, requires authentication, has side effects, or what happens upon success/failure, which is inadequate for a tool that likely initiates a stateful process.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero wasted words. It's front-loaded and appropriately sized for the tool's apparent complexity, making it easy to parse quickly.

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 no annotations, no output schema, and a tool that likely creates a stateful session, the description is incomplete. It doesn't explain what a session is, what it enables, or what the agent should expect after invocation, leaving significant gaps for effective tool use.

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?

Schema description coverage is 100%, so the schema already documents both parameters (projectId and goals). The description adds no meaning beyond this, such as explaining how goals influence the session or what projectId references. Baseline 3 is appropriate as the schema does the heavy lifting.

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 'Start a new development session' clearly states the action (start) and resource (session), but it's vague about what a 'development session' entails and doesn't distinguish from sibling tools like 'end_session' or 'create_project'. It's functional but lacks specificity.

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 'create_project' or 'end_session'. The description implies initiation but doesn't specify prerequisites, timing, or exclusions, leaving the agent to infer usage context.

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

update_taskUpdate TaskC

Update task status or details

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesProject ID
taskIdYesTask ID
statusNoNew task status
titleNoNew task title
descriptionNoNew task description
priorityNoNew task priority

TDQS

C2.9/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 states this is an update operation (implying mutation) but doesn't mention required permissions, whether changes are reversible, error handling, or what happens to existing fields not specified. This leaves significant behavioral 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.

Conciseness5/5

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

The description is a single, efficient sentence that communicates the core purpose without any wasted words. It's appropriately sized and front-loaded with essential information.

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 mutation tool with 6 parameters and no annotations or output schema, the description is inadequate. It doesn't explain what happens when only some fields are provided, whether updates are partial or complete, what the response looks like, or any error conditions. The description should provide more context given the complexity and lack of structured metadata.

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 schema description coverage is 100%, so all parameters are documented in the schema. The description mentions 'status or details' which aligns with the schema's parameters (status, title, description, priority), but adds no additional semantic context beyond what the schema already provides. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the verb ('Update') and resource ('task') along with what can be updated ('status or details'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'add_task', but the 'update' vs 'add' distinction is implied through the naming convention.

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 'add_task' or 'record_decision', nor does it mention prerequisites or context for updating tasks. It simply states what the tool does without any usage context.

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. 9 tool updates
    • First observedadd_note
    • First observedadd_task
    • First observedcreate_project
    • First observedend_session
    • First observedget_project_context
    • First observedlist_projects
    • First observedrecord_decision
    • First observedstart_session
    • First observedupdate_task

TDQS

B3.4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose targeting different project management functions: project creation/listing, session management, task/note/decision handling, and context retrieval. No tools overlap in functionality, making selection straightforward for an agent.

Naming Consistency5/5

All tools follow a consistent verb_noun naming pattern (e.g., add_note, create_project, get_project_context) with clear, descriptive action-object pairs. There are no deviations in style or convention across the set.

Tool Count5/5

With 9 tools, the server is well-scoped for project context management, covering core operations like project lifecycle, session handling, and task/note/decision tracking. Each tool earns its place without bloat or gaps.

Completeness4/5

The toolset provides strong coverage for project context workflows, including CRUD-like operations for projects, tasks, notes, and decisions, plus session management. A minor gap exists in updating or deleting notes/decisions, but agents can work around this with the available tools.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

  • A
    license
    Not graded
    quality
    F
    maintenance
    A persistent memory server for Claude Code that captures session context and tool outputs to inject relevant history into future sessions. It enables long-term recall through semantic search and automatic context management, allowing for more consistent and context-aware coding interactions.
    10
    253
    ISC
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides persistent cross-session memory for Claude Code, enabling it to remember user preferences, decisions, and project context across new sessions.
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Persistent memory for Claude Code — a self-evolving knowledge layer that survives across sessions, grows from every conversation, and surfaces relevant context automatically.
    14
    MIT

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/aaronfeingold/mcp-project-context'

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