feat(mcp): elicitation for confirmations and interactive flows #6
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sixfold-space/madtea#6
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part of #10.
Claude Code fully supports MCP elicitation: "When a server needs information it can't get on its own, Claude Code displays an interactive dialog and passes your response back to the server. No configuration is required" (docs, verified 2026-07-06). madtea never uses it — today the server can only error out and hope the agent re-calls correctly.
Prime use cases, in value order:
close_requires_reason=require, instead of hard-refusing, elicit the reason from the human and proceed.madt_issues action=delete, gated admin-domain destructive ops: elicit an explicit confirm instead of trusting the agent's judgment.madtea setupover MCP — the CLI setup flow uses survey prompts; an MCP-side setup could elicit URL/token interactively instead of being CLI-only.Acceptance criteria
elicitationcapability; current behavior (error with guidance) is the fallback — no regression on non-supporting clientsLanded in a later PR (2026-07-09): capability-gated elicitation for the two pinned flows — bare-close reason (single + batch, elicited reason feeds the same path as
reason=; decline/empty/error → the byte-identical refusal) and issue-delete confirmation (decline/error → fail-safe abort). Non-elicitation clients unchanged on every path. Notable: review caught a would-be production bug headless — Claude Code's bundled schema rejects form elicitation withoutrequestedSchema.properties, so the delete-confirm now sends a minimal empty-properties schema (which Claude Code renders as exactly the message-only accept/decline dialog we want), with a wire-shape regression test.What keeps this open — two things:
close_requires_reason=require, bare-close an issue and confirm the reason dialog appears and the typed reason lands in the closing comment; (b)madt_issues action=deleteon a scratch issue and confirm the confirm dialog appears, decline aborts, accept deletes.madtea setupover MCP (elicit URL/token interactively) — was deliberately left out of this slice; it's a bigger surface (credential flow over elicitation needs its own security look, ADR 0013). Say the word and it gets its own ladder, or close this issue after the live check and file it separately.madtea setup or mcp tooling for same should be its own issue
Labelled status/needs-decision after today's strict-omission convergence changed this issue's ground. Where each original ask stands:
Decision needed: close this as superseded by ADR 0029 (the pattern this issue proposed for destruction is deliberately retired, and nothing reversible currently wants a dialog), or reshape it into a placeholder for the first reversible-consent use case. CLOSING.