cool-solution — dev.blog
Tecnologie

MCP server in VS Code: installazione e configurazione

Da qualche versione VS Code parla nativamente il Model Context Protocol: un MCP server in VS Code espone strumenti che l'agente può chiamare in chat — navigare una pagina, leggere un database, interrogare un'API. Ci sono due strade per aggiungerne uno: la vista Estensioni filtrata su @mcp e il file di configurazione .vscode/mcp.json. Le percorro entrambe con l'esempio di Playwright, poi passo a impostazioni, segreti e al pannello di output dove si fa debug.

La vista Estensioni di VS Code filtrata su @mcp, con la lista dei server MCP della galleria: Markitdown, Context7, Playwright, GitHub, Notion.

🔍 Cos'è un MCP server in VS Code

Il Model Context Protocol è uno standard aperto per collegare i modelli a strumenti esterni. Dentro VS Code un MCP server fornisce tool — azioni come operazioni su file, query, chiamate API — ma anche resource da allegare al contesto e prompt riutilizzabili. L'agente li scopre all'avvio del server e li rende disponibili in chat.

La configurazione vive in un file JSON con una sola chiave servers: ogni voce è un server, identificato da un nome e da come si avvia. Qui sotto l'esempio minimo che spieghiamo riga per riga nel resto dell'articolo — un solo server stdio avviato con npx.

mcp.json › il server minimo
{
  "servers": {
    "playwright": {
      "command": "npx",
      "args": ["-y", "@microsoft/mcp-server-playwright"]
    }
  }
}

Doc ufficiale · MCP server in VS Code

Una voce per server: nome, command e args. Questo è tutto il necessario.

⬇️ Installare da @mcp nella vista Estensioni

La via più rapida è la galleria MCP. Apri la vista Estensioni (⇧⌘X / Ctrl+Shift+X) e digita @mcp nel campo di ricerca: compare l'elenco dei server disponibili. Per trovarne uno preciso aggiungi il nome, ad esempio @mcp playwright.

Con Install il server finisce nel tuo profilo utente e vale in tutti i workspace; con un click destro e Install in Workspace viene scritto nel file .vscode/mcp.json del progetto, così lo condividi con il team. Alla prima partenza VS Code chiede di confermare che ti fidi del server prima di avviarlo.

  • ⇧⌘X (Ctrl+Shift+X) → vista Estensioni.
  • Cerca @mcp, oppure @mcp playwright per filtrare.
  • Install = profilo utente · Install in Workspace = .vscode/mcp.json.
La vista Estensioni filtrata su @mcp
La vista Estensioni di VS Code filtrata su @mcp con la lista dei server MCP della galleria: Markitdown, Context7, Chrome DevTools, Playwright, GitHub, Notion.

La galleria MCP: Playwright è in lista, pronto da installare con un click.

⚙️ L'altra via: scrivere .vscode/mcp.json a mano

Preferisci il controllo del file? Crea .vscode/mcp.json nel progetto e dichiara i server sotto la chiave servers. Un server stdio ha command e args; un server remoto ha type http e url. VS Code offre IntelliSense sullo schema e mette delle code lens sopra ogni server per avviarlo, riavviarlo o fermarlo.

Non vuoi scriverlo da zero? Il comando MCP: Add Server dalla Command Palette (⇧⌘P) ti guida e ti fa scegliere tra Workspace e Global. Per il file del profilo utente — quello valido ovunque — c'è MCP: Open User Configuration. La chiave è il file .vscode/mcp.json, non .vscode/settings.json: è un equivoco comune.

Il file .vscode/mcp.json con le code lens
.vscode/mcp.json1{2"servers": {▷ Start ⟳ Restart ■ Stop ⚙ 21 tools3"playwright": {4"command": "npx",5"args": ["-y", "@microsoft/mcp-server-playwright"]6},▷ Start ⟳ Restart ■ Stop ⚙ 8 tools7"github": {8"type": "http",9"url": "https://api.githubcopilot.com/mcp"10}11}12}playwright · running · stdiogithub · running · http

Playwright (stdio, via npx) e GitHub (http) nello stesso file; le code lens avviano e riavviano ogni server.

🔐 Impostazioni del server: segreti, sandbox, on/off

Molti server vogliono un token o una chiave. Non scriverli in chiaro nel file: usa gli input — VS Code li chiede e li conserva — oppure le variabili d'ambiente con env. Così il .vscode/mcp.json resta condivisibile senza segreti dentro.

Su macOS e Linux puoi confinare un server stdio con sandboxEnabled: gira isolato e accede solo ai percorsi e ai domini che permetti. Per accendere o spegnere un server senza toccare il file usa la sezione MCP SERVERS - INSTALLED delle Estensioni o MCP: List Servers: lo stato abilitato è salvato a parte dalla configurazione.

mcp.json › input, header e sandbox
{
  "inputs": [
    { "id": "gh-token", "type": "promptString", "password": true }
  ],
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp",
      "headers": { "Authorization": "Bearer ${input:gh-token}" }
    },
    "playwright": {
      "command": "npx",
      "args": ["-y", "@microsoft/mcp-server-playwright"],
      "sandboxEnabled": true
    }
  }
}

Doc ufficiale · MCP configuration

Il token arriva da un input protetto con ${input:...}; Playwright gira in sandbox.

💬 Usarlo in chat e scegliere i tool

Server avviato e fidato, i suoi tool sono in chat. Apri la Chat view (⌃⌘I / Ctrl+Alt+I) e scrivi un prompt che li usi. Con Playwright, ad esempio, chiedi di aprire una pagina e farne uno screenshot: VS Code invoca i tool del browser e ti chiede conferma a ogni azione.

Hai troppi tool attivi? Il pulsante Configure Tools nell'input della chat li elenca tutti e lascia accenderne o spegnerne. I prompt esposti dal server si richiamano con /nome-server.nome-prompt, e le resource si allegano da Add Context › MCP Resources.

Chat › un prompt che usa i tool di Playwright
Vai su code.visualstudio.com, rifiuta il banner dei
cookie e fammi uno screenshot della home.

Doc ufficiale · Strumenti in chat

VS Code chiede conferma prima di ogni invocazione di tool.

🐛 Debug: dove leggere l'output dell'MCP server

Quando un server non parte, VS Code mostra un indicatore d'errore nella Chat. Cliccalo e scegli Show Output: si apre il pannello Output sul canale del server, con il log riga per riga. In alternativa, MCP: List Servers dalla Command Palette, poi seleziona il server e scegli Show Output.

Nel log si leggono lo stato della connessione, quanti tool sono stati scoperti e l'eventuale errore. I classici: spawn npx ENOENT (Node o npx non nel PATH), un pacchetto in args sbagliato, o un segreto mancante. È il primo posto da guardare prima di toccare la configurazione.

Il log dell'MCP server nel pannello Output
PROBLEMSOUTPUTDEBUG CONSOLETERMINALPORTSMCP: playwright10:21:00.004[info]Starting server playwright10:21:01.114[info]Connection state: Starting10:21:02.224[info]Starting server from npx @microsoft/mcp-server-playwright10:21:03.334[info]Connection state: Running10:21:04.444[info]Discovered 21 tools10:21:05.554[warning]tool 'browser_install' requires confirmation10:21:06.664[error]spawn npx ENOENT → Node / npx not on PATH

Stato della connessione, tool scoperti e l'errore tipico: spawn npx ENOENT.

✅ Applicare e verificare

Il giro completo è corto: aggiungi il server (da @mcp o da .vscode/mcp.json), fidati al primo avvio, usalo in chat e, se qualcosa rompe, apri l'Output. Versiona il .vscode/mcp.json senza segreti: i token stanno negli input o nell'ambiente, lo stato on/off è già salvato a parte.

Se lavori in Dev Container o in remote, definisci i server dove devono girare: nel devcontainer.json sotto customizations.vscode.mcp, oppure nella configurazione utente remota. Così l'ambiente containerizzato ha gli stessi MCP senza copiare nulla a mano.

Dal server al debug, in quattro passi
  1. 01
    Aggiungi il serverDa @mcp nelle Estensioni o da .vscode/mcp.json.
  2. 02
    Fidati al primo avvioVS Code chiede conferma prima di partire.
  3. 03
    Usalo in chatConfigure Tools per scegliere quali tool attivare.
  4. 04
    Debug dall'OutputMCP: List Servers › Show Output per leggere i log.

Domande frequenti su MCP server in VS Code

Dove salva VS Code la configurazione degli MCP server?

In due posti: .vscode/mcp.json nel workspace (condivisibile nel repo) e il file del profilo utente, che apri con MCP: Open User Configuration e vale in tutti i workspace. Non è .vscode/settings.json.

Meglio installare da @mcp o scrivere mcp.json a mano?

@mcp nelle Estensioni è più veloce e gestito; .vscode/mcp.json dà controllo e si versiona col progetto. Spesso si parte da @mcp e si rifinisce il file a mano: fanno la stessa cosa.

Dove vedo i log quando un MCP server non parte?

Nell'indicatore d'errore della Chat → Show Output, oppure MCP: List Servers → server → Show Output. Lì leggi stato della connessione, tool scoperti e l'errore — tipo spawn npx ENOENT quando Node non è nel PATH.

Parliamone

Se questo tema ti riguarda, scrivimi: confrontarsi su codice e AI è sempre tempo speso bene.

Altri articoli del blog

tips-claude-resume-luglio-2026.md10 luglio 2026claude-code-hooks-quality-gate-2026.md9 luglio 2026orchestrazione-agenti-ai-multi-agent-dotnet-2026.md8 luglio 2026