Thread MCP operations with original string-keyed arguments.
Outside clients have no implicit project: supply projectId where required.
Every operation also has an exact wire-name counterpart in T3.Tools.
Existing ID/message convenience signatures remain available.
Summary
Functions
Read a thread's provider, model, and modes, or set its provider, model, and options with modelSelection. Omit threadId for this thread. Permission modes stay. Values from orchestrator_capabilities.
Create new top-level threads in this checkout. Not delegation. One thread or its own worktree: t3_thread_launch. Project, branch, and worktree inherit.
Pin, snooze, settle, archive, or mark a thread unread. Omit threadId for this thread. snooze needs snoozedUntil. Settling this thread applies at turn end. A failed turn or queued message leaves it active.
Move context between threads. Omit threadId for this thread. fork: copy it from sourcePoint (default latest stable run) into a new thread with the same setup; no turn runs yet. merge_back: merge it from sourcePoint into a related targetThreadId in the same project. status: its context transfers.
Rename a thread (action:'rename' with title) or regenerate its title. Omit threadId for this thread. Workspace and branch cannot change here.
Wait for a thread's run to finish. No runId: latest. Idle: at once. On timeout, with next end your turn; without, call again.
Functions
@spec configure(T3.Client.t(), map()) :: {:ok, map()} | {:error, T3.Error.t()}
Read a thread's provider, model, and modes, or set its provider, model, and options with modelSelection. Omit threadId for this thread. Permission modes stay. Values from orchestrator_capabilities.
Availability is server-, permission-, and context-dependent; outside clients must supply explicit project/thread targets when required.
@spec create_many(T3.Client.t(), map()) :: {:ok, map()} | {:error, T3.Error.t()}
Create new top-level threads in this checkout. Not delegation. One thread or its own worktree: t3_thread_launch. Project, branch, and worktree inherit.
Availability is server-, permission-, and context-dependent; outside clients must supply explicit project/thread targets when required.
@spec organize(T3.Client.t(), map()) :: {:ok, map()} | {:error, T3.Error.t()}
Pin, snooze, settle, archive, or mark a thread unread. Omit threadId for this thread. snooze needs snoozedUntil. Settling this thread applies at turn end. A failed turn or queued message leaves it active.
Availability is server-, permission-, and context-dependent; outside clients must supply explicit project/thread targets when required.
@spec transfer(T3.Client.t(), map()) :: {:ok, map()} | {:error, T3.Error.t()}
Move context between threads. Omit threadId for this thread. fork: copy it from sourcePoint (default latest stable run) into a new thread with the same setup; no turn runs yet. merge_back: merge it from sourcePoint into a related targetThreadId in the same project. status: its context transfers.
Availability is server-, permission-, and context-dependent; outside clients must supply explicit project/thread targets when required.
@spec update(T3.Client.t(), map()) :: {:ok, map()} | {:error, T3.Error.t()}
Rename a thread (action:'rename' with title) or regenerate its title. Omit threadId for this thread. Workspace and branch cannot change here.
Availability is server-, permission-, and context-dependent; outside clients must supply explicit project/thread targets when required.
@spec wait(T3.Client.t(), map()) :: {:ok, map()} | {:error, T3.Error.t()}
Wait for a thread's run to finish. No runId: latest. Idle: at once. On timeout, with next end your turn; without, call again.
Availability is server-, permission-, and context-dependent; outside clients must supply explicit project/thread targets when required.