Clone
1
Kanboard
agap-mcp edited this page 2026-06-04 07:22:30 +00:00
Table of Contents
Kanboard
Kanban task boards. Tasks can be assigned to Claude, which fetches, works,
comments and moves cards like a regular team member via the agap-mcp server.
Service
- Image:
kanboard/kanboard:latest, containerkanboard - Compose:
/home/alvis/agap_git/kanboard/docker-compose.yml - Port:
127.0.0.1:4800→:80(reverse-proxied via Caddy externally) - Storage: SQLite in the
kanboard_datavolume (/var/www/app/data/db.sqlite)
API
JSON-RPC at /jsonrpc.php. Two auth modes:
- App-wide (admin): HTTP Basic
jsonrpc:<token>— full access to every project. Token lives in the DBsettingstable (option='api_token') and is stored in Vaultwarden asKANBOARD_TOKEN. - Per-user:
<username>:<personal-token>— scoped to that user.
curl -s -u "jsonrpc:$KANBOARD_TOKEN" http://localhost:4800/jsonrpc.php \
-d '{"jsonrpc":"2.0","method":"getAllProjects","id":1}'
Claude bot user
- User
claude(display Claude), roleapp-admin, web password in Vaultwarden asKANBOARD_CLAUDE_PASSWORD. - Gotcha: app-admin grants visibility only. To be assignable a user
must be a project member —
claudeis added asproject-memberto every project viaaddProjectUser(project_id, user_id, "project-member"). - Assign a card to
claude(in the UI orkanboard_assign_task) and it shows up inkanboard_my_tasks.
agap-mcp integration
Implemented in agap-mcp (src/kanboard.js, registered in src/server.js).
Authenticates with the app-wide KANBOARD_TOKEN; writes (comments, tasks,
subtasks) are authored as claude via user_id. Env: KANBOARD_URL,
KANBOARD_BOT_USER=claude.
Tools (mcp__agap__kanboard_*):
| Tool | Purpose |
|---|---|
list_projects / get_project |
projects; columns + swimlanes |
list_tasks / my_tasks |
tasks in a project / assigned to claude (all projects) |
get_task |
task + subtasks + comments |
search_tasks |
Kanboard query syntax (assignee:, status:, due:) |
list_users / project_activity |
monitor users / activity stream |
create_task / update_task |
create / edit |
move_task / change_task_status |
move column / open-close |
assign_task |
(re)assign to a user |
add_comment |
comment as claude |
create_subtask / update_subtask |
track execution steps (0 todo/1 wip/2 done) |
remove_task / remove_comment |
delete (irreversible) |
Deleting whole projects is intentionally not exposed.