angular/angular-cli · error

Unsupported '${strings.classify(selectedTool)}' MCP server c

Error message

Unsupported '${strings.classify(selectedTool)}' MCP server configuraiton.

What it means

The `ai-config` schematic generates MCP server configuration for a set of supported tools (e.g. Gemini CLI, OpenAI Codex, VS Code). If the selected tool is not one of the handled cases in the switch, the schematic throws with the classified tool name in the message. (Note: the message contains a typo, "configuraiton".)

Source

Thrown at packages/schematics/angular/ai-config/index.ts:102

            fileInfo,
            tool: selectedTool,
          };

          switch (fileInfo.type) {
            case ContextFileType.BestPracticesMd:
              return addBestPracticesMarkdown(fileCfgOpts);
            case ContextFileType.McpConfig:
              switch (selectedTool) {
                case Tool.ClaudeCode:
                case Tool.Cursor:
                case Tool.GeminiCli:
                  return addJsonMcpConfig(fileCfgOpts, 'mcpServers');
                case Tool.OpenAiCodex:
                  return addTomlMcpConfig(fileCfgOpts);
                case Tool.Vscode:
                  return addJsonMcpConfig(fileCfgOpts, 'servers');
                default:
                  throw new Error(
                    `Unsupported '${strings.classify(selectedTool)}' MCP server configuraiton.`,
                  );
              }
          }
        }),
      );

    return chain(rules);
  };
}

View on GitHub (pinned to bb72145f9a)

Solutions

  1. Use one of the supported `--tool` values (check the schematic's schema/README, e.g. gemini-cli, openai-codex, vscode)
  2. Fix the spelling/casing of the tool option
  3. Upgrade @angular/cli and @schematics/angular together so the Tool enum and schematic handling match
  4. If you need a new tool, add a case in the switch calling an appropriate addJsonMcpConfig/addTomlMcpConfig variant

Example fix

// before
ng add @angular/ai-config --tool=cursor
// after
ng add @angular/ai-config --tool=vscode
Defensive patterns

Strategy: validation

Validate before calling

const SUPPORTED_TOOLS = ['gemini-cli', 'openai-codex', 'vscode'];
if (!SUPPORTED_TOOLS.includes(options.tool)) {
  throw new Error(`Unsupported tool: ${options.tool}. Use one of: ${SUPPORTED_TOOLS.join(', ')}`);
}

Try / catch

try {
  await generateSchematic('ai-config', { tool: selectedTool });
} catch (e) {
  if (e.message.includes('MCP server configuraiton')) {
    console.error(`Tool "${selectedTool}" unsupported; choose a supported --tool value`);
  } else throw e;
}

Prevention

When it happens

Trigger: Running the ai-config schematic with a `tool` option value that reaches the MCP-config switch's `default` branch — i.e. a tool enum value that has no dedicated config-file writer (json mcpServers / toml / vscode servers).

Common situations: Passing an unsupported or misspelled tool name (e.g. `--tool=cursor`) when the schematic only supports specific tools; using a newer/older CLI version where the Tool enum differs; scripting the schematic with an arbitrary string.

Related errors


AI-assisted analysis of angular/angular-cli@bb72145f9a (2026-08-30). Data as JSON: /api/errors/818e987db01eec78. Report an issue: GitHub.