Kanban-style task manager with table and drag-and-drop board views, built on Upjack.
View on mpak registry | Built by NimbleBrain
| Entity | Prefix | Description |
|---|---|---|
| Board | bd |
Named workspace that groups tasks and defines status columns for its Kanban view |
| Task | tk |
Unit of work that lives on a board and moves through its columns |
CRUD tools (create, get, update, list, search, delete) are auto-generated by Upjack. These domain-specific tools handle operations requiring multi-entity reads or business logic.
| Tool | Description | Inputs |
|---|---|---|
move_task |
Move a task to a different column, enforcing WIP limits and triggering completion side effects | task_id (string, required), target_column (string, required), position (integer, optional) |
reorder_column |
Batch-update positions of all tasks within a column after drag-and-drop reorder | board_id (string, required), column_key (string, required), task_ids (array of strings, required) |
board_summary |
Aggregate view of a board: column counts, WIP status, overdue tasks, stalled tasks | board_id (string, required) |
batch_archive |
Archive all completed tasks on a board older than N days | board_id (string, required), older_than_days (integer, optional — default 7) |
Automatically classifies, prioritizes, and organizes tasks so the user spends time doing work, not managing it.
Triggers:
- New task created (hook) — analyzes title/description, suggests priority and due date
- Task column changed (hook) — reacts to moves (e.g., sets
completed_atwhen moved to a done-like column) - Daily review (schedule: weekdays at 9am) — flags overdue tasks, stalled tasks, and WIP limit breaches
The Synapse UI provides two views, toggled via a tab bar, operating on one board at a time with a board selector in the header.
Horizontal scrollable lanes, one per board column. Task cards show title, priority badge, assignee, and due date. Drag-and-drop between columns updates task column and position. Column headers display task count and WIP limit indicators. A "+" button at the bottom of each column creates a new task.
Sortable, filterable data table with columns for title, priority, status column, assignee, due date, effort, and created date. Supports inline cell editing, column header sorting, a filter bar (priority, column, assignee, overdue), and multi-row bulk actions (change column, set priority, archive).
mcp-servers/todo-board/
├── manifest.json
├── SPEC.md
├── README.md
├── pyproject.toml
├── server.py
├── context.md
├── schemas/
│ ├── board.schema.json
│ └── task.schema.json
├── skills/
│ └── task-triage/
│ └── SKILL.md
├── tools/
│ ├── move_task.py
│ ├── reorder_column.py
│ ├── board_summary.py
│ └── batch_archive.py
├── seed/
│ ├── sample-boards.json
│ └── sample-tasks.json
└── ui/
├── package.json
├── tsconfig.json
├── index.html
└── src/
├── index.tsx
├── App.tsx
├── views/
│ ├── BoardView.tsx
│ └── TableView.tsx
├── components/
│ ├── TaskCard.tsx
│ ├── Column.tsx
│ ├── TaskDetail.tsx
│ ├── BoardSelector.tsx
│ └── FilterBar.tsx
└── hooks/
├── useSynapse.ts
├── useTasks.ts
└── useBoards.ts
Install dependencies:
uv syncRun the server in stdio mode (for mpak / Claude Desktop):
uv run python server.pyRun the server in HTTP mode (for cloud deployment):
uvicorn server:appBuild the Synapse UI:
cd ui && npm install && npm run buildThe seed/ directory contains sample data (2 boards, 8 tasks) loaded automatically via run_on_install. Boards include "Sprint 14" (4-column workflow) and "Personal" (3-column workflow), with tasks spread across columns at various priorities and due dates.