Skip to content

extension_create ​

Create a browser extension project from a template in the extension.dev catalog.

Quick start ​

Create a new tab extension with React in ./my-newtab

Asked for a React new tab extension, the agent scaffolds it from a template and lists what landed.

Asked for a React new tab extension, the agent scaffolds it from a template and lists what landed.

How the agent uses it ​

Call extension_templates first to see what is available. The scaffolder may initialize a git repository in the new project (with a first commit), and it also writes store metadata and a .gitignore of its own. Read the result's defaultsApplied block for the decisions this tool can read back: parent directory, template, package manager, target browser and whether a git repository was initialized by this call. The result's scripts lists every package.json script that runs the engine, with the browser it targets and the folder it writes: the scaffolder passes no --browser to dev, start and build, so the engine runs them as chromium and npm run build writes dist/chromium, while build:chrome writes dist/chrome; read the folder from that list instead of assuming one. A scaffold that answers created is verified (its manifest was found and read): it needs no build to prove it, so do not run npm run build to check it; the next step is extension_dev with the answered projectPath, which runs it in a browser, as the answer's nextSteps says. After a successful scaffold this tool sends one telemetry event, draft_seeded (template slug, source and commit, a random install id, never a path or a name), to PostHog; the Telemetry section of this package's readme names the two environment variables that turn it off.

Reference ​

Grouplocal, on by default
TierCreate and build
Needsnone
Read onlyno
Destructiveno
Idempotentno
Reaches the open webyes

Inputs ​

InputTypeRequiredDefaultWhat it does
projectNamestringyesName of the extension project (used as directory name). Alias: name.
parentDirstringnoDirectory to create the project inside. Defaults to the MCP server process cwd, NOT the caller's cwd, so pass it whenever you care where the project lands. Aliases: parent, into.
templatestringno"typescript"Template slug from the extension.dev catalog (e.g. 'react', 'ai-claude', 'content-vue'). extension_templates discovers them.
installbooleannotrueInstall dependencies after creation

When it fails ​

  • 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_add_feature: Plan the surface before adding an options page, a popup, a side panel, a content script, a devtools panel, a new tab page or a background script to an existing extension.
  • extension_build: Build a browser extension for production.
  • extension_docs_search: Find the docs page to cite before answering any question about a WebExtension API, a manifest key, a permission, or a difference between Chrome, Firefox, Edge and Safari.
  • extension_templates: Browse the extension.dev template catalog.