16 · Ecosistema e fonti
Ripasso in tre righe delle tre cose che questo modulo insegna a trovare: le skill sono istruzioni confezionate (modulo 8), i server MCP collegano Claude a servizi esterni (modulo 9), i plugin impacchettano skill + agenti + server in un’unica installazione. Là hai imparato a costruirli; qui impari il mestiere complementare: trovarli fatti da altri, e decidere di quali fidarti. Perché installare l’estensione sbagliata non è come installare un’app scadente: è dare a qualcun altro le mani sul tuo progetto — e questo modulo è la cassetta degli attrezzi per non farlo mai alla cieca.
Obiettivi
Sezione intitolata “Obiettivi”- Sapere quale directory MCP consultare in base a cosa stai cercando.
- Distinguere la fonte di verità dalle directory che la indicizzano.
- Trovare skills e plugin di qualità, e capire chi li ha validati e quanto.
- Valutare un’estensione prima di installarla, con una checklist ripetibile.
- Percorrere il ciclo completo: cerco, valuto, installo, testo.
Concetti chiave
Sezione intitolata “Concetti chiave”Una sola fonte di verità, molte vetrine. “Fonte di verità” (source of truth) è il posto che fa fede quando le versioni della stessa informazione non coincidono. Per i server MCP quel posto è il Registry ufficiale (registry.modelcontextprotocol.io): il registro canonico del protocollo, con un’API pubblica. Tutte le altre directory — Glama, mcp.so, Smithery, PulseMCP, Docker — sono cataloghi che indicizzano, arricchiscono e a volte ospitano. Sono utilissime per scoprire, ma quando devi decidere qual è davvero il server ufficiale di un vendor, la risposta sta nel registry o sul sito del vendor.
Nessuno fa un audit di sicurezza dei server MCP. La documentazione è esplicita: Anthropic revisiona i connettori contro i propri criteri di listing prima di aggiungerli all’Anthropic Directory, ma non esegue audit di sicurezza né gestisce alcun server MCP. Le “stelle” su GitHub — il pollice in su con cui gli utenti segnano i progetti che apprezzano — misurano la popolarità, non la sicurezza. E il badge “official” su una directory dice che chi pubblica è verificato, non che il codice sia sicuro.
La regola che risolve la maggior parte dei casi: se il vendor pubblica un server remoto ufficiale, usa quello. Un server HTTP gestito dal vendor non gira sulla tua macchina, non ha accesso al tuo filesystem, e viene aggiornato da chi ha scritto il servizio.
Plugin e marketplace sono componenti altamente fidati. Possono eseguire codice arbitrario sulla tua macchina con i tuoi privilegi. Anthropic non controlla quali server MCP, file o software siano inclusi nei plugin, e non può verificare che funzionino come previsto.
Le directory MCP a confronto
Sezione intitolata “Le directory MCP a confronto”Verificate il 16 agosto 2026.
| Directory | Dimensione dichiarata | Punti di forza | Quando usarla |
|---|---|---|---|
| MCP Registry ufficiale | — (API v0/servers) |
Fonte di verità del protocollo, interrogabile via API, senza livelli editoriali | Verificare qual è il server canonico; automazioni che devono risolvere un nome |
| Anthropic Directory | — | Connettori revisionati contro i criteri di listing di Anthropic. Usano la stessa infrastruttura MCP di Claude Code | Partire da qui per i servizi mainstream. Richiede il login a claude.ai |
| Glama | 72.476 server | Voti a lettera su licenza, qualità del codice e stato di manutenzione. MCP Inspector per analizzare un server, hosting gestito. Categorie: Developer Tools 18.068, Search 11.137, Databases 4.492 | Il catalogo più ampio, e l’unico con un giudizio di qualità esplicito |
| PulseMCP | 22.057 server | Aggiornato quotidianamente. Classificazione per tipo — reference Anthropic, provider ufficiali, community. Ordinamento per popolarità all-time / mensile / settimanale, e directory dei client | Capire cosa si usa davvero, e distinguere ufficiale da community a colpo d’occhio |
| Smithery | oltre 14.936 MCP | Gestisce OAuth, credenziali e sessioni per te. Installazione in una riga (npx -y smithery setup), pubblicazione e osservabilità sull’uso dei tool |
Quando il problema non è trovare il server ma farlo autenticare |
| mcp.so | — | Marketplace con sezioni separate per Servers, Remote Servers, Clients, CLI, Skills e Agents. Server in evidenza selezionati a mano | Scoprire cose nuove, incluse skill e agenti oltre agli MCP |
| Docker MCP Catalog | — | La più grande libreria di server MCP containerizzati. MCP Toolkit e MCP Gateway per gestirli | Quando vuoi isolamento: un server in container non tocca il tuo filesystem |
| awesome-mcp-servers | — | Lista curata su GitHub, con contesto scritto da umani | Panoramica leggibile, per capire cosa esiste in una categoria |
| modelcontextprotocol/servers | — | I server di riferimento del protocollo | Vedere come è fatto un server scritto bene, e per gli usi base |
Interrogare il registry ufficiale
Sezione intitolata “Interrogare il registry ufficiale”È l’unico con un’API pubblica, e questo lo rende l’unico automatizzabile:
# jq '.' (il coltellino per il JSON, modulo 13) qui serve solo a stampare# la risposta indentata e leggibilecurl -s "https://registry.modelcontextprotocol.io/v0/servers?limit=5" | jq '.'La risposta ha la forma:
{ "servers": [ { "server": { }, "_meta": { } } ], "metadata": { "nextCursor": "...", "count": 5 }}Il campo nextCursor serve per la paginazione. Per uno script che deve risolvere qual è il server
canonico per X, questa è la strada.
Skills e plugin
Sezione intitolata “Skills e plugin”Dove trovarli
Sezione intitolata “Dove trovarli”| Fonte | Cosa contiene | Come si aggiunge |
|---|---|---|
Marketplace ufficiale claude-plugins-official |
Plugin curati da Anthropic: code intelligence LSP, integrazioni esterne (github, linear, notion, figma, supabase, vercel, sentry…), security-guidance, commit-commands, pr-review-toolkit, plugin-dev |
Aggiunto automaticamente al primo avvio interattivo. Se manca: /plugin marketplace add anthropics/claude-plugins-official |
| Catalogo web claude.com/plugins | Lo stesso catalogo, sfogliabile dal browser | — |
Marketplace community anthropics/claude-plugins-community |
Plugin di terze parti che hanno superato validazione automatica e screening di sicurezza di Anthropic. Ogni plugin è pinnato a uno specifico commit SHA (l’impronta univoca di una versione precisa del codice: quello che è stato controllato è quello che installi, né più né meno) | /plugin marketplace add anthropics/claude-plugins-community, poi /plugin install <nome>@claude-community |
Marketplace demo anthropics/claude-code |
Plugin di esempio, per capire cosa è possibile | /plugin marketplace add anthropics/claude-code |
| github.com/anthropics/skills | Repository ufficiale delle skill | Copia la cartella della skill in .claude/skills/ |
| awesome-claude-code | Lista community di comandi, skill, hook e workflow | Copia quello che ti serve, dopo averlo letto |
Come si installa e si prova un plugin
Sezione intitolata “Come si installa e si prova un plugin”/plugin # pannello: Discover, Installed, Marketplaces, Errors/plugin install github@claude-plugins-official/plugin list # cosa è installato/plugin disable <nome>@<marketplace> # spegni senza disinstallare/plugin uninstall <nome>@<marketplace>/reload-plugins # se l'installazione lo richiedePrima di premere Invio, il pannello dei dettagli mostra tre informazioni che vanno lette:
- Context cost — quanti token il plugin aggiunge alla tua finestra di contesto a ogni turno.
- Last updated — la data dell’ultimo aggiornamento.
- Will install — l’elenco esatto di comandi, agenti, skill, hook, server MCP e LSP che aggiunge.
Gli scope di installazione sono tre: user (tutti i tuoi progetti), project (tutti i collaboratori
del repository, scritto in .claude/settings.json), local (solo tu, solo qui).
Come si prova una skill trovata
Sezione intitolata “Come si prova una skill trovata”Una skill non è un pacchetto: è una cartella con dentro un SKILL.md.
- Leggila prima di copiarla. In particolare il frontmatter:
allowed-toolspuò concedere accesso ampio ai tool, e il workspace trust non protegge da quel campo. - Installala a livello utente, non di progetto, finché non ti fidi:
Terminal window cp -r skill-trovata ~/.claude/skills/ - Verifica che Claude la veda:
/reload-skills, poi chiediWhat skills are available?. - Provala su qualcosa di innocuo prima che su codice vero.
- Solo dopo, spostala in
.claude/skills/del progetto e committala.
Checklist di valutazione
Sezione intitolata “Checklist di valutazione”Da percorrere prima di installare qualsiasi cosa — server MCP, plugin o skill.
| # | Criterio | Cosa guardare | Segnale d’allarme |
|---|---|---|---|
| 1 | Provenienza | È il vendor stesso? È nell’Anthropic Directory o nel registry ufficiale? Il badge “official” corrisponde a un’organizzazione reale? | Un server “Stripe” pubblicato da un account personale sconosciuto |
| 2 | Server remoto ufficiale disponibile? | Se il vendor ne pubblica uno, preferiscilo sempre a un wrapper locale — un “involucro”: codice di terzi che fa da tramite verso il servizio, aggiungendo un intermediario di cui fidarsi | Un wrapper community per un servizio che ha già un MCP ufficiale |
| 3 | Manutenzione | Data dell’ultimo commit, issue aperte e se ricevono risposta, cadenza delle release | Ultimo commit oltre sei mesi fa con issue aperte ignorate |
| 4 | Adozione | Stelle, download, presenza su più directory. Su Glama, i voti a lettera per licenza, qualità e manutenzione | Zero adozione e zero manutenzione insieme |
| 5 | Cosa installa davvero | Nel pannello /plugin: la sezione Will install. Per una skill: allowed-tools e disallowed-tools nel frontmatter |
Un plugin di formattazione che vuole installare un server MCP e degli hook |
| 6 | Costo in contesto | Il Context cost nel pannello: lo paghi a ogni turno, per sempre | Un plugin che aggiunge migliaia di token per una funzione che usi una volta al mese |
| 7 | Permessi e credenziali | Quali credenziali chiede? Puoi dargli un utente con privilegi minimi? Un token a sola lettura basta? | Un server di analytics che vuole credenziali di scrittura sul database |
| 8 | Superficie di prompt injection — l’attacco spiegato per bene due sezioni più sotto | Il server recupera contenuto esterno? Web, email, issue, commenti di PR? | Qualsiasi server che porta in contesto testo scritto da terzi |
| 9 | Esfiltrazione dei dati | Dove finiscono i dati che passano dal server? Un server locale che chiama casa? | Un server “locale” che apre connessioni di rete non spiegate |
| 10 | Isolamento possibile | Puoi farlo girare in container, o in sandbox? Esiste sul Docker MCP Catalog? | Un server che richiede accesso al filesystem fuori dal progetto |
Il rischio che si sottovaluta: prompt injection
Sezione intitolata “Il rischio che si sottovaluta: prompt injection”La documentazione lo dice senza giri di parole: i server che recuperano contenuto esterno possono esporti al rischio di prompt injection. Un attaccante inserisce istruzioni malevole in un contenuto che Claude leggerà — il corpo di una issue, un commento di PR, una pagina web, un’email — sperando che Claude le segua come se venissero da te.
Le protezioni integrate di Claude Code:
- Sistema di permessi — le operazioni sensibili richiedono approvazione esplicita.
- Analisi consapevole del contesto — rileva istruzioni potenzialmente dannose analizzando l’intera richiesta.
- Approvazione dei comandi di rete —
curlewgetnon sono auto-approvati per default. - Finestre di contesto isolate — il web fetch usa una finestra separata, per evitare di iniettare prompt malevoli.
- Verifica di trust — il primo run su un codebase e i nuovi server MCP richiedono verifica. Disattivata con
-p. - Rilevamento di command injection — comandi bash sospetti richiedono approvazione manuale anche se già in allowlist.
- Matching fail-closed — un comando non corrispondente richiede approvazione manuale per default.
E le pratiche consigliate quando lavori con contenuto non fidato:
- Rivedi i comandi proposti prima di approvarli.
- Non fare pipe di contenuto non fidato direttamente a Claude.
- Verifica le modifiche proposte ai file critici.
- Usa macchine virtuali per eseguire script e chiamate a tool, specialmente interagendo con servizi web esterni.
- Segnala comportamenti sospetti con
/feedback.
Workflow completo: trovare e configurare un MCP per Postgres
Sezione intitolata “Workflow completo: trovare e configurare un MCP per Postgres”Percorriamo tutto il ciclo su un caso vero.
-
Cerco — parto dal registry ufficiale.
Terminal window # scarica i primi 100 server dal registry (curl -s = senza barre di progresso)curl -s "https://registry.modelcontextprotocol.io/v0/servers?limit=100" \| jq -r '.servers[].server| select((.name // "") | test("postgres|sql|database"; "i"))| .name'# il filtro jq, pezzo per pezzo: per ogni server, tieni solo quelli il cui# nome contiene "postgres", "sql" o "database" — test() confronta con una# regex, la "i" finale = ignora maiuscole/minuscole — e stampane il nomePoi allargo alle directory con giudizio di qualità: su Glama la categoria Databases, guardando i voti a lettera; su PulseMCP ordinando per popolarità e filtrando per tipo.
-
Valuto — applico la checklist. Per questo esempio scegliamo DBHub, il pacchetto
@bytebase/dbhub, citato dalla documentazione ufficiale di Claude Code come esempio per i database relazionali.Criterio Verifica Provenienza Pubblicato da Bytebase, azienda del settore database. Citato dai docs ufficiali Server remoto ufficiale? No: Postgres è un database, non un SaaS. Il server locale è la forma giusta Manutenzione Controlla commit recenti e issue aperte sul repository Cosa installa Un processo stdio locale. Nessun hook, nessuna skill Credenziali Una connection string. Posso darne una a sola lettura ✓ Prompt injection Il server legge il mio database, non contenuto esterno. Superficie bassa Esfiltrazione Processo locale, senza chiamate di rete oltre al database -
Riduco il rischio prima di installare. Un utente del database di sola lettura, non l’utente applicativo — è lo stesso setup del modulo 9, dove ogni riga SQL è commentata; il succo: crea l’utente
claude_roe dagli il permesso di leggere tutte le tabelle, presenti e future, e nient’altro.CREATE USER claude_ro WITH PASSWORD 'una-password-lunga';GRANT CONNECT ON DATABASE analytics TO claude_ro;GRANT USAGE ON SCHEMA public TO claude_ro;GRANT SELECT ON ALL TABLES IN SCHEMA public TO claude_ro;ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO claude_ro;Questo passo vale più di tutti gli altri messi insieme: qualunque cosa vada storta, il peggio che può succedere è una
SELECT. -
Installo — a scope locale, per provare.
Terminal window claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \--dsn "postgresql://claude_ro:una-password-lunga@localhost:5432/analytics" -
Testo, in due tempi: prima la connessione, poi le capacità.
Terminal window claude mcp listDeve mostrare
dbcon✔ Connected.Poi, in sessione:
/mcpIl pannello mostra il numero di tool esposti. Poi le prove funzionali, dalla più innocua:
Show me the schema for the orders tableWhat's our total revenue this month?E la prova che conta davvero — verificare che il confinamento funzioni:
Delete the row with id 1 from the test tableDeve fallire con un errore di permessi dal database. Se riesce, il tuo utente non è di sola lettura: torna al passo 3.
-
Promuovo a scope di progetto, senza credenziali in git.
Terminal window claude mcp remove db.mcp.json {"mcpServers": {"db": {"type": "stdio","command": "npx","args": ["-y", "@bytebase/dbhub", "--dsn", "${DATABASE_URL_RO}"]}}}CLAUDE.md ## Server MCPIl server `db` richiede `DATABASE_URL_RO` nell'ambiente, con l'utente di solalettura `claude_ro`. Vedi `docs/setup-db.md` per ottenerla. -
Verifico da una clone pulita, che è l’unico test che dimostra qualcosa:
Terminal window cd /tmp && git clone <url> prova && cd prova && claude mcp listIl server deve comparire come
⏸ Pending approvale la variabile deve risultare mancante finché non la esporti. Se si collega senza che tu abbia fatto nulla, hai un segreto committato.
Esercizio
Sezione intitolata “Esercizio”Valuta e installa un’estensione per un servizio che usi davvero.
- Scegli un servizio esterno del tuo lavoro: issue tracker, monitoring, design, storage.
- Cerca su almeno tre fonti diverse e confronta cosa trovi.
- Applica la checklist e scrivi la tua decisione, motivata.
- Installa, testa e — se non convince — disinstalla pulito.
Soluzione
Prendiamo Sentry come esempio, ma il ragionamento vale per qualsiasi servizio.
Passo 2 — tre fonti.
| Fonte | Cosa trovo |
|---|---|
| Marketplace ufficiale | Un plugin sentry tra le integrazioni esterne: MCP preconfigurato, nessun setup manuale |
| Documentazione Claude Code | Cita https://mcp.sentry.dev/mcp come server remoto HTTP con OAuth |
| Glama / PulseMCP | Diversi wrapper community, con voti e date di manutenzione variabili |
Il confronto risponde già alla domanda: esiste un server remoto ufficiale del vendor. Il criterio 2 della checklist chiude la valutazione — i wrapper community non vanno nemmeno esaminati.
Passo 3 — la decisione, scritta.
# MCP Sentry — decisione
**Scelta:** server remoto ufficiale `https://mcp.sentry.dev/mcp`, OAuth, scope utente.
## Perché non le alternative- Wrapper community: nessun vantaggio su un server ufficiale, e aggiungono una dipendenza in più da mantenere.- Plugin `sentry@claude-plugins-official`: equivalente, ma porta con sé un costo in contesto anche quando non lo uso. Se in futuro servisse anche al team, si valuta.
## Checklist| Criterio | Esito || --- | --- || Provenienza | Vendor stesso ✓ || Server remoto ufficiale | Sì, ed è quello scelto ✓ || Manutenzione | Gestito dal vendor ✓ || Credenziali | OAuth, nessun token da conservare ✓ || Prompt injection | **ALTA**: i titoli e i corpi degli errori arrivano da input degli utenti ⚠ || Esfiltrazione | Remoto: i dati restano tra Sentry e Anthropic ✓ |
## Mitigazione del rischio di injectionIl server porta in contesto testo che non ho scritto io. Quindi:- Scope **utente**, non di progetto: non voglio che si attivi in run `-p` non sorvegliati, dove la verifica di trust è disattivata.- Mai usato insieme a `--dangerously-skip-permissions`.- I task che leggono Sentry restano in modalità con conferma sulle azioni di scrittura.
## RevisioneFra tre mesi: è ancora usato? Il Context cost giustifica la frequenza d'uso?Passo 4 — installo, testo, e so come tornare indietro.
claude mcp add --transport http sentry --scope user https://mcp.sentry.dev/mcpclaude mcp login sentryclaude mcp listLe prove, in ordine crescente di fiducia richiesta:
/mcp→ il server è connected e mostra il numero di tool.
List the top 3 unresolved issues from the last 7 days→ legge davvero.
Take the top error and check in the codebase where it originates→ incrocia due fonti. È qui che l’estensione si ripaga.
E la disinstallazione pulita, se non convince:
claude mcp logout sentry # prima revoca le credenzialiclaude mcp remove sentry # poi rimuovi la configurazioneclaude mcp list # verifica che non ci sia piùL’ordine conta: remove prima di logout lascia le credenziali OAuth memorizzate per un server che
non esiste più. Revoca sempre prima.
Errori comuni e troubleshooting
Sezione intitolata “Errori comuni e troubleshooting”| Sintomo | Causa | Soluzione |
|---|---|---|
| Hai installato un wrapper community di un servizio che ha un MCP ufficiale | Hai cercato solo sulle directory community | Parti sempre dal registry ufficiale e dal sito del vendor |
| Un server con molte stelle si comporta male | Le stelle non sono manutenzione né sicurezza | Guarda l’ultimo commit e le issue aperte; su Glama, i voti a lettera |
| Il contesto è diventato pesante dopo qualche installazione | Ogni plugin ha un costo in contesto per turno | /context per la diagnosi; il pannello /plugin mostra il Context cost |
| Non ricordi più perché avevi installato una cosa | Nessuna decisione scritta | /plugin elenca i plugin non usati di recente, con la data di ultimo uso |
| Un plugin ha installato più di quanto ti aspettassi | Non hai letto la sezione Will install | È nel pannello dei dettagli prima dell’installazione |
| Una skill di un repository clonato ha permessi ampi | allowed-tools non è gated dal workspace trust |
Leggi il frontmatter prima di lanciare Claude Code nel repo |
Un server MCP di progetto si collega in un run -p senza che tu l’abbia approvato |
Le sessioni non interattive non mostrano il prompt, e con -p la verifica di trust è disattivata |
--bare in CI, o disabledMcpjsonServers |
Marketplace "claude-plugins-official" not found |
Non è stato aggiunto automaticamente | /plugin marketplace add anthropics/claude-plugins-official |
| Rimuovendo un marketplace spariscono dei plugin | Rimuovere un marketplace disinstalla i plugin che ne provenivano | Disabilita il singolo plugin invece di rimuovere il marketplace |
| Le skill di un plugin non compaiono | Cache dei plugin | rm -rf ~/.claude/plugins/cache, riavvia, reinstalla |
claude.ai/directory non si apre |
Richiede il login a claude.ai | Accedi prima al tuo account |
Cheat-sheet
Sezione intitolata “Cheat-sheet”Dove cercare, in ordine
1. Il sito del vendor → esiste un server remoto ufficiale?2. registry.modelcontextprotocol.io → qual è il server canonico?3. claude.ai/directory → connettori revisionati da Anthropic4. Glama / PulseMCP → qualità, manutenzione, adozione5. Smithery / Docker Catalog → se il problema è auth o isolamento6. awesome-mcp-servers → panoramica leggibile di una categoriaLa checklist in dieci parole
Provenienza · Ufficiale? · Manutenzione · Adozione · Cosa installaCosto · Credenziali · Injection · Esfiltrazione · IsolamentoComandi
| Comando | |
|---|---|
/plugin |
Pannello: Discover, Installed, Marketplaces, Errors |
/plugin marketplace add <owner/repo> |
Aggiunge un marketplace |
/plugin install <nome>@<marketplace> |
Installa |
/plugin list [--enabled|--disabled] |
Cosa è installato |
/plugin disable · /plugin uninstall |
Spegne · rimuove |
/reload-plugins |
Applica senza riavviare |
claude mcp list |
Server configurati, con stato di salute |
claude mcp login · claude mcp logout |
Autentica · revoca (logout prima di remove) |
/mcp |
Pannello dei server, con il conteggio dei tool |
Le due regole che evitano quasi tutti i problemi
1. Se il vendor ha un server remoto ufficiale, usa quello.2. Dai sempre le credenziali con i privilegi minimi che bastano.Link verificati uno per uno il 16 agosto 2026.
Directory MCP
- MCP Registry ufficiale — la fonte di verità del protocollo
- Anthropic Directory — connettori revisionati (richiede il login a claude.ai)
- Glama MCP servers — 72.476 server, voti a lettera, Inspector e hosting
- PulseMCP — 22.057 server, aggiornamento quotidiano, classificazione per tipo
- Smithery — oltre 14.936 MCP, gestione di auth e credenziali
- mcp.so — marketplace con server, client, skill e agenti
- Docker MCP Catalog — server containerizzati, MCP Toolkit e Gateway
- awesome-mcp-servers — lista curata su GitHub
- modelcontextprotocol/servers — i server di riferimento
- modelcontextprotocol.io e la guida per costruire un server
Skills e plugin
- anthropics/skills — repository ufficiale delle skill
- claude.com/plugins — catalogo dei plugin ufficiali
- anthropics/claude-plugins-official
- anthropics/claude-plugins-community
- awesome-claude-code — lista community
Documentazione ufficiale Claude Code
- Discover and install plugins — marketplace, installazione, scope, sicurezza
- Connect Claude Code to tools via MCP — dove trovare i server e il warning sul trust
- Security — prompt injection, protezioni integrate, sicurezza MCP
- Security guidance plugin — revisione automatica delle vulnerabilità
- Extend Claude with skills —
allowed-toolse workspace trust - Plugin marketplaces — creare e limitare i marketplace
Nell’esempio
- DBHub — il server MCP per database relazionali usato nel workflow
Corso indipendente, non affiliato ad Anthropic o Google. Claude e Claude Code sono marchi di Anthropic; Antigravity e Gemini sono marchi di Google.