Skip to main content
Glama

Yet Another Simple Kanban board (yask)

This is a simple Kanban board that can track multiple projects.

The functionality will be extended later.

The MVP definition:

  • track multiple projects with completely separate state between them

  • every task has a number, starting with 1 and increasing

  • regular task types: Story, Task, Bug. Can be easily changed anytime.

  • regular task estimate: story points

  • compound task type: Epic

  • Epics can contain other epics (tree-like structure) without cycles, and also Stories, Tasks and Bugs

  • Epics cannot be estimated, they contain the sum of estimations of all contained tasks

  • Tasks state: Backlog, Todo, Planning, In progress, Review, Done, Archived

  • Any task can be archived at any time

  • Archived tasks are not listed by default. They can be permanently deleted.

  • Tasks are sorted, sorting must be preserved. Order of execution is top-down.

  • Tasks can have other tasks as prerequisite

  • If task has prerequisites and is moved in the workflow, prerequisites are moved with it unless they're already past the stage

  • example: task is in Backlog, and has prereqs in Planning, Backlog and Review stages. If the task is moved from Backlog from Todo, the prerequisite that is also in Backlog is moved too. Others stay at their stages.

  • ask confirmation before changing state for multiple tasks in one action

  • Each state change is tracked with timestamp

  • Tasks can have attachments - markdown or images

Interface:

  • web interface (on local machine), configurable port, 4304 (0x10D0)

  • MCP interface for agents

Tech stack:

  • sqlite backend

  • python3

After MVP, the development of yask will dogfood itself to add more features.

Usage

Development

Everything is provided by the flake (nixpkgs 26.05). Enter the dev environment (Python with all dependencies and pytest):

nix develop

Run the test suite (131 tests covering the domain rules above):

python3 -m pytest tests -q

Full build + tests, hermetically:

nix build
nix flake check

Web UI

yask serve                # http://127.0.0.1:4304  (0x10D0)
yask serve --port 9000    # or: YASK_PORT=9000 yask serve
yask serve --data DIR     # or: YASK_DATA=DIR yask serve

The UI is vanilla ES modules (no build step). State lives in a SQLite database inside the data directory (default ~/.local/share/yask/yask.db).

MCP interface

yask mcp

Speaks MCP over stdio. Example client config:

{ "mcpServers": { "yask": { "command": "nix", "args": ["run", "/path/to/yask", "--", "mcp"] } } }

Tools: list/create projects and tasks, set prerequisites, move/archive/ restore/delete/reorder tasks, task history, task types, attachments (list, read — images come back as viewable image blocks, markdown as text). Actions that would touch several tasks return requires_confirmation plus the list of affected tasks; re-invoke with confirm: true to apply.

Related MCP server: TaskForge

Project layout

  • yask/store.py — all domain logic (projects, numbering, epic trees, prerequisite cascade, archiving, ordering, history, attachments)

  • yask/api.py — REST API; also serves the web UI

  • yask/web/ — web UI (vanilla JS modules, no build step)

  • yask/mcp_server.py — MCP tool surface

  • yask/cli.pyyask serve / yask mcp

  • tests/ — pytest suite

  • flake.nix / package.nix — packaging and dev environment

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers