fix(mcp): rename @webclaw/mcp bin to avoid npx PATH shadowing

The published bin was named `webclaw-mcp`, which npx shadows with any existing
`webclaw-mcp` on PATH (Homebrew/cargo/create-webclaw) — so `npx @webclaw/mcp`
silently ran a stale binary instead of the launcher, for exactly our existing
CLI users. Rename the bin to the unique `webclaw-mcp-launcher`; `npx
@webclaw/mcp` still resolves the single bin. Verified end-to-end: with a stale
webclaw-mcp on PATH, npx now runs the launcher and returns 14 tools.

- bin: webclaw-mcp -> webclaw-mcp-launcher; version 0.6.15 -> 0.6.16
- mark webclaw-mcp.mjs executable
- release.yml: version the launcher INDEPENDENTLY of the core release (a
  launcher-only fix must ship without a core bump) — publish the next patch
  above the current npm version and pin RELEASE_TAG to the release tag
- server.json: sync to 0.6.16

Published + deprecated 0.6.15 (bin collision); 0.6.16 is the first good release.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Valerio 2026-07-22 08:53:29 +02:00
parent feaeb30270
commit 248da0abc4
4 changed files with 13 additions and 12 deletions

View file

@ -209,15 +209,16 @@ jobs:
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
tag="${GITHUB_REF#refs/tags/}" # e.g. v0.6.16
ver="${tag#v}" # 0.6.16
# Lockstep versioning: @webclaw/mcp@X.Y.Z installs the webclaw vX.Y.Z
# release. Both the pinned binary tag and the npm version derive from
# the git tag, so no commit-back is needed and the published package
# always points at matching, already-uploaded release assets.
tag="${GITHUB_REF#refs/tags/}" # e.g. v0.6.17 (core release)
# Pin which prebuilt binary this launcher downloads to the just-released tag.
sed -i -E "/const RELEASE_TAG =/ s|\"v[0-9.]+\"|\"${tag}\"|" webclaw-mcp.mjs
npm version "$ver" --no-git-tag-version --allow-same-version
echo "publishing @webclaw/mcp@${ver} pinned to ${tag}:"
# The launcher is versioned INDEPENDENTLY of the core release (a
# launcher-only fix must be shippable without a core bump). Publish the
# next patch above whatever is currently on npm — no commit-back needed.
cur="$(npm view @webclaw/mcp version 2>/dev/null || echo 0.0.0)"
npm version "$cur" --no-git-tag-version --allow-same-version >/dev/null
npm version patch --no-git-tag-version >/dev/null
echo "publishing @webclaw/mcp@$(node -p "require('./package.json').version") pinned to ${tag}:"
grep -n "RELEASE_TAG =" webclaw-mcp.mjs
npm publish --access public

View file

@ -3,12 +3,12 @@
"name": "io.github.0xMassi/webclaw",
"title": "webclaw",
"description": "Turn any URL into clean markdown/JSON for AI agents. Self-hostable Firecrawl alternative.",
"version": "0.6.15",
"version": "0.6.16",
"packages": [
{
"registryType": "npm",
"identifier": "@webclaw/mcp",
"version": "0.6.15",
"version": "0.6.16",
"transport": {
"type": "stdio"
}

View file

@ -1,10 +1,10 @@
{
"name": "@webclaw/mcp",
"version": "0.6.15",
"version": "0.6.16",
"description": "Zero-install launcher for the webclaw MCP server: web extraction and anti-bot access for AI agents. Runs `npx @webclaw/mcp`.",
"type": "module",
"bin": {
"webclaw-mcp": "./webclaw-mcp.mjs"
"webclaw-mcp-launcher": "./webclaw-mcp.mjs"
},
"mcpName": "io.github.0xMassi/webclaw",
"files": [

0
packages/webclaw-mcp/webclaw-mcp.mjs Normal file → Executable file
View file