From 52d669071f20a6ccb774bfad40cf6d3f0b355823 Mon Sep 17 00:00:00 2001 From: Ace Data Cloud Dev Date: Mon, 1 Jun 2026 02:26:42 +0800 Subject: [PATCH] fix(vscode): use mcp- as marketplace extension id MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The codegen was using the PyPI package name as the VS Code extension `name`. For flux/nanobanana/seedream the PyPI name is `mcp--pro` (because `mcp-` was taken on PyPI), but the marketplace extension ids we already own are plain `mcp-`. Reusing the PyPI `-pro` suffix caused vsce publish to try a new id and fail with "This extension display name is taken" — keeping these three stuck on old versions while the other 12 auto-published successfully. Decouple the two namespaces: add a dedicated `ext_name` on Service defaulting to `mcp-` (overridable via `ext_name` in vscode_extensions.yaml). Regenerated package.json for flux, nanobanana, seedream — diff is the `name` field only. --- flux/vscode/package.json | 2 +- nanobanana/vscode/package.json | 2 +- scripts/build_vscode_extensions.py | 8 +++++++- seedream/vscode/package.json | 2 +- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/flux/vscode/package.json b/flux/vscode/package.json index ebd250d..d0af8a3 100644 --- a/flux/vscode/package.json +++ b/flux/vscode/package.json @@ -1,5 +1,5 @@ { - "name": "mcp-flux-pro", + "name": "mcp-flux", "displayName": "Flux MCP", "description": "Flux image generation by Black Forest Labs — dev, pro, ultra, and kontext editing.", "version": "0.2.0", diff --git a/nanobanana/vscode/package.json b/nanobanana/vscode/package.json index 4f5cbb8..358405b 100644 --- a/nanobanana/vscode/package.json +++ b/nanobanana/vscode/package.json @@ -1,5 +1,5 @@ { - "name": "mcp-nanobanana-pro", + "name": "mcp-nanobanana", "displayName": "NanoBanana MCP", "description": "Gemini-powered NanoBanana — generate and edit images via natural language.", "version": "0.2.0", diff --git a/scripts/build_vscode_extensions.py b/scripts/build_vscode_extensions.py index 11e1f39..ad9fca5 100644 --- a/scripts/build_vscode_extensions.py +++ b/scripts/build_vscode_extensions.py @@ -45,6 +45,7 @@ class Service: pricing_note: str domain: str pypi_pkg: str + ext_name: str publisher: str signup_url: str docs_url: str @@ -94,6 +95,10 @@ def load_services() -> list[Service]: with pyproject.open("rb") as fh: pkg_data = tomllib.load(fh) pypi_pkg = pkg_data["project"]["name"] + # VS Code extension id namespace is independent of PyPI. Default to + # `mcp-` to match the marketplace IDs we already own; allow an + # explicit override for future services whose alias diverges. + ext_name = cfg.get("ext_name") or f"mcp-{alias}" services.append( Service( alias=alias, @@ -107,6 +112,7 @@ def load_services() -> list[Service]: pricing_note=cfg.get("pricing_note", "").strip(), domain=cfg.get("domain", "general"), pypi_pkg=pypi_pkg, + ext_name=ext_name, publisher=defaults["publisher"], signup_url=defaults["signup_url"], docs_url=defaults["docs_url"], @@ -143,7 +149,7 @@ def extract_tools(main_readme: Path) -> list[tuple[str, str]]: def render_package_json(svc: Service) -> str: pkg: dict[str, object] = { - "name": svc.pypi_pkg, + "name": svc.ext_name, "displayName": svc.display_name, "description": svc.tagline, "version": "0.2.0", diff --git a/seedream/vscode/package.json b/seedream/vscode/package.json index f44cd11..fc1a27c 100644 --- a/seedream/vscode/package.json +++ b/seedream/vscode/package.json @@ -1,5 +1,5 @@ { - "name": "mcp-seedream-pro", + "name": "mcp-seedream", "displayName": "Seedream MCP", "description": "Seedream by ByteDance — text-to-image and SeedEdit instruction-based editing.", "version": "0.2.0",