T3.Projects (T3 v0.3.0)

Copy Markdown View Source

Project discovery and mutation through MCP. Outside clients have no implicit T3 project. read/2, create/2, update/2, delete/2 and clone/2 take T3's original string-keyed maps. Permission and availability are enforced by T3.

Summary

Functions

Clone a repository (destinationPath new or empty). Register after with t3_project_create, with the same environmentId.

Register a project folder. createWorkspaceRootIfMissing creates it; a registered folder is rejected. No workspaceRoot: makes a git repo from title with README, icon, first commit (commitError on failure; project still exists). Clone first with t3_project_clone if needed.

Delete one project. Nonempty needs force: true. Folder on disk stays.

List projects. Pages can shift.

Read one project: workspace and saved scripts.

Update one project's settings. Omitted fields are unchanged.

Functions

clone(client, arguments \\ %{})

@spec clone(T3.Client.t(), map()) :: {:ok, map()} | {:error, T3.Error.t()}

Clone a repository (destinationPath new or empty). Register after with t3_project_create, with the same environmentId.

Availability is server-, permission-, and context-dependent; outside clients must supply explicit project/thread targets when required.

create(client, arguments \\ %{})

@spec create(T3.Client.t(), map()) :: {:ok, map()} | {:error, T3.Error.t()}

Register a project folder. createWorkspaceRootIfMissing creates it; a registered folder is rejected. No workspaceRoot: makes a git repo from title with README, icon, first commit (commitError on failure; project still exists). Clone first with t3_project_clone if needed.

Availability is server-, permission-, and context-dependent; outside clients must supply explicit project/thread targets when required.

delete(client, arguments \\ %{})

@spec delete(T3.Client.t(), map()) :: {:ok, map()} | {:error, T3.Error.t()}

Delete one project. Nonempty needs force: true. Folder on disk stays.

Availability is server-, permission-, and context-dependent; outside clients must supply explicit project/thread targets when required.

list(client, arguments \\ %{})

@spec list(T3.Client.t(), map()) :: {:ok, map()} | {:error, T3.Error.t()}

List projects. Pages can shift.

Availability is server-, permission-, and context-dependent; outside clients must supply explicit project/thread targets when required.

read(client, arguments \\ %{})

@spec read(T3.Client.t(), map()) :: {:ok, map()} | {:error, T3.Error.t()}

Read one project: workspace and saved scripts.

Availability is server-, permission-, and context-dependent; outside clients must supply explicit project/thread targets when required.

update(client, arguments \\ %{})

@spec update(T3.Client.t(), map()) :: {:ok, map()} | {:error, T3.Error.t()}

Update one project's settings. Omitted fields are unchanged.

Availability is server-, permission-, and context-dependent; outside clients must supply explicit project/thread targets when required.