# feat\(mcp\): expose thread model selection · PR \#10557 · pingdotgg/t3code

[View on GitCafe](https://git.cafe/pingdotgg/t3code/pull/10557)

Repository: [pingdotgg/t3code](https://git.cafe/pingdotgg/t3code)

Visibility: public

State: merged

Source repository: pingdotgg/t3code

Source branch: agents/mcp-thin/configuration

Target branch: agents/mcp-thin/questions

Head commit: b0152bc6413b878f786c6c2ef30770fde71e3bbc

[Discussion and reviews](https://git.cafe/pingdotgg/t3code/pull/10557)

[Commits](https://git.cafe/pingdotgg/t3code/pull/10557/commits?format=markdown)

[Files changed](https://git.cafe/pingdotgg/t3code/pull/10557/diffs?format=markdown)

## Description

---

Part 7/16 of the [shared-core and MCP stack](https://github.com/pingdotgg/t3code/stacks/10582). Based on [#10556](https://github.com/pingdotgg/t3code/pull/10556). Next: [#10558](https://github.com/pingdotgg/t3code/pull/10558).

Read thread configuration and change the calling thread provider/model/options through existing selection and switch commands.

This intentionally limits writes to the caller. Permission-mode changes, cross-thread configuration and multi-command retry transactions are separate work. Provider/model discovery already exists in orchestrator_capabilities.

The command choice is now shared with client-runtime through modelSelectionCommandType; MCP does not maintain a separate provider comparison.

MCP-only rebuild of [#8695](https://github.com/pingdotgg/t3code/pull/8695), preserving attribution to Julius Marminge's original work. Original branches remain available for separate service follow-ups.

Validation: The composed stack passes 94 tests across 12 focused files, including shared core MCP and real MCP/V2 integration, attachment intake, project RPC/service contracts, and client model command selection. Server/contracts/shared/client-runtime typechecks and targeted format/lint/diff checks pass. New behavior coverage lives with the shared operation; no per-tool mock suite was added. Current-head CI is shown below.

Layer size: 4 files, +59/-0. No domain-service production implementation or documentation files change in this MCP layer.

Prepared with Codex in the OpenAI agent runtime.

<!-- Macroscope's pull request summary starts here -->
<!-- Macroscope will only edit the content between these invisible markers, and the markers themselves will not be visible in the GitHub rendered markdown. -->
<!-- If you delete either of the start / end markers from your PR's description, Macroscope will append its summary at the bottom of the description. -->
> [!NOTE]
> ### Add `t3_thread_configuration` and `t3_thread_configure` MCP tools for thread model selection
> - Adds a read-only `t3_thread_configuration` tool that returns the calling thread's ID, model selection, runtime mode, and interaction mode
> - Adds a destructive `t3_thread_configure` tool that dispatches a model-selection command to the current writable thread without changing permission modes or other threads
> - Registers both tools in `ThreadToolkit`, adds `t3_thread_configuration` to the Claude read-only allowlist, and adds display-name entries in the T3 MCP presentation map
> - Risk: `t3_thread_configure` opens the current thread for writing and dispatches a command; callers that invoke it concurrently may interleave sequence numbers. Reviewers should check `ThreadToolkitHandlersLive` configure handler in [handlers.ts](https://github.com/pingdotgg/t3code/pull/10557/files#diff-c86137ad202b428627265a1cfb74fbaed2f5df4c5edd2ecc9289bf94241146bf) for dispatch and error-mapping behavior
>
> <!-- Macroscope's review summary starts here -->
>
> <sup><a href="https://app.macroscope.com">Macroscope</a> summarized b0152bc.</sup>
> <!-- Macroscope's review summary ends here -->
>
<!-- Macroscope's pull request summary ends here -->
