@extension.dev/mcp 5.6.1 → 5.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,7 +10,7 @@
10
10
  "name": "extension-mcp",
11
11
  "source": "./",
12
12
  "description": "MCP tools for browser extension development: scaffold from 60+ templates, run the dev server with HMR, inspect the live DOM and logs, and publish store-ready builds for Chrome, Edge, and Firefox.",
13
- "version": "5.6.1",
13
+ "version": "5.7.0",
14
14
  "category": "development",
15
15
  "author": {
16
16
  "name": "Cezar Augusto"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "extension-mcp",
3
3
  "description": "MCP tools for browser extension development: scaffold from 60+ templates, run the dev server with HMR, inspect the live DOM and logs, and publish store-ready builds for Chrome, Edge, and Firefox. Ships /extension, /extension-add, /extension-debug, and /extension-publish commands.",
4
- "version": "5.6.1",
4
+ "version": "5.7.0",
5
5
  "author": {
6
6
  "name": "Cezar Augusto",
7
7
  "email": "hello@extension.dev",
package/CHANGELOG.md CHANGED
@@ -1,5 +1,74 @@
1
1
  # Changelog
2
2
 
3
+ ## 5.7.0
4
+
5
+ The live-preview carrier stops living in your project, reports what it
6
+ refused, and rides an engine that tells you when the browser turned your
7
+ extension away.
8
+
9
+ ### Fixed
10
+
11
+ - The live-preview carrier is no longer a permanent resident of the
12
+ project. `extension_stop` removes it, `extension_build` removes it
13
+ before the build runs (and refuses to call a build clean if it ever
14
+ finds the carrier in `dist/`), and `extension_dev carrier: true` adds
15
+ it to `.gitignore` so the first `git add -A` cannot vendor it. Every
16
+ path is marker-guarded: a directory the tool did not place is reported,
17
+ never removed.
18
+ - `extension_open` no longer navigates away whatever page the caller was
19
+ watching. It reuses only a disposable tab (blank, new-tab page, or a
20
+ tab already on the same extension origin) and otherwise opens a new
21
+ background tab, so a trace page keeps its carrier registration.
22
+ - `extension_open` treats a client-side redirect as a landing instead of
23
+ reporting `NavigateFailed`, and reports where the page went. A failed
24
+ `http(s)` navigation no longer sends the caller off to debug their own
25
+ bundle.
26
+ - `extension_open` confirms with the browser that a UI surface actually
27
+ opened. When the engine reports the surface opened and no document
28
+ target appears, the result says so (`SurfaceDidNotOpen`) and points at
29
+ `asTab: true`, instead of handing back a green answer for a surface
30
+ that is not there.
31
+
32
+ - The bundled carrier payload answers with its real results. Every
33
+ backend method returns the promise it was given instead of a shape,
34
+ so a `chrome.*` call that rejects reaches the caller as a failure;
35
+ `executeScript` refuses `func`/`code` forms it cannot honor, offscreen
36
+ close is verified, and `downloads.erase` is implemented. A refusal now
37
+ rides a `refused` disposition from the refusal site through the carrier
38
+ into the trace, so refused calls stop being badged as real work and
39
+ stop earning coverage. Storage rows correlate on a canonical key (one
40
+ call, one row), tab facts survive both directions, and the event port
41
+ replays its backlog to a page that connects late.
42
+
43
+ ### Changed
44
+
45
+ - The engine this server spawns when a project has no local install is
46
+ pinned to `4.0.16-canary.1784889479.74e12044`. Two behaviors are worth
47
+ the prerelease: `EXTENSION_HEADLESS` is finally honored, so an agent
48
+ driving `extension_dev` cannot open a window on the operator's screen,
49
+ and a browser refusing to load the extension is reported as an error
50
+ instead of a session that claims to be ready. `extension_wait` already
51
+ surfaces both through the ready contract. This pin returns to a stable
52
+ release once 4.0.16 ships. A project with its own `extension` install
53
+ is unaffected, and `EXTENSION_MCP_CLI_VERSION` still overrides.
54
+ - `extension_deploy` and `extension_store_status` advertise `safari`
55
+ again: the platform's Safari/App Store submission lane is now enabled
56
+ for every project, so the store enum and the per-store status report
57
+ treat it like chrome, firefox, and edge.
58
+
59
+ ### Added
60
+
61
+ - `extension_dev` accepts `carrier: true` (Chromium-family sessions): it
62
+ places the bundled Extension.dev Live Preview carrier in the project's
63
+ `./extensions` folder, which Extension.js auto-loads as a companion
64
+ beside the extension under development. Pages the carrier allowlists
65
+ (inspect.extension.dev, localhost) can then pair with the live session
66
+ and stream its real-lane chrome.* session trace over the carrier's
67
+ event port. The copy is marker-guarded: an existing unmanaged
68
+ `extensions/extension-dev-live-preview` directory is never overwritten,
69
+ and the tool result reports what happened either way. The prebuilt
70
+ payload ships in the package under `extensions/live-preview`.
71
+
3
72
  ## 5.6.1
4
73
 
5
74
  ### Changed
package/README.md CHANGED
@@ -26,13 +26,23 @@ Extensions fail silently: content scripts that never inject, panels that never o
26
26
  These tools give agents eyes on the live browser, so they debug from evidence instead of guessing:
27
27
 
28
28
  - **Scaffold** from the 60+ template catalog behind [templates.extension.dev](https://templates.extension.dev), or add a popup, sidebar, or content script to an existing project
29
- - **Run** the dev server with HMR in Chrome, Edge, Firefox, Brave, Opera, Vivaldi, Yandex, Waterfox, LibreWolf, or any Chromium- or Gecko-based binary (Safari coming next), no build config
29
+ - **Run** the dev server with HMR in Chrome, Edge, Firefox, Brave, Opera, Vivaldi, Yandex, Waterfox, LibreWolf, or any Chromium- or Gecko-based binary, plus Safari on macOS (no HMR yet), no build config
30
30
  - **See** the live DOM, unified logs from every extension context, `chrome.storage` contents, and the loaded-extension list
31
31
  - **Act**: evaluate code in any context, trigger the action button and commands, reload the extension, replay events
32
32
  - **Ship**: validate the manifest cross-browser, build for production, publish a shareable preview, and promote builds to release channels headlessly
33
33
 
34
34
  Built on [Extension.js](https://extension.js.org), the open-source cross-browser extension framework.
35
35
 
36
+ ## Clients
37
+
38
+ <div align="center">
39
+
40
+ | <img alt="Claude Code" src="https://media.extension.land/logos/devtools/claude-code.svg" width="70"> | <img alt="Claude Desktop" src="https://media.extension.land/logos/ai/claude.svg" width="70"> | <picture><source media="(prefers-color-scheme: dark)" srcset="https://media.extension.land/logos/devtools/cursor-dark.svg"><img alt="Cursor" src="https://media.extension.land/logos/devtools/cursor.svg" width="70"></picture> |
41
+ | :-: | :-: | :-: |
42
+ | Claude Code | Claude Desktop | Cursor |
43
+
44
+ </div>
45
+
36
46
  ## Setup
37
47
 
38
48
  ### Claude Code