Repository navigation
Description
Framework
All / Not framework-specific
Related CLI Command
ai-config
Feature Area
Performance
Problem Statement
ig ai-config writes the docs server as npx -y igniteui-cli mcp (IGNITEUI_MCP_SERVERS in packages/core/util/mcp-config.ts), and the CLI README documents the same. This is the slowest way to start the server:
- npx installs the whole CLI to run the server: 187 packages, about 140 MB in the npx cache (TypeScript, the Angular templates, inquirer, yargs, ...).
npx -y @igniteui/mcp-serverneeds 98 packages and about 82 MB. ig mcp(packages/cli/lib/commands/mcp.ts) loads the CLI and then spawnsnode dist/index.jsas a child process. The CLI process stays alive as the parent for the whole session.
Time from spawn to the initialize response, measured with a small stdio client on Windows 11, Node 24.18.0 and npm 11. "Cold" means an empty npm cache and no global install:
| Command | Cold | Warm |
|---|---|---|
npx -y igniteui-cli mcp |
19.4 s, 17.6 s | 2.5 to 3.4 s |
npx -y igniteui-cli mcp, two instances started together |
24.1 s and 41.4 s | 4.1 s and 4.3 s |
npx -y @igniteui/mcp-server |
8.9 s, 7.6 s | 1.7 to 2.7 s |
node .../igniteui-cli/bin/execute.js mcp |
n/a | 1.7 to 2.1 s |
node .../@igniteui/mcp-server/dist/index.js |
n/a | 0.7 to 1.0 s |
The MCP client I use gives a stdio server 30 s to answer initialize. Its logs on this machine for the Ignite UI docs and theming servers show 334 successful connections: 185 took under 10 s, 102 took 10 to 20 s, and 47 took longer than 20 s. In 33 other connection attempts the server did not answer within the 30 s timeout. Most of these were at times when two or three sessions started together. The 41.4 s case in the table is the same server registered twice in one client, so that two instances start together.
Other effects of the unpinned npx -y igniteui-cli entry:
- After each new igniteui-cli release, the next start reinstalls the package and is slow again.
- If igniteui-cli is installed globally, npx runs the global copy. Here that was 15.7.0, while 15.8.2 is current. The server reports
serverInfo.version1.0.0, so the client cannot see which version runs.
Memory per running instance on Windows: the npx process (node npx-cli.js) uses about 52 MB, the ig mcp parent about 53 MB, and the server itself about 72 MB.
The server exits cleanly when stdin closes. All processes of the chain are gone within about 1 s, so shutdown is not a problem.
Proposed Solution
- Have
ai-configwritenpx -y @igniteui/mcp-server, which the @igniteui/mcp-server README already documents. This halves the cold start and removes one Node process. - Alternatively, have
ig mcpimport and start the server in the same process instead of spawning a secondnode. - Document the cold-start cost. Suggest a pinned version (
@igniteui/mcp-server@<version>) or a global install for clients that have a connection timeout.
Alternatives Considered
Raising the client's connection timeout. This avoids the failures, but every session still waits for the start.
Additional Context
igniteui-cli and @igniteui/mcp-server 15.8.2 (and the 15.7.0 global install), Windows 11, Node 24.18.0, npm 11.
Activity
ivanvpetrov commentedon Nov 5, 2026
It will be fully closed with #1870