MCP Server
Kanban Lite ships a first-class Model Context Protocol server so AI agents can read and mutate your boards using natural language. Works with Claude Code, Cursor, OpenCode, and any MCP-compatible client.
- 40+ tools covering boards, cards, columns, comments, logs, attachments, webhooks, and storage
- Consistent search semantics shared with the CLI and REST API (
searchQuery,fuzzy,metaFilter) - Stdio transport — start with
kl mcpor vianpx kanban-lite mcp - All mutations go through the same SDK paths as the UI and CLI
.claude/settings.json)
{
"mcpServers": {
"kanban": {
"type": "stdio",
"command": "npx",
"args": ["kanban-lite", "mcp"],
"env": { "KANBAN_DIR": "/path/to/your/project/.kanban" }
}
}
}
MCP Server
Expose your kanban board to AI agents (Claude, Cursor, etc.) via the Model Context Protocol.
Setup with Claude Code
Add to your .claude/settings.json:
{
"mcpServers": {
"kanban": {
"type": "stdio",
"command": "npx",
"args": ["kanban-lite", "mcp"],
"env": {
"KANBAN_DIR": "/path/to/your/project/.kanban"
}
}
}
}
Or run directly:
kl mcp # Auto-detect directory
kl mcp --dir .kanban # Explicit directory
kanban-mcp --dir .kanban # Via dedicated binary
Available Tools
| Tool | Description |
|---|---|
list_boards |
List all boards in the workspace |
create_board |
Create a new board with optional custom columns |
get_board |
Get board configuration and details |
delete_board |
Delete an empty board |
list_board_actions |
List all named actions defined on a board |
add_board_action |
Add or update a named board action |
remove_board_action |
Remove a named board action |
trigger_board_action |
Trigger a board action webhook event |
transfer_card |
Move a card from one board to another |
list_cards |
List/filter cards by status, priority, assignee, label, searchQuery, fuzzy, and metaFilter |
get_card |
Get full details of a card (supports partial ID matching) |
get_card_state_status |
Get the active card.state provider status for the workspace |
get_card_state |
Get the side-effect-free unread/open summary for one card |
open_card |
Explicitly acknowledge unread activity and persist actor-scoped open-card state |
read_card |
Explicitly acknowledge unread activity without changing open-card state |
get_active_card |
Get the currently active/open card, or null if none is active |
create_card |
Create a new card with title, body, status, priority, metadata, forms, and formData |
update_card |
Update fields of an existing card, including forms and formData |
submit_card_form |
Validate and submit a card form payload through the shared SDK workflow |
move_card |
Move a card to a different status column |
delete_card |
Permanently delete a card |
trigger_action |
Trigger a named action on a card, calling the configured action webhook |
list_attachments |
List attachments on a card |
add_attachment |
Attach a file to a card (copies to card directory) |
remove_attachment |
Remove an attachment reference from a card |
list_comments |
List comments on a card |
add_comment |
Add a comment to a card |
update_comment |
Edit a comment's content |
delete_comment |
Remove a comment from a card |
list_logs |
List log entries on a card |
add_log |
Add a log entry to a card |
clear_logs |
Clear all log entries from a card |
list_board_logs |
List board-level log entries |
add_board_log |
Add a board-level log entry |
clear_board_logs |
Clear all board-level log entries |
list_columns |
List all board columns |
add_column |
Add a new column to the board |
update_column |
Update a column's name or color |
remove_column |
Remove a column (must be empty) |
get_settings |
Get board display settings |
update_settings |
Update board display settings |
list_webhooks |
List registered webhooks |
add_webhook |
Register a new webhook |
update_webhook |
Update a webhook (url, events, secret, active) |
remove_webhook |
Remove a webhook |
get_workspace_info |
Get workspace root path, kanban directory, and active storage provider metadata |
For agent-driven search, pass searchQuery for free text (including inline tokens like meta.team: backend), set fuzzy: true to widen matching across text and metadata values, or use metaFilter when you want structured dot-notation field filters.
| get_storage_status | Get current card/attachment storage provider status |
| migrate_to_sqlite | Migrate all card data from markdown to SQLite |
| migrate_to_markdown | Migrate all card data from SQLite back to markdown files |
All card, column, comment, and attachment tools accept an optional boardId parameter to target a specific board.