Avvio rapido: Crea un server MCP ospitato nello spazio dei Connector (anteprima)

Importante

Questa funzionalità di anteprima è soggetta alle Condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure.

Durante l'anteprima, sono disponibili server MCP ospitati nelle seguenti regioni: West Central USA, Asia orientale, America centrale ed Europa settentrionale.

In questa guida introduttiva, crei un server Model Context Protocol (MCP) ospitato in Connector Namespace e lo connetti ai client MCP. Usare il selettore del server nella parte superiore di questa pagina per scegliere il server da distribuire.

I server MCP sono una risorsa di prima classe nel Connector Namespace. Connector Namespace è un servizio completamente gestito che ospita connettori, connessioni, trigger e server MCP.

Quando si crea un server MCP ospitato in un namespace, la piattaforma esegue un'immagine precompilata del server su risorse di calcolo dedicate di cui effettua automaticamente il provisioning. È possibile controllare la configurazione del server, le variabili di ambiente e i parametri. Lo spazio dei nomi gestisce l'hosting, il ridimensionamento e la gestione delle credenziali. Agenti di intelligenza artificiale come Copilot, agenti personalizzati o qualsiasi client compatibile con MCP individua e chiama gli strumenti del server usando il modello di connessione dello spazio dei nomi.

I server MCP ospitati differiscono dai server MCP gestiti, ovvero implementazioni gestite dalla piattaforma basate su connettori. Lo spazio dei nomi gestisce le definizioni degli strumenti e la configurazione per i server gestiti.

Distribuire utilizzando Azure Developer CLI

Il modo più semplice per distribuire un server SQL MCP è andare all'esempio azure-sql-mcp e seguire le istruzioni README per distribuire usando la CLI Azure Developer o azd. L'esempio contiene file biceps che permettono di fornire un Connector Namespace, un server SQL MCP, un database SQL e altre risorse Azure necessarie con un solo comando.

Se preferisci implementare un server SQL MCP e le risorse richieste dall'inizio alla fine, segui le istruzioni qui sotto.

Prerequisiti

Inizializzare il database SQL

  1. Nel portale di Azure passare al database SQL (non al server).

  2. Nel menu a sinistra selezionare Editor di query e accedere come amministratore del database.

  3. Selezionare Nuova query ed eseguire il comando seguente per eseguire il seeding del database:

    CREATE TABLE dbo.Books
    (
       Id int IDENTITY(1,1) PRIMARY KEY,
       Title nvarchar(200) NOT NULL
    );
    
    INSERT INTO dbo.Books (Title) VALUES (N'The little prince');
    INSERT INTO dbo.Books (Title) VALUES (N'Pride and prejudice');
    

Generare il file di configurazione DAB

Il server MCP ospitato da SQL è basato su Data API Builder (DAB), che fornisce un'API dati sicura sul database ed espone le relative entità (tabelle) come strumenti MCP. Il server richiede un file di configurazione DAB che definisce la connessione al database e le entità da esporre.

  1. Generare un file di configurazione DAB per il database e abilitare solo MCP:

    dab init --database-type "mssql" --host-mode "Development" --graphql.enabled false --rest.enabled false --connection-string "<your-sql-connection-string>"
    

    Poiché il server accede al database sottostante utilizzando un'identità gestita assegnata dal sistema (SAMI), la stringa di connessione dovrebbe assomigliarsi al seguente esempio:

    Server=<your-sql-server>.database.windows.net;Database=<your-database>;Authentication=Active Directory Default;Encrypt=True;TrustServerCertificate=False;
    
  2. Aggiungere l'entità Books e l'autorizzazione correlata:

    dab add Books --source "dbo.Books" --permissions "anonymous:*"
    

    Per informazioni dettagliate sulla configurazione di entità e autorizzazioni, vedere Autorizzazione del generatore di API dati.

    Ecco un file di configurazione di esempio:

    {
       "$schema": "https://github.com/Azure/data-api-builder/releases/download/v1.7.93/dab.draft.schema.json",
       "data-source": {
          "database-type": "mssql",
          "connection-string": "Server=<your-sql-server>.database.windows.net;Database=<your-database>;Authentication=Active Directory Default;Encrypt=True;TrustServerCertificate=False;",
          "options": {
             "set-session-context": false
          }
       },
       "runtime": {
          "rest": {
             "enabled": false,
             "path": "/api",
             "request-body-strict": true
          },
          "graphql": {
             "enabled": false,
             "path": "/graphql",
             "allow-introspection": true
          },
          "mcp": {
             "enabled": true,
             "path": "/mcp"
          },
          "host": {
             "cors": {
                "origins": [],
                "allow-credentials": false
             },
             "authentication": {
                "provider": "AppService"
             },
             "mode": "development"
          }
       },
       "entities": {
          "Books": {
             "source": {
                "object": "dbo.Books",
                "type": "table"
             },
             "graphql": {
                "enabled": true,
                "type": {
                   "singular": "Books",
                   "plural": "Books"
                }
             },
             "rest": {
                "enabled": true
             },
             "permissions": [
                {
                   "role": "anonymous",
                   "actions": [
                      {
                      "action": "*"
                      }
                   ]
                }
             ]
          }
       }
    }
    

Creare un server MCP ospitato

  1. Accedi al portale di Azure.

  2. Cercare la risorsa Connector Namespace.

  3. Selezionare Connetti allo spazio dei nomi per aprire il portale dello spazio dei nomi in una nuova scheda del browser.

  4. Quando vieni reindirizzato, accedi con l'account Microsoft che è associato allo spazio dei nomi.

  5. All'interno dell'istanza dello spazio dei nomi cercare la sezione connettore MCP e selezionare il pulsante + Crea.

  1. Cercare Playwright e selezionarlo per creare il server.
  1. Cerca SQL MCP Server e selezionalo per creare il server.

  2. Nella finestra di creazione selezionare Gestisci identità per il metodo di autenticazione in uscita.

  3. Caricare il file di configurazione DAB generato in precedenza.

  4. Fare clic su Crea.

Attendere che la connessione e il server necessari vengano predisposti e distribuiti. Non chiudere la finestra di dialogo Crea dopo la distribuzione. Si configurerà una risorsa di Application Insights per raccogliere i dati di telemetria dal server.

Abilitare il monitoraggio nel server

  1. Aprire un'altra scheda per ottenere il stringa di connessione della risorsa di Application Insights nel portale di Azure.

  2. Tornare al portale dello spazio dei nomi e selezionare Abilita monitoraggio.

  3. Incollare il stringa di connessione nella casella e selezionare Abilita.

  4. Selezionare Fine quando Application Insights è configurato.

Vieni automaticamente indirizzato alla pagina di panoramica del server distribuito, dove puoi trovare l'endpoint. In caso contrario, selezionare la scheda Connettori MCP nel menu a sinistra e trovare il server distribuito.

Concedere all'identità dello spazio dei nomi l'accesso al database.

Il server SQL ospitato usa l'istanza SAMI dello spazio dei nomi per accedere al database. È possibile abilitare un SAMI durante la creazione dello spazio dei nomi.

Se non hai abilitato un SAMI durante la creazione, devi abilitarlo accedendo all'istanza del namespace nel portale Web. Nel menu a sinistra individuare la scheda Identità . Impostare l'interruttore Assegnato dal sistema su e salvare l'aggiornamento.

Passare al database SQL nel portale di Azure, aprire l'editor di query ed eseguire il comando seguente per concedere l'accesso all'identità gestita:

CREATE USER [<your-connector-namespace-name>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<your-connector-namespace-name>];
ALTER ROLE db_datawriter ADD MEMBER [<your-connector-namespace-name>];
GRANT VIEW DEFINITION TO [<your-connector-namespace-name>];

Sostituisci <your-connector-namespace-name> con il nome della risorsa Namespace del connettore.

Connettersi tramite GitHub Copilot in Visual Studio Code

  1. Per connettere il server MCP ospitato a GitHub Copilot in Visual Studio Code, aggiungere la configurazione del server alle impostazioni mcp:

    {
      "servers": {
        "my-hosted-server": {
          "url": "<your-mcp-endpoint-url>",
          "type": "http"
        }
      }
    }
    

    Sostituire <your-mcp-endpoint-url> con l'URL dell'endpoint copiato dalla pagina Panoramica del server.

  2. Selezionare Avvia sopra il nome del server. Viene chiesto di eseguire l'autenticazione con Microsoft. Accedere con l'indirizzo di posta elettronica usato per accedere al portale di Azure.

  3. Verificare che il numero di strumenti disponibili venga visualizzato sopra il nome del server.

  1. Apri la modalità agente di Copilot e chiedi: "Qual è la pizzeria più vicina a 11 Times Square?"
  1. Apri la modalità agente di Copilot e chiedi "Quali tabelle sono disponibili?"

Connettersi da MCP Inspector

  1. Dal terminale eseguire:

    az login
    
  2. Ottenere un token di accesso dalla az login sessione per connettersi al server:

    MCP_TOKEN=$(az account get-access-token --resource https://apihub.azure.com --query accessToken -o tsv)
    
  3. Effettuare una chiamata al server per ottenere un elenco di strumenti:

    npx @modelcontextprotocol/inspector --cli \
    "<your-mcp-endpoint-url>" \
    --transport http \
    --method tools/list \
    --header "Authorization: Bearer $MCP_TOKEN"
    
  1. Chiamare uno strumento specifico. Ad esempio, il comando seguente chiama lo browser_navigate strumento:

    npx @modelcontextprotocol/inspector --cli \
    "<your-mcp-endpoint-url>" \
    --transport http \
    --method tools/call \
    --tool-name browser_navigate \
    --tool-arg url="https://www.google.com/search?q=pizza+near+11+Times+Square+New+York" \
    --header "Authorization: Bearer $MCP_TOKEN"
    
  1. Chiamare uno strumento specifico. Ad esempio, il comando seguente chiama lo describe_entities strumento per elencare le entità disponibili:

    npx @modelcontextprotocol/inspector --cli \
    "<your-mcp-endpoint-url>" \
    --transport http \
    --method tools/call \
    --header "Authorization: Bearer $MCP_TOKEN" \
    --tool-name describe_entities \
    --tool-arg 'nameOnly=true'
    
  2. Chiama lo strumento read_records per recuperare i record di un'entità (Books):

    npx @modelcontextprotocol/inspector --cli \
    "<your-mcp-endpoint-url>" \
    --transport http \
    --method tools/call \
    --header "Authorization: Bearer $MCP_TOKEN" \
    --tool-name read_records \
    --tool-arg 'entity=Books' \
    --tool-arg 'first=2'
    

Importante

Il passaggio manuale dei token di accesso è adatto solo per lo sviluppo e il test locali. Per gli scenari di produzione, usare identità gestite o flussi OAuth per acquisire automaticamente i token.

Visualizzare i log del server

  1. Passare al portale di Azure e trovare la risorsa di Application Insights configurata con il server MCP.

  2. Nel menu a sinistra, trova Investiga>Cerca.

  3. Impostare il filtro Ora locale in alto sugli ultimi 30 minuti. Visualizzare i log come tracce o singoli elementi.

Risolvere i problemi relativi a SQL Server

Se il server MCP SQL ospitato non si connette o restituisce dati come previsto, controllare gli elementi seguenti:

  • File di configurazione DAB. Verificare che il file di configurazione DAB caricato sia valido, usi il stringa di connessione corretto e definisca le entità e le autorizzazioni che si prevede di esporre.
  • Identità gestita assegnata dal sistema. Assicurarsi che un SAMI sia abilitato nello spazio dei nomi. Vai all'istanza dello spazio dei nomi nel portale Web, seleziona la scheda Identità e verifica che Assegnata dal sistema sia impostato su On.
  • Accesso al database. Assicurarsi che all'identità dello spazio dei nomi sia concesso l'accesso al database. Vedere Concedere all'identità dello spazio dei nomi l'accesso al database.