← Back to Kontasks
New MCP Tool: konui_get_recent_kontasks
Design for a focused MCP tool to fetch last N kontasks with minimal token output
Output
🎯 New MCP Tool: konui_get_recent_kontasks
✓ Agreed - Dedicated Tool is Best
Using existing MCP infrastructure keeps it clean. A new focused tool can return exactly what Claude needs - no HTML bloat, just structured context summaries.
📋 Tool Specification
konui_get_recent_kontasks Parameters: count: number (1-5, default: 3) scope?: "product" | "vibetools" | "all" includeOutput?: boolean (default: false) Returns: kontasks: [ { id: string, title: string, status: string, scope: string, tags: string[], createdAt: string, summary: string, // NEW: extracted key points filesChanged?: string[], // NEW: if commit detected commitSha?: string, // NEW: if present in context output?: string // Only if includeOutput=true } ]
📊 Token Comparison
| Approach | Est. Tokens |
|---|---|
| konui_list_tasks (current) - metadata only | ~150/task |
| konui_get_task - full output HTML | ~800-2000/task |
| konui_get_recent_kontasks (new) | ~100-150/task |
| 3 kontasks comparison: | ~3000-6000 vs ~300-450 |
🔧 Implementation Plan
- Add summary extraction to task-store.ts
Parse HTML output → extract title, key bullet points, files - New MCP handler in konui/src/mcp-server.ts
konui_get_recent_kontasks with count param - Update CLAUDE.md with instruction
"Call konui_get_recent_kontasks at turn start for context"
💡 Example Output (What Claude Sees)
{
"kontasks": [
{
"id": "515b507c-...",
"title": "Auto-load Recent Kontasks on Turn Start",
"status": "completed",
"scope": "vibetools",
"tags": ["kontasks", "context"],
"createdAt": "2025-01-08T10:30:00Z",
"summary": "Analyzed context gap in workflow. Proposed UserPromptSubmit hook to inject recent kontask summaries. Recommended Option A.",
"commitSha": null
},
{
"id": "4593ff7b-...",
"title": "Turn: Fix notification badge",
"status": "completed",
"scope": "vibetools",
"tags": ["ui", "notifications"],
"createdAt": "2025-01-08T10:15:00Z",
"summary": "Fixed badge to show unread count instead of total notifications.",
"filesChanged": ["konui/src/views/layout.ts"],
"commitSha": "4593ff7b"
}
]
}
📝 Summary Extraction Logic
For the summary field, we can:
- Option 1: Parse first <p> or <h3> from HTML output
- Option 2: Add
context.summarywhen creating kontasks - Option 3: Use title + first 100 chars of stripped HTML
Recommend Option 2 - cleaner, lets Claude write good summaries at creation time.
What's Next?
Choose an action:
Quick Actions
Original Request
No layout configured
Details
Type
General
Status
Completed
Scope
vibetools
Tags
kontasksmcpkonsoleperformance
Created
8 Jan 2026, 10:46 am
Updated
8 Jan 2026, 10:46 am
Timing
⏱️ 39.9s
0 tools
● TTFE 0%
● Thinking 100%
● Tools 0%
Created By
claude
Raw Data
{
"id": "45225f98-1720-4cdb-8f7b-b797eff1e73a",
"type": "general",
"status": "completed",
"title": "New MCP Tool: konui_get_recent_kontasks",
"description": "Design for a focused MCP tool to fetch last N kontasks with minimal token output",
"context": {
"output": "<div style=\"background:#1e1e1e;color:#e0e0e0;padding:20px;border-radius:8px;font-family:'Consolas','Monaco',monospace;\">\n<h2 style=\"font-family:sans-serif;color:#fff;margin:0 0 16px 0;\">🎯 New MCP Tool: konui_get_recent_kontasks</h2>\n\n<div style=\"background:#1e3a5f;border:1px solid #3b82f6;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#3b82f6;margin:0 0 12px 0;\">✓ Agreed - Dedicated Tool is Best</h3>\n<p style=\"margin:0;line-height:1.6;\">Using existing MCP infrastructure keeps it clean. A new focused tool can return <strong>exactly what Claude needs</strong> - no HTML bloat, just structured context summaries.</p>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#22c55e;margin:0 0 12px 0;\">📋 Tool Specification</h3>\n<pre style=\"margin:0;background:#1e1e1e;padding:12px;border-radius:4px;overflow-x:auto;\">\n<span style=\"color:#c678dd;\">konui_get_recent_kontasks</span>\n\n<span style=\"color:#7f848e;\">Parameters:</span>\n <span style=\"color:#e5c07b;\">count</span>: number (1-5, default: 3)\n <span style=\"color:#e5c07b;\">scope</span>?: \"product\" | \"vibetools\" | \"all\"\n <span style=\"color:#e5c07b;\">includeOutput</span>?: boolean (default: false)\n\n<span style=\"color:#7f848e;\">Returns:</span>\n kontasks: [\n {\n id: string,\n title: string,\n status: string,\n scope: string,\n tags: string[],\n createdAt: string,\n <span style=\"color:#98c379;\">summary</span>: string, <span style=\"color:#7f848e;\">// NEW: extracted key points</span>\n <span style=\"color:#98c379;\">filesChanged</span>?: string[], <span style=\"color:#7f848e;\">// NEW: if commit detected</span>\n <span style=\"color:#98c379;\">commitSha</span>?: string, <span style=\"color:#7f848e;\">// NEW: if present in context</span>\n output?: string <span style=\"color:#7f848e;\">// Only if includeOutput=true</span>\n }\n ]\n</pre>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#61afef;margin:0 0 12px 0;\">📊 Token Comparison</h3>\n<table style=\"width:100%;border-collapse:collapse;\">\n<tr style=\"border-bottom:1px solid #4b5563;\">\n<th style=\"text-align:left;padding:8px;color:#fff;\">Approach</th>\n<th style=\"text-align:right;padding:8px;color:#fff;\">Est. Tokens</th>\n</tr>\n<tr style=\"border-bottom:1px solid #4b5563;\">\n<td style=\"padding:8px;\">konui_list_tasks (current) - metadata only</td>\n<td style=\"padding:8px;text-align:right;\">~150/task</td>\n</tr>\n<tr style=\"border-bottom:1px solid #4b5563;\">\n<td style=\"padding:8px;\">konui_get_task - full output HTML</td>\n<td style=\"padding:8px;text-align:right;color:#ef4444;\">~800-2000/task</td>\n</tr>\n<tr style=\"border-bottom:1px solid #4b5563;\">\n<td style=\"padding:8px;color:#22c55e;\">konui_get_recent_kontasks (new)</td>\n<td style=\"padding:8px;text-align:right;color:#22c55e;\">~100-150/task</td>\n</tr>\n<tr>\n<td style=\"padding:8px;font-weight:bold;\">3 kontasks comparison:</td>\n<td style=\"padding:8px;text-align:right;\">\n<span style=\"color:#ef4444;\">~3000-6000</span> vs <span style=\"color:#22c55e;\">~300-450</span>\n</td>\n</tr>\n</table>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#c678dd;margin:0 0 12px 0;\">🔧 Implementation Plan</h3>\n<ol style=\"margin:0;padding-left:20px;line-height:2;\">\n<li><strong>Add summary extraction</strong> to task-store.ts\n <br><span style=\"color:#7f848e;font-size:0.9em;\">Parse HTML output → extract title, key bullet points, files</span></li>\n<li><strong>New MCP handler</strong> in konui/src/mcp-server.ts\n <br><span style=\"color:#7f848e;font-size:0.9em;\">konui_get_recent_kontasks with count param</span></li>\n<li><strong>Update CLAUDE.md</strong> with instruction\n <br><span style=\"color:#7f848e;font-size:0.9em;\">\"Call konui_get_recent_kontasks at turn start for context\"</span></li>\n</ol>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#e5c07b;margin:0 0 12px 0;\">💡 Example Output (What Claude Sees)</h3>\n<pre style=\"margin:0;background:#1e1e1e;padding:12px;border-radius:4px;font-size:0.9em;overflow-x:auto;\">\n{\n \"kontasks\": [\n {\n \"id\": \"515b507c-...\",\n \"title\": \"Auto-load Recent Kontasks on Turn Start\",\n \"status\": \"completed\",\n \"scope\": \"vibetools\",\n \"tags\": [\"kontasks\", \"context\"],\n \"createdAt\": \"2025-01-08T10:30:00Z\",\n \"summary\": \"Analyzed context gap in workflow. Proposed UserPromptSubmit hook to inject recent kontask summaries. Recommended Option A.\",\n \"commitSha\": null\n },\n {\n \"id\": \"4593ff7b-...\",\n \"title\": \"Turn: Fix notification badge\",\n \"status\": \"completed\", \n \"scope\": \"vibetools\",\n \"tags\": [\"ui\", \"notifications\"],\n \"createdAt\": \"2025-01-08T10:15:00Z\",\n \"summary\": \"Fixed badge to show unread count instead of total notifications.\",\n \"filesChanged\": [\"konui/src/views/layout.ts\"],\n \"commitSha\": \"4593ff7b\"\n }\n ]\n}\n</pre>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#fff;margin:0 0 12px 0;\">📝 Summary Extraction Logic</h3>\n<p style=\"margin:0 0 8px 0;color:#9ca3af;\">For the <code style=\"background:#1e1e1e;padding:2px 6px;border-radius:3px;\">summary</code> field, we can:</p>\n<ul style=\"margin:0;padding-left:20px;line-height:1.8;\">\n<li><strong>Option 1:</strong> Parse first <p> or <h3> from HTML output</li>\n<li><strong>Option 2:</strong> Add <code style=\"background:#1e1e1e;padding:2px 6px;border-radius:3px;\">context.summary</code> when creating kontasks</li>\n<li><strong>Option 3:</strong> Use title + first 100 chars of stripped HTML</li>\n</ul>\n<p style=\"margin:8px 0 0 0;color:#22c55e;\">Recommend Option 2 - cleaner, lets Claude write good summaries at creation time.</p>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;\">\n<h4 style=\"margin:0 0 8px 0;color:#fff;\">What's Next?</h4>\n<p style=\"color:#9ca3af;margin:0;\">Choose an action:</p>\n</div>\n</div>",
"choices": [
{
"label": "Build it",
"value": "Implement konui_get_recent_kontasks MCP tool. Add the handler to konui/src/mcp-server.ts with summary extraction, then update CLAUDE.md with usage instructions.",
"primary": true
},
{
"label": "Add summary field first",
"value": "First update konui_create_task to accept a context.summary field, so we capture good summaries at creation time. Then build the new tool."
},
{
"label": "Simpler: just wrapper",
"value": "Keep it simple - just create a wrapper around existing konui_list_tasks that returns last N with limit and no output HTML. Skip summary extraction for v1."
}
],
"requestedAt": "2025-01-08T10:35:00Z",
"requestId": "5fa0faf8-3a50-4004-8b81-d5c6338a2f3c",
"turnTiming": {
"totalMs": 39926,
"ttfeMs": 45,
"thinkingMs": 39881,
"toolExecutionMs": 0,
"toolCallCount": 0,
"thinkingPct": 100,
"toolsPct": 0,
"ttfePct": 0
}
},
"createdBy": "claude",
"createdAt": "2026-01-08T00:46:51.454Z",
"updatedAt": "2026-01-08T00:46:56.565Z",
"requestId": "5fa0faf8-3a50-4004-8b81-d5c6338a2f3c",
"scope": "vibetools",
"tags": [
"kontasks",
"mcp",
"konsole",
"performance"
],
"targetUser": "claude"
}