affaan-m/ECC · error

mcp_servers.${name} differs from ECC recommendation (run wit

Error message

mcp_servers.${name} differs from ECC recommendation (run with --update-mcp to refresh)

What it means

Advisory message from merge-mcp-config: an existing mcp_servers.<name> section differs from what ECC recommends (different command/args/env). Without --update-mcp the script preserves the user's version; re-run with --update-mcp to overwrite it with the recommended spec.

Source

Thrown at scripts/codex/merge-mcp-config.js:302

    if (finalEntry) {
      if (updateMcp) {
        // --update-mcp: remove existing section (and legacy alias), will re-add below
        toRemoveLog.push(`mcp_servers.${resolvedLabel}`);
        raw = removeServerFromText(raw, resolvedLabel, existing);
        if (resolvedLabel !== name) {
          raw = removeServerFromText(raw, name, existing);
        }
        if (legacyName && hasCanonical) {
          toRemoveLog.push(`mcp_servers.${legacyName}`);
          raw = removeServerFromText(raw, legacyName, existing);
        }
        toAppend.push(spec.toml);
      } else {
        // Add-only mode: skip, but warn about drift
        if (legacyName && !hasCanonical) {
          warn(`mcp_servers.${legacyName} is a legacy name for ${name} (run with --update-mcp to migrate)`);
        } else if (configDiffers(finalEntry, spec.fields)) {
          warn(`mcp_servers.${name} differs from ECC recommendation (run with --update-mcp to refresh)`);
        } else {
          log(`  [ok] mcp_servers.${name}`);
        }
      }
    } else {
      log(`  [add] mcp_servers.${name}`);
      toAppend.push(spec.toml);
    }
  }

  const hasRemovals = toRemoveLog.length > 0;

  if (toAppend.length === 0 && !hasRemovals) {
    log('All ECC MCP servers already present. Nothing to do.');
    return;
  }

  const appendText = '\n' + toAppend.join('\n\n') + '\n';

View on GitHub (pinned to 06c5e118c4)

Solutions

  1. Re-run with --update-mcp to refresh the entry to the ECC-recommended configuration.
  2. Diff the entry against the recommendation to decide whether to keep the local override.
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at scripts/codex/merge-mcp-config.js:302 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of affaan-m/ECC@06c5e118c4 (2026-08-18). Data as JSON: /api/errors/c152ac89b226125a. Report an issue: GitHub.