Skip to main content
Glama
t3code-mcp
by emmsixx

T3 Connect MCP

CI License: MIT

One stdio MCP connection for discovering your T3 Connect machines and using each machine’s official T3 MCP tools. Sign in to discover your machines, approve MCP access on the machines you choose, then let your external agent select and call their native tools.

Formerly T3 Code MCP (t3code-mcp). The package and command are now t3connect-mcp. The GitHub repository stays at emmsixx/t3code-mcp so existing links remain usable. This independent project is not an official T3 product.

Gateway release in preparation. The latest published v0.3.0 still uses the old name and seven-tool interface. Use the source installation below until a gateway release is published. The gateway is tested with local fake services; live compatibility with current T3 remains unverified. Verification · Migration

Why use this?

T3 already supports outside agents over MCP. Connect directly to its MCP URL when you only need one machine or your client already manages several remote connections.

This gateway adds account-wide discovery and routing through one local MCP entry, including for clients that only support stdio. It discovers native tool schemas instead of maintaining its own thread/agent API. T3 owns execution, available features, and permissions. The gateway does not implement another orchestration engine.

One account login discovers machines. Each machine still requires its own OAuth approval: T3 Connect account credentials cannot substitute for that consent. You can approve different permission levels on different machines.

Related MCP server: hermes-dsh-bridge

Install from source

Requires Node 22.12+, pnpm, Linux or macOS, a T3 Connect account, and reachable linked machines with official outside-agent MCP support. The upstream reference is T3 v0.1.2. Providers and projects are configured in T3.

git clone https://github.com/emmsixx/t3code-mcp.git t3connect-mcp
cd t3connect-mcp
pnpm install --frozen-lockfile
pnpm run build
pnpm pack --out ./t3connect-mcp.tgz
pnpm add --global ./t3connect-mcp.tgz
t3connect-mcp login
t3connect-mcp environments

To approve a selected machine, use its ID from environments:

t3connect-mcp connect <environmentId>

Open the printed URL in a browser on the computer running the CLI, choose a permission level on T3’s page, and approve. The CLI listens on an ephemeral loopback port for up to five minutes. Read-only is T3’s default. A browser on another computer needs an SSH forward for that callback port; an ordinary remote browser cannot reach it automatically. No coding task runs during setup.

The CLI stores the approved credential locally. Re-run connect when it expires, is revoked, or the machine’s address changes. Authentication

Connect your agent

{
  "mcpServers": {
    "t3connect": {
      "command": "t3connect-mcp",
      "args": ["serve"]
    }
  }
}

For Hermes, use its mcp_servers section with command: t3connect-mcp and args: [serve]. Preserve existing client settings. Use the full executable path if needed. Run login, approval, and MCP under the same OS user and state directory.

Try: “List my T3 machines, discover the tools on the machine I choose, and list its projects.”

Gateway tools

  • list_environments discovers account-linked machines, official MCP URLs, and saved approval status. Availability checks are optional.

  • list_tools lists a selected machine’s native tools, descriptions, schemas, and annotations. Follow nextCursor for more tools.

  • call_tool forwards a native tool’s name and unchanged arguments to the selected machine and returns its MCP result.

For example, discover the schema for t3_project_list, then call:

{
  "environmentId": "<selected environment ID>",
  "name": "t3_project_list",
  "arguments": {}
}

Native tools can start agents, change files, incur provider charges, or schedule recurring work. T3 enforces the approved permission ceiling. Tools requiring a T3 provider session, such as delegate_task, may reject an outside client. This gateway forwards those errors; it cannot create that identity or approve permissions. It forwards tools only, not arbitrary HTTP/RPC, MCP prompts/resources, or interactive MCP elicitation. Tools and limits

Calls are not automatically replayed. After a timeout or lost response, inspect T3 state before retrying a mutation, and follow that native tool’s own retry contract.

Credentials and configuration

New installations use ~/.t3connect-mcp. If that directory is absent and ~/.t3code-mcp already exists, the gateway continues using the old directory. T3_MCP_STATE_DIR overrides both. Account credentials and per-machine approvals are unencrypted, with directory mode 0700 and file mode 0600. Existing operation journals are retained for manual reconciliation and never replayed by this gateway.

disconnect <environmentId> forgets one local approval. logout ends the gateway’s account session and forgets all local approvals. Neither revokes the machines’ OAuth sessions: revoke those in each machine’s Settings → Connections. Storage and recovery

Upgrade or uninstall

After a gateway release is published, install or upgrade with:

pnpm add --global https://github.com/emmsixx/t3code-mcp/releases/latest/download/t3connect-mcp.tgz

Until then, repeat the source installation. The new archive name is not present on the old v0.3.0 release. Upgrades do not happen automatically. Replace the old client command with t3connect-mcp, reconnect your client, and approve each machine. Once the new command works, remove the old package with pnpm remove --global t3code-mcp. See migration for unfinished operations and downgrade limits.

To uninstall the gateway, revoke its clients in T3, run t3connect-mcp logout, remove its MCP configuration, then run pnpm remove --global t3connect-mcp. Keep legacy journals until outstanding operations are reconciled.

Contributing

See CONTRIBUTING.md. Report bugs through GitHub Issues and vulnerabilities through SECURITY.md.

License

MIT. NOTICE includes upstream attribution. Not affiliated with or endorsed by T3 Tools Inc. or Clerk.

Available Tools

7 tools
get_threadA
Read-only

Read bounded recent messages, activity, current status, provider errors and requests for human attention. Discover thread IDs with list_threads. Older turns can be paginated using beforeCursor. Reply to approvals and input in T3.

Inputs: threadId (required), environmentId (required), turnLimit, beforeCursor.

interrupt_threadA
Destructive

Request interruption of the current or explicitly selected turn. The target turn is recorded so a retry cannot interrupt a later turn.

Inputs: threadId (required), operationId (required), environmentId (required), turnId.

list_environmentsA
Read-only

List machines linked to the signed-in T3 account. Availability probes are optional and bounded to this page.

Inputs: limit, offset, checkAvailability.

list_projectsA
Read-only

List projects and their model defaults on one explicitly selected environment.

Inputs: environmentId (required), limit, offset.

list_threadsA
Read-only

Discover unarchived threads on one environment with IDs, titles, current status, approval/input flags and recent turn timing. Optionally filter by project or status. Newest activity first; bounded pages. Use get_thread with a returned threadId to read messages. Finished means the latest turn completed, not verified task success.

Inputs: environmentId (required), limit, offset, status, +1 more.

send_messageA
Destructive

Send follow-up instructions using the thread's existing model and runtime modes. May change files or incur charges. Preserve operationId and arguments for retries.

Inputs: threadId (required), operationId (required), instructions (required), environmentId (required).

start_threadA
Destructive

Create a thread and send instructions to its agent in the existing project workspace. May change files and incur provider charges. Defaults to approval-required. Worktree creation is not supported. Reuse operationId and identical arguments after ambiguous failures.

Inputs: title (required), projectId (required), operationId (required), instructions (required), +4 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.1/5.0

    Scored across 7 tools

    Disambiguation4/5

    Most tools are clearly distinct: list_threads/get_thread for reading, start_thread/send_message for creating and continuing threads, interrupt_thread for control, and list_environments/list_projects for discovery. The only mild overlap is between list_threads and get_thread, but their descriptions make the list-vs-detail relationship clear.

    Naming Consistency4/5

    Tool names follow a consistent verb_noun pattern: list_threads, get_thread, interrupt_thread, list_environments, list_projects, send_message, start_thread. The pattern is predictable, though 'send_message' and 'start_thread' are slightly less uniform than the list/get/interrupt group.

    Tool Count5/5

    Seven tools is well-scoped for a T3 coding-agent MCP server. Each tool covers a distinct operation: discovery, reading, starting, sending, and interrupting threads, plus environment and project listing. No tool feels redundant or unnecessary.

    Completeness4/5

    The surface covers the core thread lifecycle: list, get, start, send, and interrupt. Minor gaps exist, such as no explicit archive/unarchive or delete/cancel thread operation, and worktree creation is noted as unsupported, but agents can accomplish the main workflows.

    Maintenance

    ActivityActive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers