| Crates.io | kanban-mcp |
| lib.rs | kanban-mcp |
| version | 0.1.16 |
| created_at | 2025-12-21 01:14:13.698019+00 |
| updated_at | 2025-12-21 20:47:32.824927+00 |
| description | Model Context Protocol server for the kanban project management tool |
| homepage | https://github.com/fulsomenko/kanban |
| repository | https://github.com/fulsomenko/kanban |
| max_upload_size | |
| id | 1997188 |
| size | 68,910 |
Model Context Protocol (MCP) server for kanban project management.
This MCP server delegates all operations to the kanban CLI via subprocess execution. This architecture provides:
┌─────────────────┐
│ Claude/MCP │
│ Client │
└────────┬────────┘
│ JSON-RPC
▼
┌─────────────────────────────────────────────┐
│ kanban-mcp │
│ ┌─────────────────────────────────────┐ │
│ │ MCP Tool Handlers │ │
│ │ - create_board → spawn CLI │ │
│ │ - list_cards → spawn CLI │ │
│ │ - move_card → spawn CLI │ │
│ └─────────────────────────────────────┘ │
│ ┌─────────────────────────────────────┐ │
│ │ CliExecutor │ │
│ │ - spawn("kanban", args) │ │
│ │ - parse CliResponse<T> │ │
│ │ - retry on conflict │ │
│ └─────────────────────────────────────┘ │
└────────┬────────────────────────────────────┘
│ subprocess
▼
┌─────────────────┐
│ kanban CLI │
│ (executable) │
└────────┬────────┘
│
▼
┌─────────────────┐
│ kanban.json │ ← Atomic writes + conflict detection
└─────────────────┘
nix build .#kanban-mcp
The Nix derivation automatically wraps the binary with the kanban CLI in PATH.
cargo install --path crates/kanban-mcp
# Ensure kanban CLI is in PATH
cargo install --path crates/kanban-cli
kanban-mcp /path/to/kanban.json
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"kanban": {
"command": "kanban-mcp",
"args": ["/path/to/kanban.json"]
}
}
}
| Tool | Description |
|---|---|
create_board |
Create a new kanban board |
list_boards |
List all boards |
get_board |
Get a specific board by ID |
delete_board |
Delete a board and all its contents |
create_column |
Create a new column in a board |
list_columns |
List columns in a board |
delete_column |
Delete a column and its cards |
create_card |
Create a new card in a column |
list_cards |
List cards with optional filters |
get_card |
Get a specific card by ID |
move_card |
Move a card to a different column |
update_card |
Update card properties |
archive_card |
Archive a card |
delete_card |
Permanently delete a card |
The kanban CLI uses optimistic concurrency control with file metadata:
When conflicts occur, the MCP server automatically retries with exponential backoff:
Attempt 1 → ConflictDetected → Wait 50ms
Attempt 2 → ConflictDetected → Wait 100ms
Attempt 3 → Success ✓
Default Configuration:
# Unit tests
cargo test --package kanban-mcp
# With logging
RUST_LOG=debug cargo test --package kanban-mcp
| MCP Tool | CLI Command |
|---|---|
create_board |
kanban board create --name X |
list_boards |
kanban board list |
get_board |
kanban board get <id> |
delete_board |
kanban board delete <id> |
create_column |
kanban column create --board-id X --name Y |
list_columns |
kanban column list --board-id X |
delete_column |
kanban column delete <id> |
create_card |
kanban card create --board-id X --column-id Y --title Z |
list_cards |
kanban card list --board-id X |
get_card |
kanban card get <id> |
move_card |
kanban card move <id> --column-id X |
update_card |
kanban card update <id> --title X |
archive_card |
kanban card archive <id> |
delete_card |
kanban card delete <id> |
The kanban CLI outputs JSON responses:
{
"success": true,
"api_version": "0.1.0",
"data": { ... }
}
On error:
{
"success": false,
"api_version": "0.1.0",
"error": "Error message"
}