Skip to main content

dsh-kanban-mcp

Filesystem-driven four-lane kanban board (todo / doing / blocked / done) exposed as a read-only MCP server and a Python API. Works with DeepSeek Harness and any MCP client.

A kanban board is just a directory tree of markdown cards:

<base_dir>/YYYY/YYYY-MM/YYYY-MM-DD/{todo,doing,blocked,done}/YYYYMMDD-HHMMSS__agent__slug__status.md

That design is the whole point: the board survives restarts, is diffable in git, needs no database, and can be inspected by any file tool. This package manages those files and exposes the board to agents over MCP.

Install

pip install "dsh-kanban-mcp"          # Python API
pip install "dsh-kanban-mcp[mcp]"     # + MCP server (fastmcp)

Requires Python 3.10+.

Run the MCP server

python -m kanban_mcp          # stdio transport
# or: kanban-mcp

Register it in DeepSeek Harness (MCP settings — the built-in MCP client) or any MCP client. The tools take an optional base_dir argument (default .agent/kanban) so one server can point at any board.

Tools (read-only)

Tool Description
kanban_board Full four-lane board with card details (agent, work_item, purpose, status, outcome, priority, timestamps)
kanban_status Per-lane card counts + total
kanban_doing Cards currently in progress
kanban_blocked Blocked cards
kanban_done_today Cards completed today

All tools are read-only. Card creation / update / movement is available through the KanbanManager Python API (see below); write tools are planned but not yet exposed over MCP.

Python API

from kanban_mcp import KanbanManager, LaneStatus

kanban = KanbanManager(base_dir=".agent/kanban")

card = kanban.create_doing_card(
    agent="coder",
    work_item="build-api",
    purpose="Build the REST API endpoint",
)
kanban.update_card(card, outcome="GET /users implemented")
kanban.move_to_done("coder", "build-api", "API endpoint complete")

board = kanban.get_board()      # full board
stats = kanban.stats()          # per-lane counts
blocked = kanban.get_blocked_cards()

Writes go through an atomic temp-file + os.replace, so a concurrent reader never sees a half-written card.

Why files instead of a database

  • Git-diffable — card changes are reviewable like code.
  • Survives restarts — no daemon, no lock, no migration.
  • Inspectable — any file tool can read a card directly.
  • Portable — cp -r the directory and you have a new board.

Development

pip install -e ".[dev]"
pytest

License

MIT © 2026 Chen (Jarry) Pan

Metadata

Release files for dsh-kanban-mcp 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dsh-kanban-mcp 0.1.2
File Size Uploaded
dsh_kanban_mcp-0.1.2.tar.gz 13.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dsh-kanban-mcp 0.1.2
File Interpreter ABI Platform
dsh_kanban_mcp-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 27.5 kB

Release files / dsh_kanban_mcp-0.1.2.tar.gz

Download URL dsh_kanban_mcp-0.1.2.tar.gz
Size 13.8 kB
Tags Source
SHA-256 checksum
How to use checksums
b345f5465d80de9e5c6d7146a6b5ee19c9823a415601e0e3d0b38b474c62eec7
BLAKE2b-256 checksum
How to use checksums
4488d5c9bff3749667a4bcb0d36bb8115b522b4b194aac17a1a08da07141b831
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.11

Release files / dsh_kanban_mcp-0.1.2-py3-none-any.whl

Download URL dsh_kanban_mcp-0.1.2-py3-none-any.whl
Size 13.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c056769e92c9df73409ff78c10e57d88ef0cec8c1a920c90d98b14de58613ae9
BLAKE2b-256 checksum
How to use checksums
c8cffba0a5c43d03d44787e98f71c3e340cee6323093cc86605df1920ae707b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.11

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page