🔔 New: notify_user MCP Tool
Claude can now send non-blocking progress notifications to the UI without pausing execution. Unlike ask_user (which blocks and waits for a response), notify_user is fire-and-forget — Claude continues working immediately.
Notification Levels
| Level | Icon | Auto-dismiss | Use case |
|---|---|---|---|
info
| ℹ️ | 5s | General status updates |
warning
| ⚠️ | 15s | Potential issues |
error
| ❌ | Manual | Something failed |
milestone
| ✅ | 8s | Significant achievements |
progress
| 📊 | 10s | Numeric step tracking with progress bar |
How it works
- New internal MCP server
_ccs_notify(viamcp-notify.js) injected per-session alongside_ccs_ask_user - Express endpoint
/api/internal/notifywith per-process Bearer token auth - Notifications routed through
activeTasksproxy (survives WS reconnects) and session watchers (Kanban viewers) notify_usertool calls are hidden from the tool UI (same treatment asask_user)
UI
- Notification cards stack in the top-right corner with slide-in animation
- Max 5 visible at once (oldest auto-removed)
- Hover to reveal close button; errors require manual dismiss
- Progress level updates existing card in-place (bar fills progressively)
🎯 Kanban: Task prompt in live streaming
task_started and task_retrying WebSocket events now include the task prompt, so when you open a running Kanban task session, the user message bubble is visible immediately — no need to wait for completion or reload.
Full Changelog: v5.5.0...v5.6.0