create_planLABSCO SUMMARY
The notes are the reason this is more than a to-do list.
Plans and tasks each carry Markdown notes, and the repository is explicit about what they are for: recording decisions and their rationale so an agent picking the work up tomorrow has the context that would otherwise have died with the session. Ordering is a first-class operation rather than a priority field, which suits work that gets resequenced rather than re-scored. Persistence is on you — the data lives in the container's Valkey, so mount the volume before you start relying on it.
What it is
A Go server that keeps plans and their tasks in Valkey, so an AI agent can create, order, update and complete work items across separate conversations.
What you get
- create_plan, get_plan, list_plans, list_plans_by_application, update_plan and delete_plan
- create_task, get_task, update_task and delete_task inside a plan
- list_tasks_by_plan and list_tasks_by_status, so an agent can ask what is still open
- reorder_task — priority changed by moving a task within its plan
- update_plan_notes, get_plan_notes, update_task_notes and get_task_notes — full Markdown notes on both plans and tasks, with headings, tables and code blocks
- Three transports from the same image: stdio, SSE and streamable HTTP, one enabled at a time
- A health endpoint, and a named Docker volume for persistence
Requirements
Docker with a named volume for the Valkey data, and one transport switched on explicitly — ENABLE_SSE, ENABLE_STREAMABLE_HTTP or ENABLE_STDIO, all off by default. The published image runs Valkey alongside the server, exposing 8080 and 6379. No account and no key.
Setup effort
Run a container — pull the image and point your client at it
USE CASES
Keeping a multi-session project on track
The agent reads the plan and the still-open tasks at the start of each session instead of asking you where things stand.
Recording why a decision was made, not just what was decided
Put the reasoning in the plan notes in Markdown, so it is there next time rather than lost in a chat log.
Breaking a request into work you can watch progress on
Create the plan, add its tasks, and track status as each one closes.
Changing what gets done first
Move the task within the plan rather than editing a priority field on every item around it.
Running separate task lists per project
List plans by application so several codebases can share one server without their work mixing.
18 tools
Listed in project docs. Your client may show a different list.
get_planlist_planslist_plans_by_applicationupdate_plandelete_planupdate_plan_notesget_plan_notescreate_taskget_tasklist_tasks_by_planlist_tasks_by_statusupdate_taskdelete_taskreorder_taskupdate_task_notesget_task_notesbulk_create_tasksBEFORE YOU INSTALL
What to know first
Tools you get
18 tools named in the project's documentation.
Requires
Docker
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Pull the image and point your client at it.
Server setup
docker volume create valkey-datadocker run -d --name valkey-mcp \
-p 8080:8080 \
-p 6379:6379 \
-v valkey-data:/data \
-e ENABLE_SSE=true \
ghcr.io/jbrinkman/valkey-ai-tasks:latestMCP Clients
Any MCP client
{
"mcpServers": {
"valkey-tasks": {
"url": "http://localhost:8080/sse"
}
}
}