cd /news/ai-agents/angular-cli-mcp-server-setup-vs-code… Β· home β€Ί topics β€Ί ai-agents β€Ί article
[ARTICLE Β· art-138986] src=dev.to β†— pub= topic=ai-agents verified=true sentiment=↑ positive

Angular CLI MCP Server Setup: VS Code & Copilot CLI Guide

The Angular team has added Model Context Protocol (MCP) support to the Angular CLI via the `@angular/cli mcp` command, letting AI coding assistants query live workspace schemas and current angular.dev documentation instead of relying on stale training data. The server exposes tools including `list_projects`, which reads angular.json for project structure, `search_documentation`, which fetches current Angular docs, and `get_best_practices`, which enforces official style guidance. Setup instructions cover both VS Code (via `.vscode/mcp.json`) and the standalone GitHub Copilot CLI.

by read4 min views1 publishedSep 24, 2026

AI coding assistants are brilliant until they confidently hallucinate an API from three versions ago or guess your project setup completely wrong. For Angular developers, the pain is familiar: asking an LLM to generate a component and watching it hand back legacy *ngIf, *ngFor, or module declarations from Angular 14.

The core issue has always been twofold: stale training data and zero runtime awareness of your local workspace.

To bridge this gap, the Angular team rolled out support for the Model Context Protocol (MCP) via the Angular CLI (@angular/cli mcp). By wiring an MCP server directly into your AI workflow, your tools gain active eyes and handsβ€”querying real-time workspace schemas and fetching up-to-date documentation straight from angular.dev.

Here is how to set up the Angular CLI MCP server across both VS Code and the standalone GitHub Copilot CLI.

Previously, developers used custom system prompts or static markdown "rules" to teach AI how to write modern Angular code. MCP makes that obsolete. Instead of reading a static text file, your AI now dynamically queries active tools:

list_projects: Automatically reads your angular.json so the AI knows your workspace structure, source roots, and application targets.

search_documentation: Scans the live angular.dev documentation site in real-time, ensuring the AI suggests modern syntax (like @if, @for, and @defer control flows) instead of legacy directives.

get_best_practices: Enforces official style guidelines and modern signals out of the box.

Plaintext

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                            DEVELOPER / IDE                                  β”‚
β”‚  "Add a user feed component with signals and zoneless change detection"    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                       β”‚
                                       β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      AI AGENT (VS Code / Copilot CLI)                       β”‚
β”‚  Recognizes intent βž” Queries Angular MCP tools instead of guessing         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                        β”‚                               β”‚
       TOOL: list_projects & workspace                  β”‚ TOOL: search_documentation &
       configuration                                    β”‚       get_best_practices
                        β–Ό                               β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚     LOCAL WORKSPACE CONTEXT          β”‚  β”‚     LIVE ANGULAR.DEV DOCS         β”‚
β”‚ β€’ Reads angular.json                 β”‚  β”‚ β€’ Current Signals & Effects API  β”‚
β”‚ β€’ Identifies project roots & targets β”‚  β”‚ β€’ Modern built-in Control Flow    β”‚
β”‚ β€’ Respects existing tsconfig/rules   β”‚  β”‚ β€’ Zoneless & OnPush patterns      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                        β”‚                               β”‚
                        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                        β”‚
                                        β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                              THE DEVELOPER GAIN                             β”‚
β”‚  βœ” Zero Hallucinations: No deprecated `*ngIf`, `*ngFor`, or NgModules       β”‚
β”‚  βœ” Tailored Output: Code paths & imports match your exact repo structure     β”‚
β”‚  βœ” Zero Manual Prompts: No need to maintain static rulebooks or system docs β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

If you already use MCP servers (like the ESLint tool), you can easily append the Angular server alongside your existing ones.

Open your Angular project in VS Code.

In your project root, open or create .vscode/mcp.json.

Add the angular-cli entry to your servers object:

JSON

{
  "servers": {
    "ESLint": {
      "type": "stdio",
      "command": "npx",
      "args": ["@eslint/mcp@latest"]
    },
    "angular-cli": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@angular/cli", "mcp"]
    }
  }
}

stdio? The stdio (Standard Input/Output) transport tells VS Code to spawn the server process entirely on your local machine. Your code and workspace configuration never leave your computer for the cloud; communication happens locally and securely.

Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows/Linux) and run:

MCP: Restart All Servers

If you use the interactive terminal wrapper for GitHub Copilot, you can connect the MCP server directly to the CLI's central environment.

Bash

copilot-cli chat
/mcp add

Name: angular-cli

Type: 1. STDIO

Command: npx

Arguments: -y @angular/cli mcp

Environment Variables: (Leave blank / press Enter)

Tools: *

Defer Tools: 1. Auto

Note on Command vs. Arguments: Keep npx strictly in the Command field, and put -y @angular/cli mcp in the Arguments field. Combining them into the command field will trigger a process spawn failure.

MCP servers sit in an idle state until you ask a question that triggers their tools.

To verify everything is working, check the status inside your Copilot CLI session:

/mcp show

Select angular-cli to inspect your registered tools.

Now, enter a targeted prompt to test live workspace retrieval:

"Use the angular-cli MCP server's list_projects tool right now to show me the applications configured in this directory."

The model will invoke the tool, inspect your local angular.json, and return your exact app structure:

Projects in the Angular workspace:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Name                  β”‚ Type        β”‚ Root                β”‚ Source Root β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ storefront-app        β”‚ application β”‚ "" (workspace root) β”‚ src         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Feature Mode

MCP Role

Practical Benefit

Interactive Chat / Inline Edit (Cmd/Ctrl + I)

Active Reasoning Agent

Inspects local configuration, queries current framework standards, and writes compliant modern syntax.

Inline Autocomplete (Ghost Text)

Passive Context Mirror

Operates at ultra-low latency, naturally mirroring the modern patterns generated by your chat sessions.

Now that your local bridge is live in VS Code and the GitHub Copilot CLI, dive deeper into the official documentation and team announcements:

Angular.dev AI & MCP Documentation: The official reference page detailing every tool exposed by the CLI server (devserver.start, onpush_zoneless_migration, ai_tutor, and --read-only modes).

Angular Official Blog β€” "Beyond the Horizon: Embracing AI for Next-Gen Apps": The core team's breakdown of why they integrated MCP directly into @angular/cli.

Announcing Angular v21: Overview of stabilized AI tooling and modernization schematics in current Angular releases.

── more in #ai-agents 4 stories Β· sorted by recency
── more on @angular 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/angular-cli-mcp-serv…] indexed:0 read:4min 2026-09-24 Β· β€”