README.md

  1# planning-mcp-server
  2
  3A Model Context Protocol (MCP) server that provides planning tools for LLMs to thoroughly plan their actions before getting started and pivot during execution when needed.
  4
  5## What This Gives Your AI Assistant
  6
  7This MCP server enables your AI assistant to:
  8
  9- **Set clear goals** for complex tasks and keep them visible throughout the work
 10- **Break down work** into manageable, trackable tasks with progress indicators  
 11- **Stay organized** with persistent task lists that survive across conversations
 12- **Track progress** with visual status indicators (☐ pending, ⟳ in progress, ☑ completed, ☒ failed)
 13- **Adapt plans** by adding tasks, updating status, and pivoting when needed
 14
 15## Core Capabilities
 16
 17The server provides four essential planning tools:
 18
 19- **`update_goal`**: Set or update the overarching goal for your planning session
 20- **`add_tasks`**: Add one or more tasks to work on. Break tasks down into the smallest units of work possible and track progress.
 21- **`get_tasks`**: Get current task list with status indicators and legend. Call frequently to stay organized.
 22- **`update_task_status`**: Update the status of a specific task. Maintain your planning workflow by updating statuses regularly.
 23
 24## Installation
 25
 26```bash
 27go build -o planning-mcp-server ./cmd/planning-mcp-server
 28```
 29
 30## Configuration
 31
 32Generate an example configuration file:
 33
 34```bash
 35./planning-mcp-server --generate-config
 36```
 37
 38This creates `planning-mcp-server.toml` with default settings:
 39
 40```toml
 41[server]
 42mode = 'stdio'  # or 'http'
 43host = 'localhost'
 44port = 8080
 45
 46[logging]
 47level = 'info'  # debug, info, warn, error
 48format = 'text'  # text, json
 49
 50[planning]
 51max_tasks = 100
 52max_goal_length = 1000
 53max_task_length = 500
 54history_enabled = true
 55```
 56
 57## Usage
 58
 59### STDIO Mode (Default)
 60
 61For use with MCP clients like Claude Desktop:
 62
 63```bash
 64./planning-mcp-server --mode stdio
 65```
 66
 67### HTTP Mode
 68
 69For web-based integrations:
 70
 71```bash
 72./planning-mcp-server --mode http --port 8080
 73```
 74
 75### CLI Options
 76
 77```bash
 78./planning-mcp-server --help
 79```
 80
 81- `--config, -c`: Configuration file path
 82- `--mode, -m`: Server mode (stdio or http)
 83- `--port, -p`: HTTP server port
 84- `--host`: HTTP server host
 85- `--log-level`: Log level (debug, info, warn, error)
 86- `--generate-config`: Generate example configuration
 87- `--version, -v`: Show version
 88
 89## How Your AI Assistant Uses This
 90
 91### Setting Goals
 92
 93Your AI assistant can establish clear objectives that stay visible throughout the planning session, helping maintain focus on the overall purpose.
 94
 95### Planning Tasks
 96
 97When you first add tasks to an empty planning session, the tool provides guidance and shows your complete plan:
 98
 99- Adds your tasks to the planning session
100- Shows helpful instructions for getting started
101- Displays your goal and current task list with status indicators
102
103When adding tasks to an existing planning session, the tool keeps things brief:
104
105- Adds your tasks seamlessly 
106- Shows your updated task list (same format as `get_tasks`)
107- No repetitive instructions - just your updated plan
108
109### Tracking Progress
110
111Your AI assistant gets a clear view of all tasks with visual status indicators:
112
113```
114**Goal:** Create a comprehensive MCP server for task planning and management
115
116Legend: ☐ pending  ⟳ in progress  ☑ completed
117☐ Set up project structure [a1b2c3d4]
118  Create Go module, directories, and basic files
119☐ Implement core planning logic [e5f6g7h8]
120  Create Goal and Task data structures with deterministic IDs
121☐ Build MCP server integration [i9j0k1l2]
122```
123
124### Updating Status
125
126As work progresses, your AI assistant can update task statuses and immediately see the updated plan with all changes reflected.
127
128## Task Status Indicators
129
130-**pending**: Task is ready to be worked on
131-**in_progress**: Task is currently being worked on  
132-**completed**: Task has been finished successfully
133-**failed**: Task encountered an error or failed
134
135The task list includes a legend showing the status indicators. The failed icon (☒) is only shown in the legend if there are actually failed tasks in the list.
136
137## Task IDs
138
139Task IDs are deterministically generated based on the task title and description using SHA-256 hashing (8 hex characters). This ensures:
140
141- Same task content always gets the same ID
142- No collisions for different tasks
143- Consistent references across sessions
144
145## License
146
147AGPL-3.0-or-later
148
149## Author
150
151Amolith <amolith@secluded.site>