Claude Code 2.1.76: MCP Elicitation, Voice Fixes

MCP servers can now request structured input mid-task. Deferred tools schema loss fixed. Voice mode, slash commands, and Remote Control all improved in this release.

Claude Code 2.1.76: MCP Elicitation, Voice Fixes

TL;DR

  • MCP servers can now request structured input mid-task via interactive dialogs
  • New elicitation hooks let you intercept and override MCP responses
  • Fixed deferred tools losing input schemas after compaction, breaking array/number parameters
  • Voice mode, slash commands, and Remote Control session handling all improved

New

  • MCP elicitation support — MCP servers can request structured input mid-task through interactive dialogs with form fields or browser URLs.
  • Elicitation hooks — New Elicitation and ElicitationResult hooks intercept and override responses before sending them back.
  • Session display name flag — Use -n / --name <name> to set a display name at startup.
  • Sparse checkout for monoreposworktree.sparsePaths setting lets claude --worktree check out only needed directories via git sparse-checkout.
  • PostCompact hook — New hook fires after compaction completes.
  • /effort slash command — Set model effort level directly in chat.
  • Session quality survey — Enterprise admins can configure sample rate via feedbackSurveyRate setting.

Fixed

  • Deferred tools losing input schemas after conversation compaction, causing array and number parameters to be rejected.
  • Slash commands showing "Unknown skill" error.
  • Plan mode asking for re-approval after plan was already accepted.
  • Voice mode swallowing keypresses when permission dialog or plan editor was open.
  • /voice not working on Windows when installed via npm.
  • Spurious "Context limit reached" error when invoking skills with model: frontmatter on 1M-context sessions.
  • "Adaptive thinking is not supported on this model" error with non-standard model strings.
  • Bash(cmd:*) permission rules not matching when quoted arguments contain #.
  • "Don't ask again" in Bash permission dialog showing full raw command for pipes and compound commands.
  • Auto-compaction retrying indefinitely after failures — circuit breaker now stops after 3 attempts.
  • MCP reconnect spinner persisting after successful reconnection.
  • LSP plugins not registering servers when LSP Manager initialized before marketplaces were reconciled.
  • Clipboard copying in tmux over SSH — now attempts both direct terminal write and tmux clipboard integration.
  • /export showing only filename instead of full file path in success message.
  • Transcript not auto-scrolling to new messages after selecting text.
  • Escape key not working to exit login method selection screen.
  • Remote Control sessions silently dying when server reaps idle environment, rapid messages queued one-at-a-time instead of batched, and stale work items causing redelivery after JWT refresh.
  • Bridge sessions failing to recover after extended WebSocket disconnects.
  • Slash commands not found when typing exact name of soft-hidden command.
  • Gitignore patterns containing commas silently excluding entire filetypes from @-mention file picker (VSCode).

Improved

  • --worktree startup performance — now reads git refs directly and skips redundant git fetch when remote branch is already available locally.
  • Background agent behavior — killing a background agent now preserves its partial results in conversation context.
  • Model fallback notifications — always visible with human-friendly model names instead of hidden behind verbose mode.
  • Blockquote readability on dark terminal themes — now italic with left bar instead of dim text.
  • Stale worktree cleanup — worktrees left behind after interrupted parallel runs are now automatically cleaned up.
  • Remote Control session titles — now derived from your first prompt instead of showing "Interactive session".
  • /voice — now shows your dictation language on enable and warns when your language setting isn't supported for voice input.
  • --plugin-dir — updated to accept one path per flag to support subcommands; use repeated --plugin-dir for multiple directories.

Update via npm install -g @anthropic-ai/claude-code or your package manager.

Source: Claude Code