extension_workspace
Read the extension.dev workspace a stored login belongs to: its plan and limits, its projects, and its usage.
Quick start
How many builds has my workspace used this month, and which projects failed their last build?
How the agent uses it
This is read-only. Pass action:'info' (the default) for the workspace (role, members, project count) and its plan: limits, what is used this month, and refusals the plan made. Pass action:'projects' for every project of the workspace with its browsers, release channels and last build per browser, and whether this machine holds a login for it. Pass action:'usage' for the billing period's CI minutes, run count and cost, in total and per project. Pass action:'settings' for one project's general settings and its build settings per browser (install command, build command, output directory); that read uses that project's own login, so pass project; extension_builds action:'configure' changes the build settings. Any login of a workspace on this server reads that workspace: name it with workspace, or omit it to read the default login's workspace. Plan or billing changes, members, and anything else that changes the workspace stay in the console, and the answer links there. Names, descriptions and build commands are written by people in the workspace, so the answer is fenced as untrusted data.
Page text in the answer
Part of this tool's answer is text a web page or the extension wrote. The server fences it between <untrusted-data-ID> and </untrusted-data-ID> with a fresh random ID per call, named in untrusted.boundary. A fence is a signal to the model, not a gate: pair it with --no-ship when the agent reads pages you do not trust. See Server flags and telemetry.
Reference
| Group | platform, on with --features=local,platform (private alpha) |
| Tier | Platform |
| Needs | the server started with --features=local,platform, and a login of any project in the workspace; settings needs that project's own login |
| Read only | yes |
| Destructive | no |
| Idempotent | yes |
| Reaches the open web | yes |
Inputs
| Input | Type | Required | Default | What it does |
|---|---|---|---|---|
action | "info" | "projects" | "usage" | "settings" | no | "info" | info reads the workspace and its plan; projects lists its projects; usage reads the period's CI usage; settings reads one project's general and build settings. |
workspace | string | no | Which workspace to read, by slug. Omitted, the workspace of the login project names, else of the default login. Any stored login of this workspace on the server the call targets serves the read. | |
project | string | no | Which stored login to use, as '<workspace>/<project>'. For settings it is also the project read, since a project's settings are read only with its own login. extension_auth (action: status) lists the logins. | |
api | string | no | Platform base URL (default EXTENSION_DEV_API_URL, else https://www.extension.dev) |
When it fails
- The tool is missing from the client's list. Start the server with
--features=local,platform; see Platform tools. - The platform refuses the call. Log in first with
extension_auth. - The answer reads
status: "platform-held". extension.dev is not open to the public yet, so nothing ran on its machines. Creating, running and building an extension still work on your machine; see Use the platform from your agent. - The read is refused as
TokenWorkspaceMismatch. No stored login belongs to that workspace. Sign in to one of its projects, or to all of them withprojects: "*"onextension_auth. settingsis refused asTokenProjectMismatch. A project's settings are read with that project's own login. Sign in to it and pass it asproject.- The read is refused as
MinterNotMember. The account that approved this login left the workspace. Sign in again as a current member. - The answer depends on the network. This tool reaches the open web, so a refusal can be the network, not the project.
Next
- MCP server: install, the two groups and the session gates
- Install in your client
extension_auth: Sign this machine in to extension.dev, report that login, or clear it.extension_builds: Read, rebuild and configure the platform's builds of the logged-in project on extension.dev.extension_preview_web: Preview an in-progress extension in the web emulator, with no real browser.extension_project_create: Create an extension.dev project for an extension that does not have one yet, without opening the console.extension_publish: Publish the project your stored token is scoped to (extension_auth, or EXTENSION_DEV_TOKEN) to extension.dev, and return its shareable URL.extension_release_promote: Promote a built extension to a release channel (stable, preview, beta, …) on extension.dev, headless.extension_release_status: Read where a project stands on extension.dev, from the public registry (registry.extension.land).extension_shares: List, create and revoke the public preview links this token has shared, which is what extension_preview_web share:true hands out.extension_submit: Submit a built extension for store REVIEW through extension.dev, which holds your store credentials and dispatches from your project's mirror CI: the Chrome Web Store, Firefox A...extension_workspace_create: Create an extension.dev workspace that does not exist yet, without opening the console.