Install
$ agentstack add mcp-nerkoman-agent-kanban Open-source listing, not yet scanned by AgentStack. Follow the source repository for install instructions.
Security review
⚠ Flagged1 finding(s); flagged for manual review. · v0.1.0 How review works →
- • Prompt-injection patterns
- • Secret / credential exfiltration
- • Dangerous shell & filesystem operations
- • Untrusted network calls
- • Known-malicious package signatures
- high Pipes remote content directly into a shell (remote code execution).
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
agent-kanban
> Local-first kanban for AI-agent workflows. SQLite, FastAPI, no auth, no cloud.
[](LICENSE) [](https://www.python.org/)
A self-hosted kanban board designed to be driven by AI coding agents (Claude Code, Cline, opencode, Open WebUI, any function-calling LLM). Drag-drop in browser, REST + MCP for agents. Multi-project, light/dark theme, markdown plan-file import, automation rules.
More themes & profiles
| Dark theme | Cyberpunk profile | Horizon profile | |---|---|---| | | | |
Toggle theme with t, cycle profiles with p. Or pin a theme/profile via URL: ?theme=light&profile=cyberpunk.
Features
- 9 workflow columns: Backlog → Approved → Analyst → In progress → Testing → UAT → Done, plus Blocked / Cancelled.
- Multiple projects in one DB, URL-routed (
/p/{slug}), each with optional Claude Code-project directory binding. - Light/dark theme switcher (
t), density toggle (d), collapsible columns, sidebar. - Search + filter chips, keyboard shortcuts (
/,n,r,\,Esc). - Inbox watcher: drop a
.mdintokanban_data/inbox/, get a card in 5 sec. PointKANBAN_INBOX_DIRat any folder you like — even~/.claude/projects//memory/inbox/for Claude session captures. - PLAN.md import (loose-mode parser): any
## Section→ cards in backlog with section-name in description. - Automation rules (
kanban_data/rules.json):task_idle: status=done, days=14 → move_to cancelled, etc. Hot-reloaded. - Outbound webhooks (
kanban_data/webhooks.json): POST to Slack / Telegram / any HTTP endpoint ontask_created/task_moved/task_commented/task_updated. 3 formats:generic,slack,telegram. - MCP server (
kanban_mcp/) with 14 tools for Claude Code / Cline (project-aware:kanban_projects,kanban_board,kanban_search,kanban_my_active). - REST API + auto-generated OpenAPI for opencode / Open WebUI / any LLM with function calling.
Quickstart
5 minutes from clone to an AI agent doing your work for you: see [QUICKSTART.md](QUICKSTART.md).
Bare minimum (one command after install):
# Install uv once: `curl -LsSf https://astral.sh/uv/install.sh | sh` or `brew install uv`
git clone https://github.com//agent-kanban.git
cd agent-kanban
uv run python -m kanban_ui # http://localhost:7777
uv run auto-creates a .venv/, installs deps from pyproject.toml (~5 sec on a warm cache), and launches the server.
Legacy pip / venv path
python3.12 -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/python -m kanban_ui # http://localhost:7777
requirements.txt is kept in sync with pyproject.toml for Dependabot and pip-only environments.
Optional — auto-start on login (macOS):
bash scripts/install_launchd.sh install # macOS launchd
bash scripts/install_launchd.sh status
bash scripts/install_launchd.sh uninstall
Logs: ~/Library/Logs/agent-kanban/{stdout,stderr}.log.
AI agent integrations
Pick the integration matching your agent:
| Agent | Transport | Reference | |---|---|---| | Claude Code (Anthropic CLI) | MCP stdio via ~/.claude.json or .mcp.json | [docs/INTEGRATION.md#claude-code](docs/INTEGRATION.md#1-claude-code-mcp) | | Cline (VSCode extension, legacy stdio) | MCP stdio, same config block | [docs/INTEGRATION.md#cline](docs/INTEGRATION.md#2-cline-mcp) | | 🆕 Cursor | HTTP MCP @ http://localhost:7777/mcp | [docs/INTEGRATION.md#cursor](docs/INTEGRATION.md#cursor-http-mcp) | | 🆕 Cline (new versions) | HTTP MCP @ http://localhost:7777/mcp | [docs/INTEGRATION.md#cline-http](docs/INTEGRATION.md#cline-http-mcp) | | opencode (sst/opencode) | OpenAPI tools / REST | [docs/INTEGRATION.md#opencode](docs/INTEGRATION.md#3-opencode-rest--openapi) | | Open WebUI | OpenAPI Tool Server pointing at /openapi.json | [docs/INTEGRATION.md#open-webui](docs/INTEGRATION.md#4-open-webui-openapi-tool-server) | | Generic LLM (Hermes / Llama / Ollama / Mistral / vLLM) | function-calling + REST | [docs/INTEGRATION.md#generic-llm](docs/INTEGRATION.md#5-generic-function-calling-llm) | | MCP Inspector (debugging) | HTTP MCP @ http://localhost:7777/mcp | [docs/INTEGRATION.md#mcp-inspector](docs/INTEGRATION.md#mcp-inspector) |
The kanban runs two MCP transports in parallel: legacy stdio (python -m kanban_mcp, for Claude Code) and streamable HTTP at /mcp (for Cursor / new Cline / Open WebUI / MCP Inspector / anything that speaks the MCP SSE transport).
Static OpenAPI schema: [docs/openapi.yaml](docs/openapi.yaml). Interactive Swagger: http://localhost:7777/docs.
Real-world flows: [docs/USECASES.md](docs/USECASES.md) — 11 use cases (solo dev, team Slack, legacy import, multi-project, agent session, auto-launch, etc.).
Why
- vs. Trello/Jira/Linear — local-first; no SaaS account, no rate limits, your data on your disk.
- vs. plain TODO.md — drag-drop, history, multi-project, MCP integration, automation rules.
- vs. building your own — already battle-tested for solo + agent workflow.
Configuration (env vars)
| Variable | Default | Purpose | |---|---|---| | KANBAN_HOST | 127.0.0.1 | bind address | | KANBAN_PORT | 7777 | port | | KANBAN_DB | /tasks.db | SQLite path | | KANBAN_ACTOR | user | author name written to history | | KANBAN_DEFAULT_PROJECT_ID | default | id of seed project on first launch | | KANBAN_DEFAULT_PROJECT_NAME | Default | display name of seed project | | KANBAN_DEFAULT_PROJECT_COLOR | #F10D30 | accent color of seed project | | KANBAN_INBOX_DIR | /kanban_data/inbox | inbox watcher folder | | KANBAN_RULES_FILE | /kanban_data/rules.json | automation rules | | KANBAN_WEBHOOKS_FILE | /kanban_data/webhooks.json | outbound webhook notifications | | KANBAN_AUTOMATION_INTERVAL | 60 | rule engine interval (sec) | | KANBAN_INBOX_INTERVAL | 5 | inbox poll interval (sec) | | KANBAN_CORS_ORIGINS | (empty) | comma-separated origins for CORS (e.g. for remote Open WebUI) | | KANBAN_PROJECT_ID | (empty) | for MCP server: default project_id when agent calls kanban_create without one |
Project layout
agent-kanban/
├── kanban_store/ SQLite store + schema (4 tables, 4 migrations)
├── kanban_ui/ FastAPI web UI + automation/{inbox,rules,plan_md}
│ └── static/ index.html · styles.css · app.js · vendor/Sortable
├── kanban_mcp/ MCP server (14 tools)
├── seed/ generic example tasks
├── examples/ llm-tool-calling demo scripts
├── docs/ INTEGRATION.md, openapi.yaml, screenshots
├── tests/ pytest tests
├── scripts/ install_launchd.sh
├── snapshots/ JSON snapshots (gitignored except .gitkeep)
└── kanban_data/ runtime DB, inbox/, rules.json (gitignored)
Roadmap
- Bidirectional sync: edits in UI write back to PLAN.md.
- GitHub Issues importer (already has source-config table; needs gh API client).
- Multi-user mode with simple cookie-based auth.
- Optional Postgres backend.
License
[MIT](LICENSE)
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: nerkoman
- Source: nerkoman/agent-kanban
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.