Skip to main content
Glama
PhilippMT

Software Planning Tool

by PhilippMT

Software Planning Tool ๐Ÿš€

A Model Context Protocol (MCP) server designed to facilitate software development planning through an interactive, structured approach. This tool helps break down complex software projects into manageable tasks, track implementation progress, and maintain detailed development plans.

Features โœจ

  • Interactive Planning Sessions: Start and manage development planning sessions

  • Todo Management: Create, update, and track development tasks

  • Complexity Scoring: Assign complexity scores to tasks for better estimation

  • Code Examples: Include relevant code snippets in task descriptions

  • Implementation Plans: Save and manage detailed implementation plans

Related MCP server: Software Planning MCP Server

Installation ๐Ÿ› ๏ธ

Installing via Smithery

To install Software Planning Tool for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @NightTrek/Software-planning-mcp --client claude

Manual Installation

  1. Clone the repository

  2. Install dependencies:

pnpm install
  1. Build the project:

pnpm run build
  1. Add to your MCP settings configuration (typically located at ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json):

{
  "mcpServers": {
    "software-planning-tool": {
      "command": "node",
      "args": [
        "/path/to/software-planning-tool/build/index.js"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}

Available Tools ๐Ÿ”ง

start_planning

Start a new planning session with a specific goal.

{
  goal: string  // The software development goal to plan
}

add_todo

Add a new todo item to the current plan.

{
  title: string,         // Title of the todo item
  description: string,   // Detailed description
  complexity: number,    // Complexity score (0-10)
  codeExample?: string  // Optional code example
}

get_todos

Retrieve all todos in the current plan.

// No parameters required

update_todo_status

Update the completion status of a todo item.

{
  todoId: string,     // ID of the todo item
  isComplete: boolean // New completion status
}

save_plan

Save the current implementation plan.

{
  plan: string  // The implementation plan text
}

remove_todo

Remove a todo item from the current plan.

{
  todoId: string  // ID of the todo item to remove
}

Example Usage ๐Ÿ“

Here's a complete example of using the software planning tool:

  1. Start a planning session:

await client.callTool("software-planning-tool", "start_planning", {
  goal: "Create a React-based dashboard application"
});
  1. Add a todo item:

const todo = await client.callTool("software-planning-tool", "add_todo", {
  title: "Set up project structure",
  description: "Initialize React project with necessary dependencies",
  complexity: 3,
  codeExample: `
npx create-react-app dashboard
cd dashboard
npm install @material-ui/core @material-ui/icons
  `
});
  1. Update todo status:

await client.callTool("software-planning-tool", "update_todo_status", {
  todoId: todo.id,
  isComplete: true
});
  1. Save the implementation plan:

await client.callTool("software-planning-tool", "save_plan", {
  plan: `
# Dashboard Implementation Plan

## Phase 1: Setup (Complexity: 3)
- Initialize React project
- Install dependencies
- Set up routing

## Phase 2: Core Features (Complexity: 5)
- Implement authentication
- Create dashboard layout
- Add data visualization components
  `
});

Development ๐Ÿ”จ

Project Structure

software-planning-tool/
  โ”œโ”€โ”€ src/
  โ”‚   โ”œโ”€โ”€ index.ts        # Main server implementation
  โ”‚   โ”œโ”€โ”€ prompts.ts      # Planning prompts and templates
  โ”‚   โ”œโ”€โ”€ storage.ts      # Data persistence
  โ”‚   โ””โ”€โ”€ types.ts        # TypeScript type definitions
  โ”œโ”€โ”€ build/              # Compiled JavaScript
  โ”œโ”€โ”€ package.json
  โ””โ”€โ”€ tsconfig.json

Building

pnpm run build

Testing

Test all features using the MCP inspector:

pnpm run inspector

License ๐Ÿ“„

MIT


Made with โค๏ธ using the Model Context Protocol

Available Tools

6 tools
add_todoC

Add a new todo item to the current plan

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTitle of the todo item
descriptionYesDetailed description of the todo item
complexityYesComplexity score (0-10)
codeExampleNoOptional code example

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 full burden but only states the basic action without disclosing behavioral traits. It doesn't mention permissions needed, whether the addition is reversible, how it affects the plan state, or any rate limits/constraints. For a mutation tool with zero annotation coverage, this is inadequate.

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 without unnecessary words. It's appropriately sized and front-loaded, with every part contributing 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?

Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral aspects (e.g., side effects, error handling) and doesn't compensate for the missing structured data, making it insufficient for safe and effective use by an agent.

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 parameters. The description adds no additional meaning beyond implying parameters relate to a 'todo item', which is already clear from the schema. This meets the baseline for high schema coverage but doesn't enhance understanding.

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 todo item to the current plan'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'update_todo_status' or 'save_plan', which would require more specific language about creation versus 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_todo_status' or 'save_plan'. It mentions 'current plan' but doesn't clarify prerequisites (e.g., whether a plan must be active) or exclusions, leaving usage context implied rather than explicit.

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

get_todosB

Get all todos in the current plan

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 'Get all todos' but doesn't disclose behavioral traits such as whether this is a read-only operation, if it requires authentication, how it handles empty plans, or what the return format is. This is inadequate for a tool with zero annotation coverage.

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

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 and appropriately sized for the tool's simplicity, 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 the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'current plan' means, how todos are returned, or any error conditions. For a tool that likely interacts with a planning system, this leaves significant gaps in understanding its full context.

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 tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it correctly doesn't mention any. A baseline of 4 is appropriate for zero parameters with full 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 ('Get') and resource ('all todos in the current plan'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'update_todo_status' or 'save_plan', which might also involve todos, so it misses full 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. It doesn't mention prerequisites (e.g., needing a current plan), exclusions, or compare to siblings like 'add_todo' or 'remove_todo', leaving usage context unclear.

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

remove_todoC

Remove a todo item from the current plan

ParametersJSON Schema
NameRequiredDescriptionDefault
todoIdYesID of the todo item to remove

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 the tool removes a todo item, implying a destructive mutation, but doesn't clarify if this is permanent, reversible, requires specific permissions, or affects other plan components. For a mutation tool with zero annotation coverage, this is a significant gap in transparency, as it omits critical behavioral traits like side effects or error conditions.

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, front-loaded sentence that efficiently conveys the core action without unnecessary words. Every part ('Remove a todo item from the current plan') earns its place by specifying the verb, resource, and context, making it highly concise and well-structured for quick understanding.

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

Completeness2/5

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

Given the tool's complexity as a destructive mutation with no annotations and no output schema, the description is incomplete. It lacks details on behavioral aspects (e.g., permanence, permissions), output expectations, or error handling. While the purpose is clear, the context for safe and effective use is insufficient, especially compared to siblings that might offer more guidance or structured returns.

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 input schema has 100% description coverage, with 'todoId' clearly documented as the ID of the todo item to remove. The description adds no additional parameter details beyond what the schema provides, such as format examples or constraints. Given the high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract from the schema's documentation.

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 ('Remove') and resource ('a todo item from the current plan'), making the purpose immediately understandable. It distinguishes from siblings like 'add_todo' and 'update_todo_status' by specifying removal rather than addition or modification. However, it doesn't explicitly differentiate from potential deletion operations in other contexts, keeping it at 4 rather than 5.

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_todo_status' (which might mark as done instead of remove) or 'save_plan' (which might handle broader plan modifications). It lacks explicit when/when-not instructions or prerequisite context, such as requiring an existing todo or plan, leaving usage ambiguous beyond the basic purpose.

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

save_planC

Save the current implementation plan

ParametersJSON Schema
NameRequiredDescriptionDefault
planYesThe implementation plan text to save

TDQS

C2.6/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 implies a write operation ('save'), but doesn't specify whether this creates a new plan, updates an existing one, requires authentication, has side effects (e.g., overwriting data), or what happens on success/failure. This is a significant gap for a mutation tool with zero annotation coverage.

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

Conciseness4/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized for a simple tool, though it could be more front-loaded with key details if expanded. Every word earns its place, but it's slightly under-specified rather than concise.

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

Completeness2/5

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

Given the tool's complexity (a mutation operation with no annotations and no output schema), the description is incomplete. It doesn't explain what 'save' entails behaviorally, what the return value might be, or how it interacts with the planning context implied by sibling tools. For a tool that likely modifies state, this lack of detail is inadequate.

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 input schema has 100% description coverage, with the 'plan' parameter clearly documented as 'The implementation plan text to save'. The description adds no additional meaning beyond this, such as format constraints or examples. According to the rules, when schema coverage is high (>80%), the baseline score is 3 even without param info in the description.

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 action ('save') and the resource ('current implementation plan'), which provides a basic understanding of the tool's function. However, it's somewhat vague about what constitutes 'current' and doesn't differentiate from sibling tools like 'start_planning' or 'add_todo', which might involve plan-related operations. It avoids being a tautology or misleading, 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?

The description offers no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether a plan must be started first), exclusions, or relationships with sibling tools like 'start_planning' or 'add_todo'. This leaves the agent with no context for tool selection beyond the basic purpose.

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

start_planningC

Start a new planning session with a goal

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYesThe software development goal to plan

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 the action ('Start a new planning session') but doesn't explain what this entailsโ€”such as whether it creates a persistent session, requires authentication, has side effects, or returns any data. For a tool with zero annotation coverage, 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.

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 without any wasted words. It is front-loaded with the core action and resource, making it easy to understand at a glance. Every part of the sentence earns its place by conveying 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?

Given the tool's complexity (initiating a session), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what happens after starting the session, what data is returned, or how it interacts with sibling tools like 'save_plan'. For a tool with these gaps, more context is needed to be fully helpful.

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 the schema already documents the single parameter 'goal' with its type and description. The description adds no additional meaning beyond what the schema provides, such as examples or constraints. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

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 ('Start') and resource ('a new planning session') with the specific purpose of establishing a goal. It distinguishes from siblings like 'add_todo' or 'save_plan' by focusing on session initiation rather than task management or persistence. However, it doesn't explicitly differentiate from potential overlapping tools, keeping it at a 4 instead of 5.

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 'save_plan' or 'add_todo', nor does it mention prerequisites or context for starting a planning session. It lacks explicit when/when-not instructions or named alternatives, leaving usage unclear beyond the basic purpose.

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

update_todo_statusC

Update the completion status of a todo item

ParametersJSON Schema
NameRequiredDescriptionDefault
todoIdYesID of the todo item
isCompleteYesNew completion status

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 full burden for behavioral disclosure. It states this is an update operation, implying mutation, but doesn't address permissions, side effects, error conditions, or response format. 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 without unnecessary words. It's appropriately sized for a simple update operation and front-loads the 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 no annotations and no output schema, the description is insufficiently complete. It doesn't explain what happens after the update (e.g., success confirmation, error responses), nor does it cover behavioral aspects like permissions or side effects, leaving the agent with critical gaps.

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 both parameters clearly documented in the schema. The description adds no additional parameter semantics beyond what's already in the schema (e.g., format constraints or examples). The baseline score of 3 reflects adequate but minimal value addition.

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 ('completion status of a todo item'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential sibling operations like 'add_todo' or 'remove_todo' beyond the obvious status update focus, which prevents a perfect score.

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_todo' for creating todos or 'get_todos' for checking status. There's no mention of prerequisites (e.g., needing an existing todo ID) or contextual constraints, leaving usage entirely implicit.

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

TDQS

A3.5/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. The tools cover specific actions like adding, getting, removing, updating status, saving, and starting planning, each targeting a unique operation in the planning workflow.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., add_todo, get_todos, remove_todo). The naming is uniform and predictable, using snake_case throughout without any deviations.

Tool Count5/5

With 6 tools, the count is well-scoped for a software planning domain. Each tool earns its place by covering essential CRUD operations and session management, avoiding bloat or thinness.

Completeness5/5

The tool set provides complete CRUD/lifecycle coverage for todo management (add, get, remove, update status) and includes session operations (start planning, save plan). There are no obvious gaps for the stated purpose of software planning.

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
    A
    quality
    D
    maintenance
    Streamlines development workflows through AI-assisted codebase analysis, comprehensive planning, task breakdown with dependencies, and automated implementation verification. Enables systematic approach to complex development tasks like framework migrations and feature implementation.
    5
    21
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Implements GitHub's Spec-Driven Development methodology, transforming natural language requirements into executable specifications, technical plans, and ordered task lists with contract-based validation and progress tracking.
    27
    2
    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/PhilippMT/Software-planning-mcp'

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