Task Manager
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TASKS_TOKEN | No | Bearer secret for the http+bearer transport. | |
| TASKS_CLIENT | No | Base client label for audit history, set in the systemd unit; web handlers override it with web. | |
| TASKS_STATE_DIR | No | Directory for OAuth state storage (e.g. /var/lib/task-manager for oauth_state.json). | |
| TASKS_TRANSPORT | No | Transport mode: stdio (default), http (bearer), or oauth. Can also be selected with --http or --oauth. | |
| TASKS_WIP_LIMIT | No | WIP limit for in-progress tasks (default: 15). | |
| TASKS_ISSUER_URL | No | Public OAuth issuer URL, e.g. https://<host>/tasks. | |
| TASKS_DEFAULT_USER | No | Default user recorded in audit history when no OAuth subject is present (default: vlad). | |
| TASKS_PLANNER_ROOT | No | Root directory of the planner (default: ~/AI/planner; on the server: /srv/planner). | |
| TASKS_RESOURCE_URL | No | Resource URL used for token binding (defaults to the issuer when it ends with /tasks). | |
| TASKS_REDIRECT_ALLOWLIST | No | Comma-separated OAuth redirect URI allowlist; .../* matches one segment ID, and loopback is allowed. | |
| TASKS_OAUTH_PASSWORD_HASH | No | Password hash for OAuth login (single-user). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
Vlad's task manager: create, update and track tasks and projects (markdown in planner/ is the source of truth; these tools are the only way to change it). Start with board or list_tasks to see the current state. Statuses: backlog | todo | blockers | in_progress | in_review | testing | done; new tasks always go to backlog; moving into in_progress is capped at 15 (WIP limit). Transitions: into todo only from testing, in_progress, in_review or blockers (backlog to todo is not possible via MCP — only Vlad does it on the dashboard); into blockers only from backlog, todo or testing; into in_progress only from todo; into in_review only from in_progress; into testing only from in_progress, in_review or blockers; into backlog and done from anywhere. A task returning to todo from in_progress or in_review goes to the top of the column, from testing or blockers to the end. Every task needs a short title (<=50 chars) — it is what the board and calendar show; text stays the full wording. Use links on add_task for the note the task came from, e.g. projects//overview.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_tasksA | Список задач із planner (короткі рядки: id, статус, заголовок, пріоритет, дедлайн, проєкт). Без status задачі done не показуються (внизу — скільки приховано); status=done — лише вони. Фільтри опційні: status = backlog|todo|blockers|in_progress|in_review|testing|done; project = слаг проєкту або 'global'; priority = asap|high|low; domain = тег без '#'; query = підрядок у заголовку чи тексті. status=todo — у ручному порядку колонки To Do (зверху те, що брати першим), не за пріоритетом. limit — скільки задач показати (за замовч. 50). Повний текст і links — get_task(id). |
| get_taskA | Одна задача повністю: текст, пріоритет, дедлайн, energy, domains, проєкт, links, plan. |
| boardA | Зведення по колонках канбану (скільки задач у кожному статусі) + перевірка WIP. |
| add_taskA | Додати задачу. text і title — ОБОВʼЯЗКОВІ. project — слаг проєкту (порожньо = глобальний). title — КОРОТКИЙ заголовок (≤50 символів), саме він видно на канбані й у календарі: стисни суть задачі, а не обрізай текст посередині. priority = asap|high|low; deadline = РРРР-ММ-ДД; energy = S|M|L; domains/links — через кому/пробіл. Нова задача завжди потрапляє в backlog. text — ОДИН рядок (з переносом — помилка); багаторядковий опис — у plan (markdown; зберігається окремо, видно в get_task). |
| move_taskA | Перемістити задачу в колонку: status = backlog|todo|blockers|in_progress|in_review|testing|done. Переходи: у todo — лише з testing, in_progress, in_review або blockers (backlog → todo через MCP заборонено, це робить лише Влад на дашборді); у blockers — лише з backlog, todo або testing; у in_progress — лише з todo; у in_review — лише з in_progress; у testing — лише з in_progress, in_review або blockers; у backlog і done — звідки завгодно. З in_progress/in_review у todo задача стає першою в колонці, з testing/blockers — останньою. Перехід у in_progress стереже WIP-ліміт (≤15). |
| set_priorityA | Змінити пріоритет: asap|high|low, або 'none' щоб зняти. |
| set_deadlineB | Змінити дедлайн: РРРР-ММ-ДД, або 'none' щоб зняти. |
| edit_taskA | Змінити БУДЬ-ЯКІ поля задачі за один виклик (універсальний редактор). |
| delete_taskB | Видалити задачу за id (безповоротно з файлу planner). |
| historyA | Журнал змін задач: хто, коли і ЩО САМЕ змінив. Найновіші — зверху. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
edit_task is explicitly a universal editor that can change any field, including status, priority, and deadline — which directly overlaps with move_task, set_priority, and set_deadline. The descriptions do explain the difference (narrow convenience setters vs. the universal editor), but an agent must still choose between two valid paths for the same change, and move_task duplicates edit_task's transition rules verbatim.
Eight of ten tools follow a clean verb_noun snake_case pattern (get_task, add_task, edit_task, move_task, list_tasks, delete_task, set_priority, set_deadline). Only `board` and `history` break the pattern as bare nouns, which is a minor, readable deviation.
Ten tools is well within the ideal range for a task manager and each maps to a recognizable operation (CRUD, status transition, board summary, audit log). The count is not bloated despite the redundancy introduced by the convenience setters.
Full lifecycle is covered: create, read, list with rich filtering, edit, delete, status transitions with WIP enforcement, plus board aggregation and an audit history with change snapshots. Deadlines, priorities, energy, domains, links, and plan sub-documents are all readable and writable, leaving no obvious dead ends.