feat(vscode): revamp 15 MCP extensions around hosted HTTP endpoint#356
Merged
Conversation
Every '<service>/vscode/' extension was a clone-template that: - Lied about prompting for an API token (it didn't — env was empty, giving silent 401s on first call) - Never mentioned the hosted streamable-HTTP endpoint at https://<alias>.mcp.acedata.cloud/mcp, even though that's the recommended zero-install path - Hid a hard 'uvx' dependency behind 'Zero-install setup' - Had no per-service tool list / examples / pricing info This rewrite, driven by 'scripts/build_vscode_extensions.py' + 'scripts/vscode_extensions.yaml': - Switches the contributed MCP server to type: http pointing at the hosted endpoint, with Authorization sourced from a 'contributes.inputs' promptString (password) — so VS Code prompts for the token instead of silently 401-ing - Imports the tool reference table from each service's main README - Adds per-service example prompts, model list, pricing blurb, and links to PyPI / GitHub / platform sign-up - Documents the local stdio (uvx <pkg>) and OAuth-via-DCR alternatives as copy-paste mcp.json snippets - Bumps version 0.1.0 → 0.2.0, adds galleryBanner, normalises .vscodeignore 15 services covered: suno, midjourney, flux, seedream, nanobanana, luma, sora, veo, kling, hailuo, wan, seedance, producer, serp, shorturl. Out of scope for this PR: shared/duplicate icon.png (needs design assets) and adding extensions for aichat/openai.
Germey
approved these changes
May 31, 2026
This was referenced May 31, 2026
acedatacloud-dev
added a commit
that referenced
this pull request
May 31, 2026
face and fish were the only two MCP services whose VS Code extensions were still hand-written and shipping with the old `uvx <pkg>` stdio launch config — they never got the hosted-HTTP-first UX from #356. Add them to `scripts/vscode_extensions.yaml`: - face: pinned to existing IDs (`mcp-face-transform` on PyPI/Marketplace) via `pypi_override` and `ext_name`. Currently Alpha. - fish: defaults work (`mcp-fish` already matches `mcp-<alias>`). Regenerate `face/vscode/{package.json,README.md,.vscodeignore}` and `fish/vscode/{package.json,README.md,.vscodeignore}` from the codegen. Each now points to its hosted streamable-HTTP endpoint at `https://<alias>.mcp.acedata.cloud/mcp` with a Bearer token prompt input — no local Python install required. Also normalize the main READMEs' tool tables to `## Tool Reference` with `| Tool | Description |` columns so the codegen can parse them (was `## Available Tools` with `Tool|Endpoint|Purpose` on face, `## Available Tools` heading on fish). Marketplace IDs are unchanged so existing installs / ratings carry over: `acedatacloud.mcp-face-transform` and `acedatacloud.mcp-fish".
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Every
<service>/vscode/extension in the MCPs monorepo was using the same broken clone-template. Three concrete user-visible issues:env: { ACEDATACLOUD_API_TOKEN: "" }and noinputsblock, so VS Code never asked. First call → silent 401 → 1-star review.https://suno.mcp.acedata.cloud/mcp+ Claude.ai OAuth, butsuno/vscode/README.mdonly knew aboutuvx mcp-suno.uvxitself requiresuvto be installed.Plus duplicate-clone READMEs across 15 services with zero per-service tool list, examples, or pricing info.
What's in this PR
A small codegen tool —
scripts/build_vscode_extensions.py+scripts/vscode_extensions.yaml— and the 45 files (15 × 3) it regenerated:<service>/vscode/package.jsontype: "http"pointing athttps://<alias>.mcp.acedata.cloud/mcpheaders.Authorization: "Bearer ${input:acedatacloud_api_token}"references acontributes.inputspromptString(password = true), so VS Code shows a secure prompt on first use and stores the token in the OS secret store0.1.0→0.2.0, addsgalleryBanner, per-service keywords/categories<service>/vscode/README.mduvx <pypi-pkg>, and OAuth 2.1 via DCR<service>/vscode/.vscodeignore— standardised15 services covered:
suno,midjourney,flux,seedream,nanobanana,luma,sora,veo,kling,hailuo,wan,seedance,producer,serp,shorturl.Why a codegen script instead of 15 hand edits
So the next person editing the marketplace listing for one MCP doesn't accidentally let it drift from the other 14, and so adding a new MCP is a one-line YAML entry. Tool counts and descriptions are parsed straight out of each main
README.md's "## Tool Reference" table, so updates to upstream READMEs propagate.Sanity checks
python3 -c "import json; json.load(open('<svc>/vscode/package.json'))"— all 15 validTool counts per service:
Out of scope (follow-ups)
icon.pngacross flux/kling/producer/wan (md5f3551b1e…) and hailuo/luma (md52d8f5e5e…) — needs design assets.aichatandopenai— these are the highest-traffic services and have novscode/folder. Worth a separate PR.Test
Locally:
Marketplace install: install the published
acedatacloud.mcp-suno0.2.0, open Copilot Chat, ask "generate a lofi track about late-night coding, use suno" → VS Code prompts for the API token → first call to the hosted endpoint succeeds.