fix(vscode): switch all 15 extensions to real mcpServerDefinitionProviders API#359
Merged
Conversation
…iders API
The previous release shipped a manifest using `contributes.mcpServers` +
root-level `contributes.inputs` — neither of which are valid VS Code
contribution points. VS Code parsed the manifest, found nothing it
recognised, and silently registered nothing. Result: installing the
extension did literally nothing — no token prompt, no MCP server in
Configure Tools.
Verified against:
- src/vs/workbench/contrib/mcp/common/mcpConfiguration.ts in
microsoft/vscode (extensionPoint: 'mcpServerDefinitionProviders' is
the only one that exists).
- vscode.d.ts (`McpHttpServerDefinition`, `McpStdioServerDefinition`,
`McpServerDefinitionProvider`, `lm.registerMcpServerDefinitionProvider`).
- Upstash Context7 marketplace package (reference working extension).
This change:
- `package.json` now uses `contributes.mcpServerDefinitionProviders`
+ `activationEvents: []` + `main: ./extension.js` and contributes
two commands (Set / Clear API Token) under the MCP category.
- Adds a vanilla-JS `extension.js` per service that calls
`vscode.lm.registerMcpServerDefinitionProvider` and returns a
`McpHttpServerDefinition` pointing at the hosted endpoint. The
`resolveMcpServerDefinition` hook reads the token from (in order)
$ACEDATACLOUD_API_TOKEN, VS Code SecretStorage, or an interactive
showInputBox prompt — and injects it as a Bearer header.
- Bumps `engines.vscode` to ^1.101.0 (first stable release with the
API, also Context7's minimum).
- Bumps the in-repo `version` to 0.3.0; the marketplace will see
a fresh CalVer build on the next push to main.
- Rewrites the README "Configuration" section to describe the new
flow and demotes the manual mcp.json snippets to alternatives.
No publish-workflow changes required — `vsce package` happily picks
up the plain-JS `extension.js` from disk (verified locally: VSIX
ships with the right main + contribution point).
Codegen reflects all of the above; `python3 scripts/build_vscode_extensions.py`
remains the single source of truth for these 15 directories.
- Replace misleading sk- placeholder with neutral API key placeholder - Point users to /console/applications (Applications -> API Key) - Rename user-facing text from 'API token' to 'API key' in popup, command titles, error/info toasts, and README quick-start/config sections - Regenerate all 15 vscode extension bundles via codegen
Germey
approved these changes
May 31, 2026
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.
What
Replaces the broken VS Code extension manifest with a real, working one for
all 15 MCP marketplace extensions (
mcp-suno,mcp-midjourney, …,mcp-shorturl).Why this is needed
The release shipped via PR #356 / #358 used
contributes.mcpServersplus aroot-level
contributes.inputsblock. Neither is a valid VS Codecontribution point — VS Code parses the manifest, finds no recognised
contribution, and registers nothing.
User-visible symptom: install the extension → nothing happens. No token
prompt, no server in
Configure Tools, no entry in the MCP tools panel.Verified against:
src/vs/workbench/contrib/mcp/common/mcpConfiguration.tsinmicrosoft/vscode— the only MCP extension point ismcpServerDefinitionProviders.vscode.d.tsconfirmsvscode.McpHttpServerDefinition,vscode.McpStdioServerDefinition,vscode.lm.registerMcpServerDefinitionProvider, and aresolveMcpServerDefinitionhook for runtime auth.acedatacloud.mcp-suno@2026.531.0from the marketplace andconfirmed the manifest VS Code receives is byte-identical to our broken
one.
upstash.context7-mcpand confirmed it ships exactly theshape this PR adopts (just stdio instead of http).
How
For each
<service>/vscode/:package.json→contributes.mcpServerDefinitionProviders: [{id, label}]commands(Set / Clear API Token) +main: ./extension.js+engines.vscode: ^1.101.0(first stable release with the API; Context7uses the same).
extension.js— vanilla JS, no build step. Registers the providerand resolves the server with a Bearer token sourced from
$ACEDATACLOUD_API_TOKEN, then VS CodeSecretStorage, then aninteractive
showInputBoxprompt as last resort. Two commands let usersrotate or clear the stored token.
README.md"Configuration" section rewritten to describe the new flow;manual
mcp.jsonsnippets demoted to alternatives.real marketplace version on push to main.
scripts/build_vscode_extensions.pywas updated to be the single source oftruth — re-running it reproduces all 45 changed files byte-for-byte.
Verification
No publish-workflow changes needed:
vsce packageshipsextension.jsasplain JS, no compile step required.
Follow-up
Once this merges, the per-service
publish.ymljobs in each sub-repo willauto-publish a fresh CalVer build (
2026.<MMDD>.0) to the marketplace andfix the 15 broken extensions currently live.