Claude plugin .mcp.json declarations are ignored at runtime
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 70/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- node.js, typescript
Direzione di ricerca
Il problema si trova nella funzione di scoperta a runtime discoverStepMcpServers(). Esamina il codice del caricatore di plugin che normalizza .mcp.json in una dichiarazione di stringa. La correzione implica la modifica della logica di scoperta per gestire le dichiarazioni di stringa (percorsi di file) e analizzare il file .mcp.json referenziato. Controlla i test esistenti per le diagnostiche dei plugin e la scoperta a runtime per comprendere il comportamento atteso e aggiungi un test di regressione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What happened?
Claude-style plugins with a root .mcp.json are recognized and installed by Step, but their MCP servers are not discovered after restart.
The plugin loader normalizes a Claude plugin with .mcp.json to mcpServers: ".mcp.json", and the diagnostics path accepts that file-backed declaration. The runtime path in discoverStepMcpServers() currently skips string declarations entirely:
if (!declared || typeof declared === "string") continue;
So the plugin appears under /plugin as installed, but its MCP server never starts. An otherwise equivalent plugin with inline mcpServers starts normally.
Steps to reproduce
- Create a Claude-style plugin with
.claude-plugin/plugin.json. - Add a root
.mcp.jsoncontaining a stdio MCP server, for example a tiny Node process that writes a marker file when it starts. - Add the plugin through a local marketplace and install it with
/plugin install. - Restart Step.
- The plugin is still listed as installed, but the marker from the
.mcp.jsonserver is never created.
As a control, moving the same server declaration inline into plugin.json -> mcpServers creates the marker after the same restart.
I have a local fix that resolves inline and file-backed declarations through one parser and added regression coverage for runtime discovery and plugin diagnostics. The focused tests pass, pnpm run check passes, and pnpm run build:offline passes. Happy to submit the fix if this direction looks good.
Expected behavior
A Claude-style plugin's root .mcp.json should be discovered and started after restart the same way as inline mcpServers.
Version
StepCode 0.1.0, main @ cb5fc1456d49d49c62e072bfed2926220083214e
AI-assisted wording; the repro, code path, fix, and tests were verified locally.
- Lingua principale
- TypeScript
- Stelle
- 54
- Fork
- 20
- Merge medio
- 23m
- PR unite (30g)
- 7
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di stepfun-ai/Step-Code
-
untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
stepfun-ai/Step-Code#153 · 2 commenti ·
-
untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
stepfun-ai/Step-Code#151 · 1 commento ·
-
untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
stepfun-ai/Step-Code#149 · 1 commento ·
-
untriaged
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
stepfun-ai/Step-Code#144 · 1 commento ·
-
untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
stepfun-ai/Step-Code#141 · 1 commento ·
Tutte le issue di stepfun-ai/Step-Code
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
vercel-labs/just-bash#464 ·
-
looksLikeSlug() is ASCII-only, so non-Latin entity slugs (e.g. Korean) skip exact match and collapse Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
TanStack/tanstack.com#1293 ·