# Plugins e MCP

> Estendi gli agents Enterprise con plugins e skill portabili nel formato agent-plugins.org e con i tuoi MCP servers tramite Streamable HTTP o SSE.

Enterprise estende ciò che gli [agents](https://pentagi.com/it/docs/glossary/#agent) possono fare tramite **Agent Plugins** — pacchetti nel formato aperto [agent-plugins.org](https://agent-plugins.org/specification) con skill, dichiarazioni di [MCP server](https://pentagi.com/it/docs/glossary/#mcp-server) e [agent profiles](https://pentagi.com/it/docs/glossary/#agent-profile) specifici per PentAGI.

```text
my-plugin/
├── plugin.json      manifest (required)
├── skills/          Agent Skills
├── mcp.json         MCP server declarations
└── com.pentagi/     requirements and agent profiles
```

## [Divulgazione progressiva](https://pentagi.com/it/docs/enterprise/plugins-and-mcp/#progressive-disclosure)

Un planner vede il nome di ogni [plugin](https://pentagi.com/it/docs/glossary/#plugin), una breve descrizione, i nomi delle sue skill e gli MCP server di cui ha bisogno. Le skill dei plugin selezionati vengono inserite nel prompt dell'agent operativo, le loro funzioni MCP diventano gli strumenti dell'agent — al massimo 20 per [subtask](https://pentagi.com/it/docs/glossary/#subtask) — e script e riferimenti vengono letti su richiesta all'interno del container, quindi un catalogo ampio costa poco finché un plugin non viene selezionato.

## [MCP servers](https://pentagi.com/it/docs/enterprise/plugins-and-mcp/#mcp-servers)

![MCP servers nelle Impostazioni](https://pentagi.com/images/product/ee-mcp-servers.webp)

Gli MCP servers vengono connessi in **Settings → MCP Servers** tramite Streamable HTTP o il precedente HTTP+SSE. I server che supportano solo `stdio` vengono eseguiti dietro un gateway MCP sulla tua rete; PentAGI non avvia mai un eseguibile fornito da un plugin al di fuori della sua [sandbox](https://pentagi.com/it/docs/glossary/#sandbox).

PentAGI rifiuta gli endpoint MCP su indirizzi privati, di loopback, link-local e di metadati a meno che `MCP_ALLOWED_EGRESS_CIDRS` non elenchi l'intervallo, quindi per un gateway sulla tua rete imposta il suo prefisso, ad esempio `10.8.0.0/24`. HTTP semplice è accettato solo per `localhost`, indirizzi di loopback e `host.docker.internal`.

Un nuovo server rimane disattivato finché non viene attivato **On** sotto **Availability**: gli amministratori impostano il **Default for users** e ogni utente può sovrascriverlo sotto **My state**. Gli agent raggiungono un server tramite un plugin che associa le sue funzioni, oppure direttamente una volta attivata l'opzione **Offer without a plugin** e selezionate le funzioni (**Allow direct use**).

Le credenziali sono di sola scrittura: le inserisci quando aggiungi un server e puoi sostituirle o revocarle in seguito — la revoca disattiva anche il server — e l'API non le restituisce mai. Sono crittografate con `MCP_CREDENTIALS_ENCRYPTION_KEY` (64 caratteri esadecimali; l'installer ne genera uno). Esegui il backup della chiave: una volta salvate le credenziali, PentAGI non si avvia senza di essa.

## [Plugin](https://pentagi.com/it/docs/enterprise/plugins-and-mcp/#plugins)

![Plugins nelle Impostazioni](https://pentagi.com/images/product/ee-plugins.webp)

Aggiungi un plugin in **Settings → Plugins** con **New plugin** o **Import package** (un file `.tar.gz`); un pacchetto importato arriva come bozza ed è offerto solo dopo che lo hai pubblicato. I pacchetti inseriti in `PLUGINS_DIR` (`/opt/pentagi/plugins` all'interno del container) compaiono sotto **Bundled runtime plugins** dopo **Reload registry**.

I plugin diventano disponibili per i planner solo quando gli MCP servers richiesti sono installati e abilitati. Gli amministratori impostano il **Default for users** di ogni plugin — **On**, **Default** o **Off** — e ogni utente può sovrascriverlo sotto **My state** per i plugin inclusi o sotto **My override** per gli altri. **Default** segue `PLUGINS_ENABLEMENT_MODE`: `auto`, l'impostazione predefinita, offre ogni plugin i cui MCP servers sono pronti, mentre `manual` offre un plugin solo una volta che è stato attivato con **On**.