kanbango 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +606 -0
- package/API.md +177 -0
- package/CHANGELOG.md +122 -0
- package/LICENSE +21 -0
- package/LLM_AGENTS.md +484 -0
- package/README.md +360 -0
- package/bin/kanban-cmd.js +40 -0
- package/bin/kanban.js +462 -0
- package/index.html +1095 -0
- package/index.js +15 -0
- package/kanban.js +625 -0
- package/kanbango.md +48 -0
- package/mcp-server.js +489 -0
- package/package.json +41 -0
- package/planv2.md +307 -0
- package/tests/run.js +19 -0
package/LLM_AGENTS.md
ADDED
|
@@ -0,0 +1,484 @@
|
|
|
1
|
+
# MCP Server Guide for LLM Agents
|
|
2
|
+
|
|
3
|
+
Complete guide for integrating kanbango MCP server into LLM agents and AI assistants.
|
|
4
|
+
|
|
5
|
+
## Quick Integration
|
|
6
|
+
|
|
7
|
+
### Configuration
|
|
8
|
+
|
|
9
|
+
Add to your MCP client configuration:
|
|
10
|
+
|
|
11
|
+
**Claude Desktop:**
|
|
12
|
+
```json
|
|
13
|
+
{
|
|
14
|
+
"mcpServers": {
|
|
15
|
+
"kanbango": {
|
|
16
|
+
"command": "npx",
|
|
17
|
+
"args": ["kanbango", "mcp"]
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**General MCP:**
|
|
24
|
+
```json
|
|
25
|
+
{
|
|
26
|
+
"mcpServers": {
|
|
27
|
+
"kanbango": {
|
|
28
|
+
"command": "node",
|
|
29
|
+
"args": ["path/to/mcp-server.js"]
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Project Automation (Claude Code + OpenCode)
|
|
36
|
+
|
|
37
|
+
Generate project configs automatically in the current folder:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Local install (recommended)
|
|
41
|
+
npx kanbango mcp-init
|
|
42
|
+
|
|
43
|
+
# Use npx-based command in configs
|
|
44
|
+
npx kanbango mcp-init --npx
|
|
45
|
+
|
|
46
|
+
# Only Claude Code config
|
|
47
|
+
npx kanbango mcp-init --claude
|
|
48
|
+
|
|
49
|
+
# Only OpenCode config
|
|
50
|
+
npx kanbango mcp-init --opencode
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
This creates:
|
|
54
|
+
- `.mcp.json` for Claude Code (project-scoped MCP servers)
|
|
55
|
+
- `opencode.json` for OpenCode (project-scoped MCP servers)
|
|
56
|
+
|
|
57
|
+
## Available Tools
|
|
58
|
+
|
|
59
|
+
### 1. kanban_read
|
|
60
|
+
|
|
61
|
+
Read tasks from kanban board. Can list all tasks, filter by column/epic, or get details of a specific task.
|
|
62
|
+
|
|
63
|
+
**Operations:**
|
|
64
|
+
- `list` - Get all tasks (with optional filters)
|
|
65
|
+
- `show` - Get specific task details
|
|
66
|
+
|
|
67
|
+
**Parameters:**
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"operation": "list", // "list" or "show"
|
|
71
|
+
"task_id": "PI-014-google-calendar", // Required for "show"
|
|
72
|
+
"col": "planned", // Optional: "active" | "planned" | "icebox" | "done"
|
|
73
|
+
"epic": "Phase 1" // Optional: filter by epic group
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**Examples:**
|
|
78
|
+
|
|
79
|
+
List all tasks:
|
|
80
|
+
```json
|
|
81
|
+
{
|
|
82
|
+
"operation": "list"
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
List tasks in active column:
|
|
87
|
+
```json
|
|
88
|
+
{
|
|
89
|
+
"operation": "list",
|
|
90
|
+
"col": "active"
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Get specific task details:
|
|
95
|
+
```json
|
|
96
|
+
{
|
|
97
|
+
"operation": "show",
|
|
98
|
+
"task_id": "PI-014-google-calendar"
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Response (list):**
|
|
103
|
+
```json
|
|
104
|
+
[
|
|
105
|
+
{
|
|
106
|
+
"id": "PI-014-google-calendar",
|
|
107
|
+
"title": "PI-014: Google Calendar Integration",
|
|
108
|
+
"column": "active",
|
|
109
|
+
"epic_group": "Phase 1",
|
|
110
|
+
"created": "2026-03-15",
|
|
111
|
+
"tasks": [
|
|
112
|
+
{ "done": true, "text": "API authentication" },
|
|
113
|
+
{ "done": false, "text": "Event synchronization" }
|
|
114
|
+
]
|
|
115
|
+
}
|
|
116
|
+
]
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**Response (show):**
|
|
120
|
+
```json
|
|
121
|
+
{
|
|
122
|
+
"id": "PI-014-google-calendar",
|
|
123
|
+
"title": "PI-014: Google Calendar Integration",
|
|
124
|
+
"column": "active",
|
|
125
|
+
"epic_group": "Phase 1",
|
|
126
|
+
"created": "2026-03-15",
|
|
127
|
+
"tasks": [
|
|
128
|
+
{ "done": true, "text": "API authentication" },
|
|
129
|
+
{ "done": false, "text": "Event synchronization" }
|
|
130
|
+
]
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
### 2. kanban_create
|
|
137
|
+
|
|
138
|
+
Create a new task on kanban board.
|
|
139
|
+
|
|
140
|
+
**Parameters:**
|
|
141
|
+
```json
|
|
142
|
+
{
|
|
143
|
+
"title": "New feature implementation", // Required
|
|
144
|
+
"col": "planned", // Optional: "active" | "planned" | "icebox" | "done" (default: "planned")
|
|
145
|
+
"epic": "Phase 1" // Optional: epic group name (default: "—")
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
**Examples:**
|
|
150
|
+
|
|
151
|
+
Create task with defaults:
|
|
152
|
+
```json
|
|
153
|
+
{
|
|
154
|
+
"title": "Add user authentication"
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Create task with custom column and epic:
|
|
159
|
+
```json
|
|
160
|
+
{
|
|
161
|
+
"title": "Database optimization",
|
|
162
|
+
"col": "planned",
|
|
163
|
+
"epic": "Performance"
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**Response:**
|
|
168
|
+
```json
|
|
169
|
+
{
|
|
170
|
+
"id": "PI-015-database-optimization",
|
|
171
|
+
"title": "PI-015: Database optimization",
|
|
172
|
+
"column": "planned",
|
|
173
|
+
"epic_group": "Performance",
|
|
174
|
+
"created": "2026-03-16",
|
|
175
|
+
"tasks": []
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
### 3. kanban_update
|
|
182
|
+
|
|
183
|
+
Update existing tasks on kanban board. Can move tasks between columns, toggle subtask completion, or update task details.
|
|
184
|
+
|
|
185
|
+
**Operations:**
|
|
186
|
+
- `move` - Move task to different column
|
|
187
|
+
- `toggle` - Toggle subtask completion
|
|
188
|
+
- `update` - Update task title and/or subtask list
|
|
189
|
+
|
|
190
|
+
**Parameters:**
|
|
191
|
+
```json
|
|
192
|
+
{
|
|
193
|
+
"operation": "move", // "move" | "toggle" | "update"
|
|
194
|
+
"task_id": "PI-014-google-calendar", // Required
|
|
195
|
+
"column": "done", // Required for "move"
|
|
196
|
+
"idx": 0, // Required for "toggle"
|
|
197
|
+
"title": "Updated title", // Optional for "update"
|
|
198
|
+
"tasks": [ // Optional for "update"
|
|
199
|
+
{ "done": true, "text": "Task 1" },
|
|
200
|
+
{ "done": false, "text": "Task 2" }
|
|
201
|
+
]
|
|
202
|
+
}
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
**Examples:**
|
|
206
|
+
|
|
207
|
+
Move task to done:
|
|
208
|
+
```json
|
|
209
|
+
{
|
|
210
|
+
"operation": "move",
|
|
211
|
+
"task_id": "PI-014-google-calendar",
|
|
212
|
+
"column": "done"
|
|
213
|
+
}
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
Toggle first subtask:
|
|
217
|
+
```json
|
|
218
|
+
{
|
|
219
|
+
"operation": "toggle",
|
|
220
|
+
"task_id": "PI-014-google-calendar",
|
|
221
|
+
"idx": 0
|
|
222
|
+
}
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
Update task title:
|
|
226
|
+
```json
|
|
227
|
+
{
|
|
228
|
+
"operation": "update",
|
|
229
|
+
"task_id": "PI-014-google-calendar",
|
|
230
|
+
"title": "Google Calendar API Integration"
|
|
231
|
+
}
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
Update subtasks:
|
|
235
|
+
```json
|
|
236
|
+
{
|
|
237
|
+
"operation": "update",
|
|
238
|
+
"task_id": "PI-014-google-calendar",
|
|
239
|
+
"tasks": [
|
|
240
|
+
{ "done": true, "text": "API authentication" },
|
|
241
|
+
{ "done": true, "text": "Event synchronization" },
|
|
242
|
+
{ "done": false, "text": "Error handling" }
|
|
243
|
+
]
|
|
244
|
+
}
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
**Response (move):**
|
|
248
|
+
```json
|
|
249
|
+
{
|
|
250
|
+
"success": true,
|
|
251
|
+
"message": "Moved PI-014-google-calendar to done"
|
|
252
|
+
}
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
**Response (toggle/update):**
|
|
256
|
+
```json
|
|
257
|
+
{
|
|
258
|
+
"id": "PI-014-google-calendar",
|
|
259
|
+
"title": "PI-014: Google Calendar Integration",
|
|
260
|
+
"column": "active",
|
|
261
|
+
"epic_group": "Phase 1",
|
|
262
|
+
"created": "2026-03-15",
|
|
263
|
+
"tasks": [
|
|
264
|
+
{ "done": false, "text": "API authentication" },
|
|
265
|
+
{ "done": false, "text": "Event synchronization" }
|
|
266
|
+
]
|
|
267
|
+
}
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
### 4. kanban_gui_start
|
|
273
|
+
|
|
274
|
+
Start the web GUI server for the kanban board.
|
|
275
|
+
|
|
276
|
+
**Parameters:**
|
|
277
|
+
```json
|
|
278
|
+
{
|
|
279
|
+
"port": 5500 // Optional: port for GUI (default 5500)
|
|
280
|
+
}
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
**Examples:**
|
|
284
|
+
|
|
285
|
+
Start GUI on default port:
|
|
286
|
+
```json
|
|
287
|
+
{}
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
Start GUI on custom port:
|
|
291
|
+
```json
|
|
292
|
+
{
|
|
293
|
+
"port": 8080
|
|
294
|
+
}
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
**Response:**
|
|
298
|
+
```json
|
|
299
|
+
{
|
|
300
|
+
"status": "started",
|
|
301
|
+
"port": 5500,
|
|
302
|
+
"pid": 12345,
|
|
303
|
+
"url": "http://localhost:5500"
|
|
304
|
+
}
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
### 5. kanban_gui_stop
|
|
310
|
+
|
|
311
|
+
Stop the web GUI server if it is running.
|
|
312
|
+
|
|
313
|
+
**Parameters:**
|
|
314
|
+
```json
|
|
315
|
+
{}
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
**Response:**
|
|
319
|
+
```json
|
|
320
|
+
{
|
|
321
|
+
"status": "stopping",
|
|
322
|
+
"port": 5500
|
|
323
|
+
}
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
### 6. kanban_gui_status
|
|
329
|
+
|
|
330
|
+
Get status of the web GUI server.
|
|
331
|
+
|
|
332
|
+
**Parameters:**
|
|
333
|
+
```json
|
|
334
|
+
{}
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
**Response (running):**
|
|
338
|
+
```json
|
|
339
|
+
{
|
|
340
|
+
"status": "running",
|
|
341
|
+
"port": 5500,
|
|
342
|
+
"pid": 12345,
|
|
343
|
+
"url": "http://localhost:5500"
|
|
344
|
+
}
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
**Response (not running):**
|
|
348
|
+
```json
|
|
349
|
+
{
|
|
350
|
+
"status": "not_running"
|
|
351
|
+
}
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## Data Structure
|
|
357
|
+
|
|
358
|
+
### Task Object
|
|
359
|
+
|
|
360
|
+
```json
|
|
361
|
+
{
|
|
362
|
+
"id": "string", // Unique task identifier (e.g., "PI-014-google-calendar")
|
|
363
|
+
"title": "string", // Full title with ID prefix
|
|
364
|
+
"column": "string", // "active" | "planned" | "icebox" | "done"
|
|
365
|
+
"epic_group": "string", // Epic group name or "—"
|
|
366
|
+
"created": "string", // Creation date (YYYY-MM-DD)
|
|
367
|
+
"tasks": [
|
|
368
|
+
{
|
|
369
|
+
"done": "boolean", // Subtask completion status
|
|
370
|
+
"text": "string" // Subtask description
|
|
371
|
+
}
|
|
372
|
+
]
|
|
373
|
+
}
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
### Columns
|
|
377
|
+
|
|
378
|
+
- `active` - In progress (max 1-2 tasks recommended)
|
|
379
|
+
- `planned` - Planned for implementation
|
|
380
|
+
- `icebox` - Frozen / nice-to-have
|
|
381
|
+
- `done` - Completed
|
|
382
|
+
|
|
383
|
+
---
|
|
384
|
+
|
|
385
|
+
## Usage Patterns
|
|
386
|
+
|
|
387
|
+
### Pattern 1: Task Discovery
|
|
388
|
+
|
|
389
|
+
```json
|
|
390
|
+
// List all active tasks
|
|
391
|
+
{ "operation": "list", "col": "active" }
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
### Pattern 2: Task Creation Workflow
|
|
395
|
+
|
|
396
|
+
```json
|
|
397
|
+
// 1. Create task
|
|
398
|
+
{ "title": "New feature", "col": "planned", "epic": "Phase 1" }
|
|
399
|
+
|
|
400
|
+
// 2. Get task details to see generated ID
|
|
401
|
+
{ "operation": "show", "task_id": "PI-015-new-feature" }
|
|
402
|
+
|
|
403
|
+
// 3. Update with subtasks
|
|
404
|
+
{
|
|
405
|
+
"operation": "update",
|
|
406
|
+
"task_id": "PI-015-new-feature",
|
|
407
|
+
"tasks": [
|
|
408
|
+
{ "done": false, "text": "Research" },
|
|
409
|
+
{ "done": false, "text": "Implementation" }
|
|
410
|
+
]
|
|
411
|
+
}
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
### Pattern 3: Task Progression
|
|
415
|
+
|
|
416
|
+
```json
|
|
417
|
+
// Move from planned → active
|
|
418
|
+
{ "operation": "move", "task_id": "PI-015", "column": "active" }
|
|
419
|
+
|
|
420
|
+
// Mark subtask complete
|
|
421
|
+
{ "operation": "toggle", "task_id": "PI-015", "idx": 0 }
|
|
422
|
+
|
|
423
|
+
// Move from active → done
|
|
424
|
+
{ "operation": "move", "task_id": "PI-015", "column": "done" }
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
### Pattern 4: Epic Management
|
|
428
|
+
|
|
429
|
+
```json
|
|
430
|
+
// List all tasks in an epic
|
|
431
|
+
{ "operation": "list", "epic": "Performance" }
|
|
432
|
+
|
|
433
|
+
// Create task in specific epic
|
|
434
|
+
{ "title": "Cache optimization", "epic": "Performance" }
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
---
|
|
438
|
+
|
|
439
|
+
## Best Practices for LLM Agents
|
|
440
|
+
|
|
441
|
+
1. **Always use `kanban_read` first** - Discover existing tasks before creating new ones
|
|
442
|
+
2. **Use `col` filter** - Narrow down to relevant column when listing
|
|
443
|
+
3. **Use `epic` grouping** - Organize tasks by features/phases
|
|
444
|
+
4. **Work through subtasks** - Toggle each subtask as you complete them
|
|
445
|
+
5. **Move tasks through workflow** - planned → active → done progression
|
|
446
|
+
6. **Use `show` operation** - Get full task details including subtasks
|
|
447
|
+
7. **Handle task IDs** - Always use the full task ID returned from create/show
|
|
448
|
+
|
|
449
|
+
---
|
|
450
|
+
|
|
451
|
+
## Error Handling
|
|
452
|
+
|
|
453
|
+
All tools return error messages in this format:
|
|
454
|
+
|
|
455
|
+
```json
|
|
456
|
+
{
|
|
457
|
+
"error": "Error message description"
|
|
458
|
+
}
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
Common errors:
|
|
462
|
+
- `"Task not found: PI-999"` - Task ID doesn't exist
|
|
463
|
+
- `"Failed to move task: PI-999"` - Move operation failed
|
|
464
|
+
- `"task_id is required for 'show' operation"` - Missing required parameter
|
|
465
|
+
|
|
466
|
+
---
|
|
467
|
+
|
|
468
|
+
## Installation for Users
|
|
469
|
+
|
|
470
|
+
Tell users to run:
|
|
471
|
+
|
|
472
|
+
```bash
|
|
473
|
+
npm install -g kanbango
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
Then add to their MCP configuration using the examples above.
|
|
477
|
+
|
|
478
|
+
---
|
|
479
|
+
|
|
480
|
+
## Support
|
|
481
|
+
|
|
482
|
+
- GitHub: https://github.com/k0r81/kanbango
|
|
483
|
+
- Issues: https://github.com/k0r81/kanbango/issues
|
|
484
|
+
- Full docs: https://github.com/k0r81/kanbango#readme
|