> For the complete documentation index, see [llms.txt](https://docs.aisuru.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aisuru.com/avanzate/integrazioni/model-context-protocol-mcp-su-aisuru/mcp-di-aisuru-quali-sono-e-come-si-attivano/10.-microsoft-sql-server-mcp.md).

# 10. Microsoft SQL Server MCP

Microsoft SQL Server MCP consente al tuo Agente di connettersi a database Microsoft SQL Server e Azure SQL. Supporta query SQL, gestione dello schema\*, metriche e sicurezza enterprise.

Questo MCP è utile per:

* Interrogare database SQL Server;
* Eseguire query complesse su database enterprise;
* Gestire dati in ambienti Microsoft Azure.

## Parametri di configurazione

| Parametro                     | Obbligatorio | Descrizione                                                                                                                           |
| ----------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
| `DB_HOST`                     | Sì           | Indirizzo del server SQL. Formato: `servername.database.windows.net` (Azure) o `localhost`. Esempio:`aisuru-sql.database.windows.net` |
| `DB_DATABASE`                 | Sì           | Nome del database. Stringa alfanumerica. Esempio: `aisuru_db`,`production`                                                            |
| `DB_USER`                     | Sì           | Nome utente per l'autenticazione. Formato: `admin` o `admin@servername`. Esempio:`sqladmin`                                           |
| `DB_PASSWORD`                 | Sì           | Password dell'utente. Stringa complessa. Esempio:`MySecureP@ssw0rd123!`                                                               |
| `DB_PORT`                     | No           | Porta del server SQL. Predefinita: `1433`. È accettata qualsiasi porta TCP.                                                           |
| `DB_ENCRYPT`                  | No           | Abilita la crittografia TLS/SSL. Predefinito: `true`. Valori possibili: `true`,`false`                                                |
| `DB_TRUST_SERVER_CERTIFICATE` | No           | Accetta certificati autofirmati. Predefinito: `false`. Valori possibili: `true`,`false`                                               |
| `CONNECTION_TIMEOUT`          | No           | Timeout di connessione in secondi. Predefinito: `15`. Intervallo:`5–120`                                                              |
| `REQUEST_TIMEOUT`             | No           | Timeout della query in secondi. Predefinito: `15`. Intervallo:`5–300`                                                                 |
| `POOL_SIZE`                   | No           | Dimensione del pool di connessioni. Predefinito: `10`. Intervallo:`1–100`                                                             |

### Come ottenere i parametri <a href="#f09f9491-come-ottenere-i-parametri-3" id="f09f9491-come-ottenere-i-parametri-3"></a>

**Opzione A: Azure SQL Database (cloud)**

1. **Dopo aver creato** un database SQL di Azure;
2. Vai su **Azure Portal** → **SQL databases** → seleziona il tuo database;
3. Nel menu laterale, fai clic su **Stringhe di connessione;**
4. Troverai una stringa simile a:

   ```
   Server=tcp:myserver.database.windows.net,1433;
   Initial Catalog=mydatabase;
   User ID=sqladmin;
   Password={your_password};
   Encrypt=True;
   ```
5. **Estrai e inserisci i parametri**:
   * `DB_HOST`: `myserver.database.windows.net`
   * `DB_DATABASE`: `mydatabase`
   * `DB_USER`: `sqladmin`
   * `DB_PASSWORD`: la password che hai impostato;
   * `DB_PORT`: `1433` (oppure lascia vuoto per usare il valore predefinito).
   * `DB_ENCRYPT`: `true`
   * `DB_TRUST_SERVER_CERTIFICATE`: `false`

### Parametri personalizzati

* **connectionTimeout**: Tempo massimo per la connessione (secondi);
* **requestTimeout**: Tempo massimo per una richiesta (secondi);
* **poolSize**: Numero di connessioni nel pool;
* **enableArithAbort**: Abilita l'interruzione in caso di errore aritmetico;
* **trustServerCertificate**: Accetta certificati SSL autofirmati.

```json
{
  "connectionTimeout": 15,
  "requestTimeout": 30,
  "poolSize": 10,
  "enableArithAbort": true,
  "options": {
    "trustServerCertificate": false,
    "enableArithAbort": true
  }
}
```

{% hint style="info" %}
**La gestione dello schema** è la pratica di definire, versionare e applicare la struttura dei tuoi dati
{% endhint %}
