A lightweight project manager that humans drive through a web UI (Vite + React + shadcn/ui) and LLM agents drive through MCP — both reading and writing the same SQLite store.
- shared/ — zod schemas, enums and types shared by every layer
- server/ —
better-sqlite3+ repository (core logic) → exposed two ways:- REST API (Express) for the web UI
- MCP server (stdio bin and Streamable-HTTP at
/mcp) for agents
- web/ — Vite + React + TypeScript + shadcn/ui Kanban board
Projects → Tasks → Subtasks (one level), with workflow status
(backlog · todo · in_progress · done · cancelled), priority
(none · low · medium · high · urgent) and many-to-many labels.
| Command | What it does |
|---|---|
npm run dev |
API server (:8787) + Vite dev server (:5173) |
npm run build |
Build the web app to dist/ |
npm start |
Serve the built app + API + MCP on one port (:8787) |
npm run mcp |
Run the MCP server over stdio |
npm run seed |
Insert a demo project |
Run the MCP server over stdio and register it with Claude Code:
# Start the stdio MCP server
npm run mcp
# Register with Claude Code (user scope, available in all projects)
claude mcp add planner --scope user -e "PLANNER_DB=/path/to/data/planner.db" -- npx tsx server/mcp/stdio.tsOr connect over HTTP by pointing your MCP client at http://localhost:8787/mcp.