Quickstart: Maak een gehoste MCP-server aan in Connector Namespace (preview)

Important

Deze preview-functie is onderhevig aan de aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews.

Tijdens de preview zijn gehoste MCP-servers beschikbaar in de volgende regio's: West-Centraal VS, Oost-Azië, Centraal-VS en Noord-Europa.

In deze quickstart maak je een gehoste Model Context Protocol (MCP)-server aan in Connector Namespace en verbind je deze met MCP-clients. Gebruik de serverselector boven aan deze pagina om de server te kiezen die u wilt implementeren.

MCP-servers zijn een eersteklas bron in de Connector Namespace. Connector Namespace is een volledig beheerde service waarin connectors, verbindingen, triggers en MCP-servers worden gehost.

Wanneer u in een naamruimte een gehoste MCP-server maakt, voert het platform een vooraf gebouwde serverimage uit op toegewezen rekenresources die het inricht. U beheert de serverconfiguratie, omgevingsvariabelen en parameters. De naamruimte verzorgt hosting, schaling en het beheer van inloggegevens. AI-agents zoals Copilot, aangepaste agents of elke client die MCP ondersteunt, ontdekken en roepen de hulpprogramma's op de server aan via het verbindingsmodel van de naamruimte.

Gehoste MCP-servers verschillen van beheerde MCP-servers, die platformbeheerde implementaties zijn die zijn gebouwd op connectors. De naamruimte verwerkt hulpprogrammadefinities en configuratie voor beheerde servers.

Implementeren met behulp van Azure Developer CLI

De makkelijkste manier om een SQL MCP-server te deployen is door naar het azure-sql-mcp voorbeeld te gaan en README-instructies te volgen om te deployen met de Azure Developer CLI of azd. Het voorbeeld bevat bicep-bestanden waarmee je een Connector Namespace, SQL MCP-server, SQL-database en andere benodigde Azure-bronnen met slechts één commando kunt provisioneren.

Als je liever stapsgewijs een SQL MCP-server en benodigde resources van begin tot eind wilt uitrollen, volg dan de onderstaande instructies.

Prerequisites

Vul de SQL-database met initiële gegevens.

  1. Ga in de Azure-portal naar uw SQL-database (niet de server).

  2. Selecteer query-editor in het linkermenu en meld u aan als databasebeheerder.

  3. Selecteer Nieuwe query en voer de volgende opdracht uit om de database te seeden:

    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');
    

Het DAB-configuratiebestand genereren

De DOOR SQL gehoste MCP-server is gebaseerd op Data API Builder (DAB), dat een beveiligde gegevens-API biedt voor uw database en de entiteiten (tabellen) beschikbaar maakt als MCP-hulpprogramma's. De server vereist een DAB-configuratiebestand dat de databaseverbinding definieert en de entiteiten die beschikbaar moeten worden gemaakt.

  1. Genereer een DAB-configuratiebestand voor uw database en schakel alleen MCP in:

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

    Omdat de server toegang krijgt tot de onderliggende database via een systeem-toegewezen beheerde identiteit (SAMI), zou de verbindingsreeks er als volgt uit moeten zien:

    Server=<your-sql-server>.database.windows.net;Database=<your-database>;Authentication=Active Directory Default;Encrypt=True;TrustServerCertificate=False;
    
  2. Voeg de entiteit Books en de gerelateerde machtiging toe:

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

    Zie Autorisatie voor Data API Builder voor meer informatie over het configureren van entiteiten en machtigingen.

    Hier volgt een voorbeeld van een configuratiebestand:

    {
       "$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": "*"
                      }
                   ]
                }
             ]
          }
       }
    }
    

Een gehoste MCP-server maken

  1. Meld u aan bij het Azure-portaal.

  2. Zoek naar uw Connector Namespace-resource.

  3. Selecteer Verbinding maken met naamruimte om de naamruimteportal te openen in een nieuw browsertabblad.

  4. Wanneer u wordt omgeleid, meldt u zich aan met uw Microsoft-account die is gekoppeld aan de naamruimte.

  5. Zoek in de naamruimte-instantie naar de sectie MCP-connector en selecteer de knop + Maken.

  1. Zoek naar Playwright en selecteer het om de server aan te maken.
  1. Zoek op SQL MCP Server en selecteer deze om de server te maken.

  2. Selecteer in het venster Maken Identiteit beheren als uitgaande verificatiemethode.

  3. Upload het DAB-configuratiebestand dat eerder is gegenereerd.

  4. Klik op Creëren.

Wacht tot de vereiste verbinding en server zijn ingericht en geïmplementeerd. Sluit het dialoogvenster Maken niet na de implementatie. U stelt een Application Insights-resource in om telemetrie van uw server te verzamelen.

Bewaking op de server inschakelen

  1. Open een ander tabblad om de verbindingsreeks van uw Application Insights-resource op te halen in de Azure-portal.

  2. Ga terug naar de naamruimteportal en selecteer Bewaking inschakelen.

  3. Plak de verbindingsreeks in het vak en selecteer Inschakelen.

  4. Selecteer Gereed wanneer Application Insights is geconfigureerd.

Je wordt automatisch doorgestuurd naar de Overzichtspagina van de gedeployeerde server, waar je het eindpunt kunt vinden. Zo niet, selecteert u het tabblad MCP-connectors in het linkermenu en zoekt u de server die u hebt geïmplementeerd.

De naamruimte-id toegang verlenen tot uw database

De gehoste SQL-server gebruikt de SAMI van de naamruimte voor toegang tot uw database. U kunt een SAMI inschakelen tijdens het maken van de naamruimte.

Als u tijdens het maken geen SAMI hebt ingeschakeld, moet u deze inschakelen door in het webportaal naar uw naamruimte-instantie te gaan. Zoek in het linkermenu het tabblad Identiteit . Zet de door het systeem toegewezen wisselknop op Aan en sla de update op.

Ga naar uw SQL-database in de Azure-portal, open query-editor en voer de volgende opdracht uit om toegang te verlenen tot de beheerde identiteit:

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>];

Vervang <your-connector-namespace-name> door de naam van jouw Connector Namespace-resource.

Verbinding maken vanuit GitHub Copilot in Visual Studio Code

  1. Als u uw gehoste MCP-server wilt verbinden met GitHub Copilot in Visual Studio Code, voegt u de serverconfiguratie toe aan uw MCP-instellingen:

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

    Vervang door <your-mcp-endpoint-url> de eindpunt-URL die u hebt gekopieerd van de overzichtspagina van de server.

  2. Selecteer Starten boven de servernaam. U wordt gevraagd om te verifiëren met Microsoft. Meld u aan met het e-mailadres dat u hebt gebruikt om u aan te melden bij de Azure-portal.

  3. Controleer of het aantal beschikbare hulpprogramma's boven de servernaam wordt weergegeven.

  1. Open Copilot-agent modus en vraag 'Wat is de dichtstbijzijnde pizzeria tot 11 Times Square?'
  1. Open Copilot-agent modus en vraag 'Welke tabellen zijn beschikbaar?'

Verbinding maken vanuit MCP Inspector

  1. Voer vanuit de terminal het volgende uit:

    az login
    
  2. Haal een toegangstoken op uit uw az login sessie om verbinding te maken met de server:

    MCP_TOKEN=$(az account get-access-token --resource https://apihub.azure.com --query accessToken -o tsv)
    
  3. Maak een aanroep naar de server om een lijst met hulpprogramma's op te halen:

    npx @modelcontextprotocol/inspector --cli \
    "<your-mcp-endpoint-url>" \
    --transport http \
    --method tools/list \
    --header "Authorization: Bearer $MCP_TOKEN"
    
  1. Een specifiek hulpprogramma aanroepen. Met de volgende opdracht wordt het hulpprogramma browser_navigate bijvoorbeeld aangeroepen:

    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. Een specifiek hulpprogramma aanroepen. Met de volgende opdracht wordt bijvoorbeeld het describe_entities hulpprogramma aanroepen om beschikbare entiteiten weer te geven:

    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. Roep het read_records hulpprogramma aan om records op te halen uit een entiteit (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'
    

Important

Het handmatig doorgeven van toegangstokens is alleen geschikt voor lokale ontwikkeling en tests. Gebruik voor productiescenario's beheerde identiteiten of OAuth-stromen om automatisch tokens te verkrijgen.

Serverlogboeken weergeven

  1. Ga naar de Azure-portal en zoek de Application Insights-resource die u hebt geconfigureerd met de MCP-server.

  2. Zoek in het menu aan de linkerkant Investigate>Search.

  3. Stel het filter Lokale tijd bovenaan in op de afgelopen 30 minuten. Bekijk de logboeken als traceringen of afzonderlijke items.

Problemen met de SQL-server oplossen

Als uw gehoste SQL MCP-server geen verbinding maakt of gegevens retourneert zoals verwacht, controleert u de volgende items:

  • DAB-configuratiebestand. Controleer of het geüploade DAB-configuratiebestand geldig is, gebruikt de juiste verbindingsreeks en definieert de entiteiten en machtigingen die u verwacht beschikbaar te maken.
  • Door het systeem toegewezen beheerde identiteit. Zorg ervoor dat een SAMI is ingeschakeld voor de naamruimte. Ga naar uw naamruimteexemplaren in de webportal, selecteer het tabblad Identiteit en controleer of Systeem toegewezen is ingesteld op Aan.
  • Databasetoegang. Zorg ervoor dat de naamruimte-identiteit toegang krijgt tot de database. Zie De naamruimte-identiteit toegang geven tot uw database.