Skip to content

Bug 2088363 - Publish the package as @mozilla/firefox-mcp and keep publishing @mozilla/firefox-devtools-mcp - #233

Open
juliandescottes wants to merge 9 commits into
mozilla:mainfrom
juliandescottes:bug-2088363-rename-package
Open

juliandescottes wants to merge 9 commits into
mozilla:mainfrom
juliandescottes:bug-2088363-rename-package

Conversation

@juliandescottes

Copy link
Copy Markdown
Collaborator

Part of the rename to firefox-mcp (meta Bug 2082802). This is the release part, to ship as 0.11.0. Do not merge before release day: it needs the repo rename and the npm setup below.

Package:

  • The npm package becomes @mozilla/firefox-mcp. mcpName and server.json become io.github.mozilla/firefox-mcp, so the release registers a new MCP Registry entry.
  • package.json gets two bins, firefox-mcp and firefox-devtools-mcp. npx picks the bin that matches the package name, so both published names work.
  • Repository links point to mozilla/firefox-mcp. The CLI help shows npx @mozilla/firefox-mcp@latest (it used the deprecated unscoped name).

Compat package:

  • The publish job also publishes the same dist/ as @mozilla/firefox-devtools-mcp, so existing npx @mozilla/firefox-devtools-mcp@latest setups keep updating with no change. It has no mcpName (no Registry claim), and its README starts with a line pointing to @mozilla/firefox-mcp.
  • The staging logic of the moz publish script moves to scripts/_helpers/publish-staged.mjs, shared by both scripts.
  • The release tarball becomes firefox-mcp-.tar.gz.

Moz package:

  • Renamed to @mozilla/firefox-mcp-moz, with bin firefox-mcp-moz. No compat copy. mozilla-central follow-up: Bug 2087214.

Not in this PR: the Claude plugin manifests (Bug 2088365). Claude Code reads them from the main branch, so they land after @mozilla/firefox-mcp is on npm.

Before merging:

  • Rename the GitHub repo to mozilla/firefox-mcp. npm --provenance checks that repository.url matches the repo running the workflow.
  • First manual publish of @mozilla/firefox-mcp and @mozilla/firefox-mcp-moz (pre-release with the next tag), then configure their trusted publishers (mozilla / firefox-mcp / publish.yml) within 2 days of the release.

Set the package name, mcpName and server.json to firefox-mcp, and point
the repository links to mozilla/firefox-mcp. Add a firefox-mcp bin next
to firefox-devtools-mcp, so npx works for both published package names.
Fix the CLI help name, which still used the deprecated unscoped package.
Publish the same dist/ build under the old package name, so that existing
npx @mozilla/firefox-devtools-mcp@latest setups keep updating. The compat
package has no mcpName, so it makes no MCP Registry claim, and its README
points to @mozilla/firefox-mcp. Move the staging logic of the moz publish
script to a shared helper. Rename the release tarball to firefox-mcp.
Rename the moz package and its bin to firefox-mcp-moz. The old moz name is
not published anymore. Also rename the temporary staging folders of the
moz and mcpb scripts.
…fox-mcp

Use @mozilla/firefox-mcp@latest in the README examples and in the Gemini
extension, which installs from GitHub releases and so must change with the
release. Use "Firefox MCP" as the .mcpb display name, rename the bundle to
firefox-mcp-<version>.mcpb, and point both manifests to the
mozilla/firefox-mcp repository. Rename the setup script title.
Rename the project to Firefox MCP in the README, CONTRIBUTING, the Claude
plugin docs, the skill and agent texts, and the user-facing strings of the
server. Point the badges and links to mozilla/firefox-mcp and
@mozilla/firefox-mcp, and add one README line about the compat package.
Keep the plugin ID, the slash commands, the server key and the Matrix room.
… Gemini extension

New setups get tool names like mcp__firefox__navigate_page instead of
mcp__firefox-devtools__navigate_page. Existing manual configs keep their
own key. The Gemini extension installs from GitHub releases, so its key
changes with the release. Gemini users get the new tool names on their
next extension update. The setup script writes the new key too.
…efox-mcp

Gemini CLI updates a renamed extension in place on the next
"gemini extensions update": it moves the install folder to the new name
and keeps the enabled state and settings. Claude Desktop users install
each .mcpb by hand, as for every release.
The main package only ships the firefox-mcp bin, and the compat package
only ships firefox-devtools-mcp. With the same two bins in both, a global
install of one package failed with EEXIST when the other was already
installed. npx runs a package's only bin whatever its name, so both
"npx @mozilla/firefox-mcp" and "npx @mozilla/firefox-devtools-mcp" still
work.
The publish job pushes three packages in a row. If one step failed, for
example the compat package on a trusted publisher error, a rerun failed
right away on the main package, whose version was already out. Each step
now skips a version that is already on npm, so a rerun with the release
tag finishes the publish with provenance and then registers the version.
@juliandescottes
juliandescottes marked this pull request as ready for review November 4, 2026 12:56
@juliandescottes

Copy link
Copy Markdown
Collaborator Author

This can be reviewed, but I will only merge it once I'm ready to release & rename everything

@juliandescottes
juliandescottes requested a review from hbenl November 4, 2026 12:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants