Context
T3 already attaches one product-owned t3-code MCP server to provider sessions. Extend that existing seam with Project/Wiki providers instead of creating service-specific adapter protocols.
Dependencies:
Trusted execution context
Every MCP request must resolve a server-created context, conceptually:
interface ToolExecutionContext {
environmentId: string
threadId: string
providerSessionId: string
providerInstanceId: string
logicalAgentId: string
t3ProjectId: string
projectServiceProjectId?: string
capabilities: ReadonlySet<string>
}
The Agent must not provide or override:
clientId / consumerId;
agentId;
projectId;
executorRef;
- Wiki root/subtree identity;
- Session/Thread identity;
- service credentials.
Project/Wiki integrations derive those values from the trusted Session and add them to SDK calls behind the MCP boundary.
Capabilities
Decouple MCP attachment from the Browser setting. Model independent capabilities such as:
preview
project.work.read
project.work.write
wiki.read
wiki.write
Disabling Browser access must not disable Project/Wiki. Agent settings changes should refresh/revoke the relevant MCP credential scope without deleting the Session.
Provider adapters
Reuse the generic T3 MCP attachment for:
- Codex;
- Claude;
- Cursor;
- Grok;
- locally managed OpenCode.
Externally managed OpenCode servers are explicitly unsupported in this phase. Do not add Project/Wiki-specific code to every adapter.
Project MCP v1
Prefer context-bound tools such as:
project_work_list()
project_work_get(runId)
project_work_submit(runId, revisions, result)
project_operation_get(operationId)
No tool accepts Agent/Project/Client/executor identity. T3 adds agentId + projectId; Project Service derives the authenticated Client half and canonical executorRef.
Expose only an explicit allowlist; do not publish a generic Project HTTP facet to the Agent.
Error boundary
Map Service SDK errors into structured MCP errors, including:
- authentication invalid/disabled;
- incompatible SDK/API/protocol;
- stale assignment/revision;
- uncertain mutation with operation recovery;
- integration disabled/unavailable.
Authentication errors leave the Session intact.
Acceptance criteria
Non-goals
- Do not expose Project/Wiki Services as direct Agent-facing MCP servers.
- Do not implement a second service-specific tool transport.
- Do not expose generic admin/maintenance facets to Agents.
Context
T3 already attaches one product-owned
t3-codeMCP server to provider sessions. Extend that existing seam with Project/Wiki providers instead of creating service-specific adapter protocols.Dependencies:
Trusted execution context
Every MCP request must resolve a server-created context, conceptually:
The Agent must not provide or override:
clientId/consumerId;agentId;projectId;executorRef;Project/Wiki integrations derive those values from the trusted Session and add them to SDK calls behind the MCP boundary.
Capabilities
Decouple MCP attachment from the Browser setting. Model independent capabilities such as:
Disabling Browser access must not disable Project/Wiki. Agent settings changes should refresh/revoke the relevant MCP credential scope without deleting the Session.
Provider adapters
Reuse the generic T3 MCP attachment for:
Externally managed OpenCode servers are explicitly unsupported in this phase. Do not add Project/Wiki-specific code to every adapter.
Project MCP v1
Prefer context-bound tools such as:
No tool accepts Agent/Project/Client/executor identity. T3 adds
agentId + projectId; Project Service derives the authenticated Client half and canonicalexecutorRef.Expose only an explicit allowlist; do not publish a generic Project HTTP facet to the Agent.
Error boundary
Map Service SDK errors into structured MCP errors, including:
Authentication errors leave the Session intact.
Acceptance criteria
Non-goals