Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TASKS_TOKENNoBearer secret for the http+bearer transport.
TASKS_CLIENTNoBase client label for audit history, set in the systemd unit; web handlers override it with web.
TASKS_STATE_DIRNoDirectory for OAuth state storage (e.g. /var/lib/task-manager for oauth_state.json).
TASKS_TRANSPORTNoTransport mode: stdio (default), http (bearer), or oauth. Can also be selected with --http or --oauth.
TASKS_WIP_LIMITNoWIP limit for in-progress tasks (default: 15).
TASKS_ISSUER_URLNoPublic OAuth issuer URL, e.g. https://<host>/tasks.
TASKS_DEFAULT_USERNoDefault user recorded in audit history when no OAuth subject is present (default: vlad).
TASKS_PLANNER_ROOTNoRoot directory of the planner (default: ~/AI/planner; on the server: /srv/planner).
TASKS_RESOURCE_URLNoResource URL used for token binding (defaults to the issuer when it ends with /tasks).
TASKS_REDIRECT_ALLOWLISTNoComma-separated OAuth redirect URI allowlist; .../* matches one segment ID, and loopback is allowed.
TASKS_OAUTH_PASSWORD_HASHNoPassword 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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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).

`links` — шлях нотатки, з якої виросла задача, напр. 'projects/task-manager/overview'.
ЗАВЖДИ проставляй його, коли задача походить із конкретної нотатки — без цього задача
втрачає свій контекст.
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

Змінити БУДЬ-ЯКІ поля задачі за один виклик (універсальний редактор).

Передавай лише те, що змінюєш — порожнє поле означає «не чіпати».
title — короткий заголовок (≤50 символів) для канбану/календаря; єдине поле, яке
НЕ можна очистити через 'none' (він обовʼязковий).
Щоб ОЧИСТИТИ поле, передай 'none'. Значення: 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 — звідки завгодно);
priority = asap|high|low; deadline = РРРР-ММ-ДД; energy = S|M|L; domains/links — через
кому/пробіл; project = слаг проєкту або 'global' (фізично переносить задачу між файлами).
text — ОДИН рядок (з переносом — помилка); plan — багаторядковий markdown-план задачі
(окремий файл, не рядок задачі; 'none' прибирає; його бачить get_task).

`links` — шлях нотатки, з якої виросла задача, напр. 'projects/task-manager/overview'.
Саме цим задача зшивається зі своїм контекстом, тож проставляй його завжди, коли задача
виросла з конкретної нотатки. Перехід у in_progress стереже WIP-ліміт (≤15).
delete_taskB

Видалити задачу за id (безповоротно з файлу planner).

historyA

Журнал змін задач: хто, коли і ЩО САМЕ змінив. Найновіші — зверху.

id — показати історію однієї задачі (порожньо = усі зміни підряд);
limit — скільки записів (за замовч. 20).

Позначки: `add` створено · `edit` змінено (видно було→стало по кожному полю) ·
`delete` видалено (зі знімком, бо відновити більше нізвідки) ·
⚠️ `стороння правка` — файл змінили повз сервіс (Obsidian/редактор), полів не знаємо.
Підпис `юзер@клієнт`: хто зробив зміну і звідки (web | mac | claude | chatgpt | phone | local).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 10 tools

Disambiguation3/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness5/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues