diff options
| author | Adam <[email protected]> | 2026-02-09 11:34:35 -0600 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-02-09 11:34:35 -0600 |
| commit | dc53086c1e73d43d3a28fc4cdf161e83d09b1877 (patch) | |
| tree | 45a1d0e38de958d0886a5120b2806b21db74145b /packages/web/src/content/docs/it/mcp-servers.mdx | |
| parent | f74c0339cc6315f7e7743e26b7eab47ce026c239 (diff) | |
| download | opencode-dc53086c1e73d43d3a28fc4cdf161e83d09b1877.tar.gz opencode-dc53086c1e73d43d3a28fc4cdf161e83d09b1877.zip | |
wip(docs): i18n (#12681)
Diffstat (limited to 'packages/web/src/content/docs/it/mcp-servers.mdx')
| -rw-r--r-- | packages/web/src/content/docs/it/mcp-servers.mdx | 511 |
1 files changed, 511 insertions, 0 deletions
diff --git a/packages/web/src/content/docs/it/mcp-servers.mdx b/packages/web/src/content/docs/it/mcp-servers.mdx new file mode 100644 index 000000000..a067d9963 --- /dev/null +++ b/packages/web/src/content/docs/it/mcp-servers.mdx @@ -0,0 +1,511 @@ +--- +title: Server MCP +description: Aggiungi strumenti MCP locali e remoti. +--- + +Puoi aggiungere strumenti esterni a OpenCode usando il _Model Context Protocol_, o MCP. OpenCode supporta sia server locali sia remoti. + +Una volta aggiunti, gli strumenti MCP sono automaticamente disponibili all'LLM insieme agli strumenti integrati. + +--- + +#### Avvertenze + +Quando usi un server MCP, aggiunge contenuto al contesto. Questo puo' crescere rapidamente se hai molti strumenti. Per questo consigliamo di fare attenzione a quali server MCP abiliti. + +:::tip +I server MCP aumentano il contesto, quindi e' meglio essere prudenti su quali abilitare. +::: + +Alcuni server MCP, come il server MCP di GitHub, tendono ad aggiungere molti token e possono facilmente superare il limite di contesto. + +--- + +## Abilita + +Puoi definire server MCP nella tua [OpenCode Config](https://opencode.ai/docs/config/) sotto `mcp`. Aggiungi ogni MCP con un nome univoco. Puoi riferirti a quell'MCP per nome quando fai prompt all'LLM. + +```jsonc title="opencode.jsonc" {6} +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "name-of-mcp-server": { + // ... + "enabled": true, + }, + "name-of-other-mcp-server": { + // ... + }, + }, +} +``` + +Puoi anche disabilitare un server impostando `enabled` a `false`. E' utile se vuoi disabilitare temporaneamente un server senza rimuoverlo dalla configurazione. + +--- + +### Sovrascrivere i default remoti + +Le organizzazioni possono fornire server MCP predefiniti tramite l'endpoint `.well-known/opencode`. Questi server possono essere disabilitati di default, lasciando agli utenti la possibilita' di fare opt-in su quelli necessari. + +Per abilitare un server specifico dalla configurazione remota dell'organizzazione, aggiungilo alla configurazione locale con `enabled: true`: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "jira": { + "type": "remote", + "url": "https://jira.example.com/mcp", + "enabled": true + } + } +} +``` + +I valori della configurazione locale sovrascrivono i default remoti. Vedi [config precedence](/docs/config#precedence-order) per maggiori dettagli. + +--- + +## Locali + +Aggiungi server MCP locali impostando `type` a `"local"` dentro l'oggetto `mcp`. + +```jsonc title="opencode.jsonc" {15} +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "my-local-mcp-server": { + "type": "local", + // Or ["bun", "x", "my-mcp-command"] + "command": ["npx", "-y", "my-mcp-command"], + "enabled": true, + "environment": { + "MY_ENV_VAR": "my_env_var_value", + }, + }, + }, +} +``` + +Il comando e' come viene avviato il server MCP locale. Puoi anche passare un elenco di variabili d'ambiente. + +Per esempio, ecco come aggiungere il server MCP di test [`@modelcontextprotocol/server-everything`](https://www.npmjs.com/package/@modelcontextprotocol/server-everything). + +```jsonc title="opencode.jsonc" +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "mcp_everything": { + "type": "local", + "command": ["npx", "-y", "@modelcontextprotocol/server-everything"], + }, + }, +} +``` + +E per usarlo posso aggiungere `use the mcp_everything tool` ai miei prompt. + +```txt "mcp_everything" +use the mcp_everything tool to add the number 3 and 4 +``` + +--- + +#### Opzioni + +Ecco tutte le opzioni per configurare un server MCP locale. + +| Opzione | Tipo | Richiesto | Descrizione | +| ------------- | ------- | --------- | ------------------------------------------------------------------------------------ | +| `type` | String | Y | Tipo di connessione del server MCP, deve essere `"local"`. | +| `command` | Array | Y | Comando e argomenti per eseguire il server MCP. | +| `environment` | Object | | Variabili d'ambiente da impostare quando si esegue il server. | +| `enabled` | Boolean | | Abilita o disabilita il server MCP all'avvio. | +| `timeout` | Number | | Timeout in ms per recuperare gli strumenti dal server MCP. Default 5000 (5 secondi). | + +--- + +## Remoti + +Aggiungi server MCP remoti impostando `type` a `"remote"`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "my-remote-mcp": { + "type": "remote", + "url": "https://my-mcp-server.com", + "enabled": true, + "headers": { + "Authorization": "Bearer MY_API_KEY" + } + } + } +} +``` + +`url` e' l'URL del server MCP remoto e con l'opzione `headers` puoi passare un elenco di header. + +--- + +#### Opzioni + +| Opzione | Tipo | Richiesto | Descrizione | +| --------- | ------- | --------- | ------------------------------------------------------------------------------------ | +| `type` | String | Y | Tipo di connessione del server MCP, deve essere `"remote"`. | +| `url` | String | Y | URL del server MCP remoto. | +| `enabled` | Boolean | | Abilita o disabilita il server MCP all'avvio. | +| `headers` | Object | | Header da inviare con la richiesta. | +| `oauth` | Object | | Configurazione autenticazione OAuth. Vedi sezione [OAuth](#oauth) sotto. | +| `timeout` | Number | | Timeout in ms per recuperare gli strumenti dal server MCP. Default 5000 (5 secondi). | + +--- + +## OAuth + +OpenCode gestisce automaticamente l'autenticazione OAuth per i server MCP remoti. Quando un server richiede autenticazione, OpenCode: + +1. Rileva la risposta 401 e avvia il flusso OAuth +2. Usa **Dynamic Client Registration (RFC 7591)** se supportato dal server +3. Memorizza i token in modo sicuro per richieste future + +--- + +### Automatico + +Per la maggior parte dei server MCP con OAuth, non serve alcuna configurazione speciale. Basta configurare il server remoto: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "my-oauth-server": { + "type": "remote", + "url": "https://mcp.example.com/mcp" + } + } +} +``` + +Se il server richiede autenticazione, OpenCode ti chiedera' di autenticarti la prima volta che provi a usarlo. In caso contrario, puoi [attivare manualmente il flusso](#authenticating) con `opencode mcp auth <server-name>`. + +--- + +### Pre-registrato + +Se hai credenziali client dal provider del server MCP, puoi configurarle: + +```json title="opencode.json" {7-11} +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "my-oauth-server": { + "type": "remote", + "url": "https://mcp.example.com/mcp", + "oauth": { + "clientId": "{env:MY_MCP_CLIENT_ID}", + "clientSecret": "{env:MY_MCP_CLIENT_SECRET}", + "scope": "tools:read tools:execute" + } + } + } +} +``` + +--- + +### Autenticazione + +Puoi avviare manualmente l'autenticazione o gestire le credenziali. + +Autentica con un server MCP specifico: + +```bash +opencode mcp auth my-oauth-server +``` + +Elenca tutti i server MCP e il loro stato di autenticazione: + +```bash +opencode mcp list +``` + +Rimuovi credenziali memorizzate: + +```bash +opencode mcp logout my-oauth-server +``` + +Il comando `mcp auth` aprira' il browser per l'autorizzazione. Dopo l'autorizzazione, OpenCode memorizzera' i token in modo sicuro in `~/.local/share/opencode/mcp-auth.json`. + +--- + +#### Disabilitare OAuth + +Se vuoi disabilitare l'OAuth automatico per un server (ad esempio per server che usano API key), imposta `oauth` a `false`: + +```json title="opencode.json" {7} +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "my-api-key-server": { + "type": "remote", + "url": "https://mcp.example.com/mcp", + "oauth": false, + "headers": { + "Authorization": "Bearer {env:MY_API_KEY}" + } + } + } +} +``` + +--- + +#### Opzioni OAuth + +| Opzione | Tipo | Descrizione | +| -------------- | --------------- | --------------------------------------------------------------------------- | +| `oauth` | Object \| false | Oggetto config OAuth, o `false` per disabilitare l'auto-detection di OAuth. | +| `clientId` | String | OAuth client ID. Se non fornito, si prova la dynamic client registration. | +| `clientSecret` | String | OAuth client secret, se richiesto dal server di autorizzazione. | +| `scope` | String | Scope OAuth da richiedere durante l'autorizzazione. | + +#### Debug + +Se un server MCP remoto non riesce ad autenticarsi, puoi diagnosticare i problemi con: + +```bash +# View auth status for all OAuth-capable servers +opencode mcp auth list + +# Debug connection and OAuth flow for a specific server +opencode mcp debug my-oauth-server +``` + +Il comando `mcp debug` mostra lo stato di autenticazione corrente, testa la connettivita' HTTP e prova il flusso di discovery OAuth. + +--- + +## Gestione + +I tuoi MCP sono disponibili come strumenti in OpenCode insieme agli strumenti integrati. Quindi puoi gestirli tramite la configurazione OpenCode come qualunque altro strumento. + +--- + +### Globale + +Questo significa che puoi abilitarli o disabilitarli globalmente. + +```json title="opencode.json" {14} +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "my-mcp-foo": { + "type": "local", + "command": ["bun", "x", "my-mcp-command-foo"] + }, + "my-mcp-bar": { + "type": "local", + "command": ["bun", "x", "my-mcp-command-bar"] + } + }, + "tools": { + "my-mcp-foo": false + } +} +``` + +Possiamo anche usare un pattern glob per disabilitare tutti gli MCP corrispondenti. + +```json title="opencode.json" {14} +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "my-mcp-foo": { + "type": "local", + "command": ["bun", "x", "my-mcp-command-foo"] + }, + "my-mcp-bar": { + "type": "local", + "command": ["bun", "x", "my-mcp-command-bar"] + } + }, + "tools": { + "my-mcp*": false + } +} +``` + +Qui stiamo usando il pattern glob `my-mcp*` per disabilitare tutti gli MCP. + +--- + +### Per agente + +Se hai molti server MCP, potresti volerli abilitare solo per agente e disabilitarli globalmente. Per farlo: + +1. Disabilitalo globalmente come strumento. +2. Nella tua [config dell'agente](/docs/agents#tools), abilita il server MCP come strumento. + +```json title="opencode.json" {11, 14-18} +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "my-mcp": { + "type": "local", + "command": ["bun", "x", "my-mcp-command"], + "enabled": true + } + }, + "tools": { + "my-mcp*": false + }, + "agent": { + "my-agent": { + "tools": { + "my-mcp*": true + } + } + } +} +``` + +--- + +#### Pattern glob + +Il pattern glob usa semplici regole di globbing: + +- `*` corrisponde a zero o piu' caratteri qualsiasi (ad esempio `"my-mcp*"` corrisponde a `my-mcp_search`, `my-mcp_list`, ecc.) +- `?` corrisponde esattamente a un carattere +- Tutti gli altri caratteri corrispondono letteralmente + +:::note +Gli strumenti del server MCP vengono registrati con il nome del server come prefisso, quindi per disabilitare tutti gli strumenti di un server e' sufficiente usare: + +``` +"mymcpservername_*": false +``` + +::: + +--- + +## Esempi + +Qui sotto trovi esempi di alcuni server MCP comuni. Puoi inviare una PR se vuoi documentare altri server. + +--- + +### Sentry + +Aggiungi il [server MCP di Sentry](https://mcp.sentry.dev) per interagire con i tuoi progetti e le issue di Sentry. + +```json title="opencode.json" {4-8} +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "sentry": { + "type": "remote", + "url": "https://mcp.sentry.dev/mcp", + "oauth": {} + } + } +} +``` + +Dopo aver aggiunto la configurazione, autentica con Sentry: + +```bash +opencode mcp auth sentry +``` + +Questo aprira' una finestra del browser per completare il flusso OAuth e collegare OpenCode al tuo account Sentry. + +Una volta autenticato, puoi usare gli strumenti Sentry nei tuoi prompt per interrogare issue, progetti e dati sugli errori. + +```txt "use sentry" +Show me the latest unresolved issues in my project. use sentry +``` + +--- + +### Context7 + +Aggiungi il [server MCP Context7](https://github.com/upstash/context7) per cercare nella documentazione. + +```json title="opencode.json" {4-7} +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "context7": { + "type": "remote", + "url": "https://mcp.context7.com/mcp" + } + } +} +``` + +Se ti sei registrato per un account gratuito, puoi usare la tua API key e ottenere rate limit piu' alti. + +```json title="opencode.json" {7-9} +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "context7": { + "type": "remote", + "url": "https://mcp.context7.com/mcp", + "headers": { + "CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}" + } + } + } +} +``` + +Qui assumiamo che tu abbia impostato la variabile d'ambiente `CONTEXT7_API_KEY`. + +Aggiungi `use context7` ai tuoi prompt per usare il server MCP Context7. + +```txt "use context7" +Configure a Cloudflare Worker script to cache JSON API responses for five minutes. use context7 +``` + +In alternativa, puoi aggiungere qualcosa del genere al tuo [AGENTS.md](/docs/rules/). + +```md title="AGENTS.md" +When you need to search docs, use `context7` tools. +``` + +--- + +### Grep by Vercel + +Aggiungi il server MCP [Grep by Vercel](https://grep.app) per cercare snippet di codice su GitHub. + +```json title="opencode.json" {4-7} +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "gh_grep": { + "type": "remote", + "url": "https://mcp.grep.app" + } + } +} +``` + +Dato che abbiamo chiamato il nostro server MCP `gh_grep`, puoi aggiungere `use the gh_grep tool` ai tuoi prompt per fare in modo che l'agente lo usi. + +```txt "use the gh_grep tool" +What's the right way to set a custom domain in an SST Astro component? use the gh_grep tool +``` + +In alternativa, puoi aggiungere qualcosa del genere al tuo [AGENTS.md](/docs/rules/). + +```md title="AGENTS.md" +If you are unsure how to do something, use `gh_grep` to search code examples from GitHub. +``` |
