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.
  • Portablecp -r the directory and you have a new board.

Development

pip install -e ".[dev]"
pytest

License

MIT © 2026 Chen (Jarry) Pan

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dsh_kanban_mcp-0.1.2.tar.gz (13.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dsh_kanban_mcp-0.1.2-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

Details for the file dsh_kanban_mcp-0.1.2.tar.gz.

File metadata

  • Download URL: dsh_kanban_mcp-0.1.2.tar.gz
  • Upload date:
  • Size: 13.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.11

File hashes

Hashes for dsh_kanban_mcp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 b345f5465d80de9e5c6d7146a6b5ee19c9823a415601e0e3d0b38b474c62eec7
MD5 6a51227e1b6a760a295a002ec39c9a6b
BLAKE2b-256 4488d5c9bff3749667a4bcb0d36bb8115b522b4b194aac17a1a08da07141b831

See more details on using hashes here.

File details

Details for the file dsh_kanban_mcp-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: dsh_kanban_mcp-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 13.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.11

File hashes

Hashes for dsh_kanban_mcp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c056769e92c9df73409ff78c10e57d88ef0cec8c1a920c90d98b14de58613ae9
MD5 4ccbcbbd4e5b6ae091487e45ed4f0698
BLAKE2b-256 c8cffba0a5c43d03d44787e98f71c3e340cee6323093cc86605df1920ae707b8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page