feat(server): MCP tools for an inbox, approvals, thread diffs, and more thread actions - #15428
Closed
maria-rcks wants to merge 8 commits into
Closed
maria-rcks wants to merge 8 commits into
maria-rcks wants to merge 8 commits into
Conversation
…re thread actions
Contributor
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — The PR introduces multiple production MCP capabilities, including approval execution, inbox aggregation, Git diff exposure, lifecycle toggles, and irreversible thread deletion. It also broadens Claude's default read-only tool allowlist, making the change cross-cutting and consequential rather than a contained additive update. You can add or adjust custom eligibility rules. Learn more. |
Collaborator
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #15219. Its explicit
threadId/projectIdtargets make these tools usable from outside a thread.Problem
With #15219 an MCP client can target any thread, but it still can't do much once it gets there. Nothing tells it which threads need attention. It can't approve a command, read what a thread changed, or delete a thread, mark one read, or toggle auto-settle. The app's own commands already do all of these.
Change
These are thin wrappers over existing commands and services. Nothing new in orchestration.
t3_inbox(read-only): active threads that need attention, built from thread shells. Pending requests come first, then failed runs, then unread completed work. Snoozed and settled threads only show for pending requests, using the client's snooze early-wake rule. Scoped to a project. A client outside a thread can see every project.t3_thread_organize: new actionsmark_read(thread.visit, the reverse ofmark_unread),auto_settle_on/auto_settle_off, anddelete. Delete requires a full-access caller.t3_pending_request_list/read/respondnow cover approvals.respondtakes adecision, limited to the options the provider offered, or the composer's defaults when it offered none.listkeepsrequestIdsand addsrequestswith each kind. Approving requires a full-access caller, since it lets the caller run commands in another thread. Declining or cancelling only stops a command, so any caller that can reach the thread may do it. Newt3_pending_request_dismissmaps tothread.user-input.dismiss.t3_thread_diff(read-only): a thread's working-tree and branch diffs viaReviewService, with a character budget. Requesting one file resolves a rename's old path.Verification
t3_inbox, read it, and accepted it. B's command ran.t3_thread_diffreturned both diff sources.deletewas refused in both forms: on itself (capability_denied) and on A (mode check).Not verified: the outside-client path over OAuth (#15220),
t3_pending_request_dismiss(no dismissable question came up), a one-file diff of a renamed file (no rename on the branch). Inbox snooze hiding was checked live, and a before screenshot of the old "Answered pending questions" label.Still missing (follow-ups, not in this PR)
Full settings (providers, models, keybindings), git and PR actions, terminals, provider auth and usage, folder browsing for adding projects, pin reordering (the order-key helper lives in client-runtime), and opening a thread in a client.
Written by
claude-opus-5-5in Claude Code, running in T3 Code.