BOLLETTINO OPERATIVO · DOM 17 MAG 2026 · 13:07 CET EN / IT / RSS / NEWSLETTER

MCP in Claude Code: collegare l’assistente a tool esterni

Model Context Protocol è lo standard aperto di Anthropic per dare a Claude Code accesso a DB, API e filesystem. Come funziona e come configurarlo.

Model Context Protocol (MCP) è il protocollo aperto con cui Anthropic ha standardizzato, a novembre 2024, il modo in cui un LLM accede a tool e dati esterni. Claude Code lo supporta nativamente: invece di scrivere ogni volta un’integrazione ad hoc per filesystem, database o API, si collega un server MCP e l’assistente acquisisce nuove capacità. In questo articolo vediamo come funziona, quali server esistono già pronti e come aggiungerne uno alla propria configurazione.

Cos’è MCP in una riga

MCP è un protocollo client-server basato su JSON-RPC che permette a un modello di chiamare tool, leggere risorse e usare prompt definiti da un processo esterno. Il client (Claude Code, Claude Desktop, un IDE) parla con uno o più server MCP via stdio locale o HTTP remoto. Il modello non esegue nulla da solo: vede un elenco di tool disponibili e decide se invocarli.

Perché serve un protocollo

Prima di MCP, ogni integrazione era custom: plugin ChatGPT, function calling proprietario, agent framework con API diverse. Risultato: lo stesso connettore a Postgres andava riscritto per ogni assistente. MCP disaccoppia i due lati. Il server espone capacità in modo neutro, il client le consuma. È la ragione per cui OpenAI e Google hanno annunciato supporto MCP nel 2025: conviene a tutti convergere su un’interfaccia sola.

Cosa espone un server MCP

  • Tool: azioni che il modello può invocare (es. query_database, create_issue). Hanno input schema JSON e producono output strutturato.
  • Resources: contenuti read-only che il modello può leggere come contesto (file, record, documentazione). Identificati da URI.
  • Prompts: template riutilizzabili che il server offre al client, utili per workflow ricorrenti.

I server ufficiali Anthropic

Anthropic mantiene un set di reference server nel repository modelcontextprotocol/servers. Quelli più usati:

  • filesystem: lettura e scrittura file in directory autorizzate.
  • git: operazioni su repository locali (log, diff, blame).
  • postgres e sqlite: query su database con schema introspection.
  • google-drive: ricerca e lettura documenti Drive.
  • slack: lettura canali, invio messaggi.
  • memory: knowledge graph persistente fra sessioni.
  • sequential-thinking: tool di ragionamento strutturato a step.

La community ha poi pubblicato server per AWS, GitHub, Linear, Jira, Sentry, Notion, Cloudflare, Stripe e decine di altri servizi. La lista aggiornata sta su modelcontextprotocol.io.

Aggiungere un server con claude mcp add

Il modo più rapido è il comando CLI. Esempio per registrare il server filesystem con accesso a una cartella di progetti:

claude mcp add filesystem \
  --command npx \
  --args "-y" "@modelcontextprotocol/server-filesystem" "/Users/me/projects"

Per un server Postgres che legge un DB aziendale in sola lettura:

claude mcp add postgres-readonly \
  --command npx \
  --args "-y" "@modelcontextprotocol/server-postgres" "postgresql://readonly:pwd@db.internal:5432/analytics"

Dopo l’aggiunta, claude mcp list mostra i server configurati e claude mcp get <nome> il dettaglio. Dentro Claude Code i tool del server diventano disponibili al modello al prossimo avvio della sessione.

Configurazione manuale in ~/.claude.json

Chi preferisce versionare la config può editare direttamente il file. Ecco un esempio con tre server:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/projects"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx"
      }
    },
    "sqlite": {
      "command": "uvx",
      "args": ["mcp-server-sqlite", "--db-path", "/data/app.db"]
    }
  }
}

La stessa struttura funziona in Claude Desktop e in Claude Code, sia CLI che nelle estensioni IDE. È il punto di forza: una config sola, più client.

Esempio pratico: query su un DB aziendale

Immagina di dover rispondere a domande di business su dati Postgres senza passare dal DBA ogni volta. Configurato il server postgres con credenziali read-only, in chat basta chiedere “quanti ordini sopra 500 euro negli ultimi 30 giorni”. Claude Code introspettiva lo schema tramite i tool MCP, genera la query, la esegue, mostra il risultato. Nessuna UI custom, nessun notebook dedicato.

Rischi e guardrail

  • Permessi ampi: un server filesystem con accesso a / è un rischio enorme. Restringere sempre alle directory necessarie.
  • Prompt injection via risorse: contenuti letti da un server MCP (email, ticket, pagine web) possono contenere istruzioni ostili. Trattare l’output come input non fidato.
  • Credenziali: le env dei server MCP stanno nel file di config. Proteggere ~/.claude.json e non versionarlo con secret dentro.
  • Tool esplosi: oltre una certa soglia di tool nello stesso server, il modello si confonde. Meglio più server specializzati che un mega-server.

Dove si incastra nel workflow

MCP è complementare ad altre estensioni di Claude Code: le https://www.smartworkers.cloud/?p=3423 sono capacità dichiarative che il modello carica on-demand, mentre MCP è un ponte verso sistemi esterni vivi. Per chi vuole invece pilotare Claude Code da remoto invece di estenderlo, il discorso cambia completamente, vedi https://www.smartworkers.cloud/?p=3433.

La domanda interessante non è più “come faccio a dare al modello accesso a X”. Con MCP è: quale catalogo di server tenere sempre attivo, e quali montare solo nei progetti dove servono?