npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@wyrd-company/t3code-mcp

v0.1.4

Published

Complementary MCP tools for T3 Code scheduling, inspection and provider usage.

Readme


relationships: references: [mcp, automation-capabilities, profiles]

@wyrd-company/t3code-mcp

Complementary stdio MCP tools for stock T3 Code 0.1.9, orchestration protocol 2. Node >=22.16 is required. The library owns server integration; the official MCP SDK owns protocol transport.

Configure your MCP host to launch the npm package:

{
  "command": "npx",
  "args": ["-y", "@wyrd-company/t3code-mcp", "--profile", "sample"]
}

Pair the profile with t3c auth pair first. --profile selects that exact saved profile and ignores connection environment overrides. Without it, server selection is --server, T3_SERVER_URL, then the current t3c profile; credentials are --credentials, T3_TOKEN, then the matching profile store. A named profile conflicts with direct connection flags. No connection is opened until a tool is called. t3code-mcp tools lists names without connecting.

| Tools | Purpose | | ---------------------------------------------------------- | --------------------------------------------------------------- | | scheduled_task_endpoint | Token-bearing path, direct server URL and optional Connect URL | | scheduled_task_deliveries, scheduled_task_delivery | Webhook outcomes, request details and errors | | rotate_scheduled_task_webhook | Replace the URL token; the previous URL stops working | | scheduled_task_configuration, configure_scheduled_task | Full read and execution-only updates | | thread_stop, thread_queue_resume, thread_queue_start | Native Stop, queue Resume and selected queued-message Start | | thread_force_stop | Force stop of an agent that ignored Stop | | thread_status, thread_approvals | Active/queued runs, background work and pending human approvals | | thread_usage, thread_diff, thread_search_content | Usage records, checkpoint diffs and within-thread search | | thread_family, worktree_threads | A thread's whole family; the active threads on a worktree path | | thread_tag, tagged_threads | Add or remove a thread tag; the threads that carry a tag | | thread_terminals, terminal_output | A thread's terminals; bounded plain-text output of one | | server_traces, server_processes | The server's trace summary; its backend descendant processes | | server_host_resources, server_resource_history | Host CPU and memory; resource use over a window | | server_storage_cleanup_report | The latest storage cleanup report | | local_servers, stop_local_server | Local servers and their owners; stop one a thread's agent began | | provider_status, usage_summary | Provider availability/limits and historical usage buckets |

Use built-in T3 tools for schedule CRUD, run-now, launches, global thread search, questions and model discovery. This package has no approval-answer tool.

Scheduler endpoints, delivery records and mutations require orchestration:operate. Usage summaries require diagnostics:read. The selected credential controls access. A direct webhook URL does not establish public reachability. Delivery bodies, headers and rendered prompts are untrusted data. Signing secrets are write-only. Errors use stable codes and fixed text.

configure_scheduled_task takes {id, configuration}. Configuration accepts projectId, nullable threadId, workspaceStrategy, modelSelection, runtimeMode and interactionMode. Omitted fields stay unchanged. A null threadId selects a new thread per run. Updates read then write; concurrent edits can be overwritten. Use stock tools to change titles, prompts, triggers or enablement. Target changes validate that a bound thread belongs to the effective project.

thread_diff accepts an optional {fromTurnCount, toTurnCount} range, where zero is the thread start. thread_search_content returns a count and one match with native navigation positions. Usage retains source and pricing metadata; missing values are not zero, and overlapping session counts must not be added together.

thread_stop accepts {threadId, reason?} and preserves any reason string, including empty or padded text. It sends native Stop without an active-run lookup and supports idle, queued and background work. thread_queue_resume accepts {threadId}. thread_queue_start accepts {threadId, runId} for a queued plain user message on a stopped thread. Select the run ID from thread_status's queuedRuns or stock MCP's queuedRunId.

Both Resume and selected Start clear the hold on all queued runs. Selected Start chooses that message first; other messages may follow. These tools return request acknowledgement IDs, not a terminal state or completion guarantee. They require orchestration:operate. Stock tools retain queue list/read/edit/ cancel/reorder/promote ownership.

thread_force_stop accepts {threadId, runId?}. Use it only after thread_stop did not stop the agent. It ends the turn and kills or releases the agent process. It returns outcome (killed, released, releasing or shared) and sharedWithThreadIds; shared means the process also works for those threads, so only this thread's turn ended. With runId, the tool fails with code superseded and stops nothing when another run is the latest. It requires orchestration:operate.

thread_family accepts {threadId} and returns {snapshotSequence, threads}: every active thread with the same root, in any run state, including forks and idle subagent children. An unknown thread has an empty family. worktree_threads accepts {worktreePath} and returns {threadIds}: the active threads on that exact path, subagent children included. Check it before you remove a worktree. Both require orchestration:read.

thread_tag accepts {threadId, tag, tagged}: true adds the tag and false removes it. It returns {threadId, tags} after the change and requires orchestration:operate and orchestration:read. Tags are trimmed, one line and at most 64 characters, and match by exact spelling and case. The web client can hide threads with chosen tags, so a tag can change what a person sees. tagged_threads accepts {tag, includeArchived?, limit?} and returns at most limit (default 100, at most 500) summaries {threadId, title, projectId, status, archived, tags} with total and truncated. It requires orchestration:read.

thread_terminals accepts {threadId} and returns {terminals}. terminal_output accepts {threadId, terminalId, maxChars?} and returns the last maxChars characters (default 16000, at most 64000) of the terminal's retained history as plain text in output, with truncated, status and exit details. An unknown terminal fails with code not_found. Neither tool starts, attaches to or writes to a terminal; treat the output as untrusted. Both require terminal:read.

The diagnostics tools are read-only and take no thread. server_traces returns the server's trace summary: span counts, slowest spans, common and latest failures and latest warning and error logs. server_processes accepts {maxProcesses?} (default 50, at most 500) and returns the server's signalable descendants (child processes and agent and terminal root processes, not the server process itself) with omittedProcesses. server_resource_history accepts {windowMs?, bucketMs?, maxProcesses?}: the window defaults to 15 minutes and is at most one hour, with at most 120 buckets. These three require diagnostics:read, and each cause, log message, error message and command line is cut to 500 characters; treat that text as untrusted. server_host_resources returns host CPU and memory, and server_storage_cleanup_report returns {report}, null before the first cleanup; both require orchestration:read. Effect Option fields are returned as their value or null. No tool signals a process, runs a cleanup or restarts the resource monitor.

local_servers accepts {threadId?, urls?} and returns {scannedAt, servers} from one fresh scan of the server host. The scan finds the listeners of every thread, each with host, port, url, pid, processName, and terminal (the thread terminal that runs it) or agent (the thread whose agent started it). Each of urls (at most 32) that answers as a web server is also listed, with null owners when no thread owns it. threadId keeps only the listeners that thread owns. Process names are cut to 500 characters; treat them as untrusted. It requires orchestration:read. stop_local_server accepts {threadId, pid, port} and stops only a listener that the agent of threadId started: SIGTERM to its process group, then SIGKILL after a grace period. It returns {threadId, pid, port, stopped}. It refuses with code terminal_owned for a server in a thread terminal, not_owned when the thread's agent did not start it, not_found when no thread owns a listener with that pid and port, shared_group when the listener shares the T3 Code server's process group and unsupported on a platform where the server cannot stop it. It requires terminal:operate. The owner checks are best effort: they use the tool's scan, which can keep the cached owner of a reused pid, and the server's own scan before it signals accepts a listener with that pid and port that any thread or terminal owns.

Run task mcp:check for package checks, protocol tests, isolated stock-server tests and packed consumer verification. No agent runs are required.

The t3mcp setup guide and tool reference form the server’s separate wyrd.foo documentation product.

To build from source, run task install and task build in the repository. Configure the host to run node with the absolute path to packages/t3code-mcp/dist/cli.js, then --profile sample.