`resolveDiscoveredConfig` does not read workspace `.mcp.json` — `includeWorkspaceSources` never set

Ouverte Adaptée aux débutants
#3,126 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
72/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Calme
Stack technique
javascript
Domaine
cli

Piste de recherche

Commencez par resolveDiscoveredConfig() et suivez son appel à jv(), en utilisant la reproduction fournie de workingDirectory et de workspace .mcp.json. Vérifiez que la découverte de la configuration inclut les sources du workspace, puis réexécutez le scénario de session du SDK et confirmez que le time MCP server est chargé depuis .mcp.json.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

area:configuration area:mcp

Summary

When the SDK creates a session with enableConfigDiscovery: true and a workingDirectory, the CLI's resolveDiscoveredConfig() calls the internal MCP config loader (jv()) without passing includeWorkspaceSources: true. That parameter defaults to false, so the workspace .mcp.json is never read — even though the intent of enableConfigDiscovery is clearly to discover it.

Version

@github/copilot v1.0.41-0 (commit 3f18c2c)

Steps to reproduce

  1. Place a valid .mcp.json in a working directory:
    {
      "mcpServers": {
        "time": {
          "command": "uvx",
          "args": ["mcp-server-time"]
        }
      }
    }
    
  2. Create a session via the SDK with enableConfigDiscovery: true and workingDirectory pointing to that directory.
  3. Observe that no MCP servers from .mcp.json are discovered.

Expected behaviour

The MCP servers defined in the workspace .mcp.json should be discovered and loaded into the session.

Actual behaviour

The CLI logs:

Loaded MCP config from installed plugins: 0 server(s):
No MCP config loaded from ODR (ODR unavailable or returned no usable servers)

No workspace .mcp.json is read. The flag triggers config resolution, but the resolution skips the workspace source.

Root cause

In resolveDiscoveredConfig(), the call to jv() omits includeWorkspaceSources:

async resolveDiscoveredConfig(e) {
  if (!e.enableConfigDiscovery) return {};
  let r = e.workingDirectory || process.cwd();
  // ...
  let c = await jv({
    cwd: r,
    repoRoot: l,
    settings: this.options.settings,
    installedPlugins: s
    // ← missing: includeWorkspaceSources: true
  });
}

Inside jv(), the parameter defaults to false. When false, the function skips the code path that reads .mcp.json from the working directory:

async function jv(t = {}) {
  let { includeWorkspaceSources: s = false } = t;
  // ...
  if (!s) d = { ...c };        // ← only copies global config
  else {
    // reads .mcp.json from cwd/repoRoot — this path is never taken
  }
}

Suggested fix

Pass includeWorkspaceSources: true in the jv() call within resolveDiscoveredConfig():

let c = await jv({
  cwd: r,
  repoRoot: l,
  settings: this.options.settings,
  installedPlugins: s,
  includeWorkspaceSources: true  // ← add this
});
Langage dominant
Shell
Étoiles
11.2k
Forks
1.9k
Merge moyen
14 h 16 min
PR mergées (30 j)
6

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de github/copilot-cli

Toutes les issues de github/copilot-cli

Issues similaires

Plus d'issues Shell/Bash

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.