Delen via


Een bestaande MCP-server beschikbaar maken en beheren

VAN TOEPASSING OP: Ontwikkelaar | Basic | Basic v2 | Standaard | Standard v2 | Premium | Premium v2

In dit artikel wordt beschreven hoe u API Management gebruikt om een bestaande MCP-server (Remote Model Context Protocol) beschikbaar te maken en te beheren: een hulpprogrammaserver die buiten API Management wordt gehost. Stel de hulpprogramma's van de server beschikbaar en beheer deze via API Management, zodat MCP-clients deze kunnen aanroepen met behulp van het MCP-protocol.

Voorbeeldscenario's zijn onder andere:

  • Proxy LangChain - of LangServe-hulpprogrammaservers via API Management met verificatie per server en frequentielimieten.
  • Azure Logic Apps-hulpprogramma's veilig beschikbaar maken voor copilots met behulp van IP-filtering en OAuth.
  • Centraliseer MCP-serverhulpprogramma's van Azure Functions en opensource-runtimes in Azure API Center.
  • Schakel GitHub Copilot, Claude by Antropic of ChatGPT in om veilig te communiceren met hulpprogramma's in uw hele onderneming.

API Management biedt ook ondersteuning voor MCP-servers die systeemeigen beschikbaar zijn in API Management vanuit beheerde REST API's. Zie Een REST API beschikbaar maken als een MCP-server voor meer informatie.

Meer informatie over:

Beperkingen

  • De externe MCP-server moet voldoen aan de MCP-versie 2025-06-18 of hoger. De server kan het volgende ondersteunen:

  • API Management biedt momenteel ondersteuning voor MCP-serverhulpprogramma's, maar biedt geen ondersteuning voor MCP-resources of -prompts.

  • API Management biedt momenteel geen ondersteuning voor MCP-servermogelijkheden in werkruimten.

Vereiste voorwaarden

  • Als u nog geen API Management-exemplaar hebt, voltooit u de volgende quickstart: Een Azure API Management-exemplaar maken. Het exemplaar moet zich in een van de servicelagen bevinden die ONDERSTEUNING bieden voor MCP-servers.

  • Toegang tot een externe MCP-compatibele server (bijvoorbeeld gehost in Azure Logic Apps, Azure Functions, LangServe of andere platforms).

  • De juiste referenties voor de MCP-server (zoals OAuth 2.0-clientreferenties of API-sleutels, afhankelijk van de server) voor beveiligde toegang.

  • Als u diagnostische logboekregistratie via Application Insights of Azure Monitor inschakelt op globaal bereik (alle API's) voor uw API Management-exemplaar, stelt u de instelling voor het aantal bytes van de payload dat gelogd moet worden voor het front-endantwoord in op 0. Met deze instelling voorkomt u onbedoelde logboekregistratie van antwoordteksten in alle API's en zorgt u voor een goede werking van MCP-servers. Om payloads selectief te registreren voor specifieke API's, configureert u de instelling afzonderlijk op de API-scope, waardoor gerichte controle over het registreren van antwoorden mogelijk is.

  • Als u de MCP-server wilt testen, gebruikt u Visual Studio Code met toegang tot GitHub Copilot of een hulpprogramma zoals MCP Inspector.

Een bestaande MCP-server beschikbaar maken

Volg deze stappen om een bestaande MCP-server beschikbaar te maken in API Management:

  1. Ga in Azure Portal naar uw API Management-exemplaar.
  2. Selecteer in het linkermenu, onder API's, MCP-servers>+ MCP-server maken.
  3. Selecteer Een bestaande MCP-server beschikbaar maken.
  4. In back-end MCP-server:
    1. Voer de bestaande BASIS-URL van de MCP-server in. Bijvoorbeeld https://learn.microsoft.com/api/mcp voor de Microsoft Learn MCP-server.
    2. In Transporttype is Streamable HTTP standaard geselecteerd.
  5. In de nieuwe MCP-server:
    1. Voer een naam in voor de MCP-server in API Management.
    2. Voer in het basispad een routevoorvoegsel in voor hulpprogramma's. Bijvoorbeeld: mytools.
    3. Voer desgewenst een beschrijving in voor de MCP-server.
  6. Klik op Creëren.

Schermopname van het maken van een MCP-server in de portal.

  • De MCP-server wordt gemaakt en de bewerkingen van de externe server worden weergegeven als hulpprogramma's.
  • De MCP-server wordt weergegeven in het deelvenster MCP-servers . In de kolom Server-URL ziet u de URL van de MCP-server die moet worden aangeroepen voor testen of binnen een clienttoepassing.

Schermopname van de lijst met MCP-servers in de portal.

Belangrijk

Op dit moment worden hulpprogramma's van de bestaande MCP-server niet weergegeven in API Management. U moet alle hulpprogramma's registreren en configureren op de bestaande externe MCP-server.

Beleid configureren voor de MCP-server

Configureer een of meer API Management-beleidsregels om de MCP-server te beheren. Het beleid is van toepassing op alle API-bewerkingen die beschikbaar worden gesteld als hulpprogramma's op de MCP-server. Gebruik dit beleid om de toegang, verificatie en andere aspecten van de hulpprogramma's te beheren.

Meer informatie over het configureren van beleid:

Waarschuwing

Vermijd het gebruiken van de context.Response.Body-variabele om toegang te krijgen tot de hoofdtekst van het antwoord binnen MCP-serverbeleid. Als u dit doet, wordt reactiebuffering geactiveerd, waardoor het streaminggedrag dat door MCP-servers is vereist, wordt beïnvloed en deze mogelijk defect raakt.

Voer de volgende stappen uit om beleidsregels voor de MCP-server te configureren:

  1. Ga in Azure Portal naar uw API Management-exemplaar.

  2. Selecteer MCP-servers in het linkermenu onder API's.

  3. Selecteer een MCP-server in de lijst.

  4. Selecteer Beleid in het linkermenu onder MCP.

  5. Voeg in de beleidseditor het beleid toe of bewerk het beleid dat u wilt toepassen op de hulpprogramma's van de MCP-server. Definieer het beleid in XML-indeling.

    U kunt bijvoorbeeld een beleid toevoegen om aanroepen te beperken tot de hulpprogramma's van de MCP-server (in dit voorbeeld één aanroep per 60 seconden per MCP-sessie).

    <!-- Rate limit tool calls by Mcp-Session-Id header -->
    <set-variable name="body" value="@(context.Request.Body.As<string>(preserveContent: true))" />
    <choose>
        <when condition="@(
            Newtonsoft.Json.Linq.JObject.Parse((string)context.Variables["body"])["method"] != null 
            && Newtonsoft.Json.Linq.JObject.Parse((string)context.Variables["body"])["method"].ToString() == "tools/call"
        )">
        <rate-limit-by-key 
            calls="1" 
            renewal-period="60" 
            counter-key="@(
                context.Request.Headers.GetValueOrDefault("Mcp-Session-Id", "unknown")
            )" />
        </when>
    </choose>
    

    Schermopname van de beleidseditor voor een MCP-server.

Opmerking

API Management evalueert beleidsregels die zijn geconfigureerd op het globale bereik (alle API's) voordat het beleid evalueert op het MCP-serverbereik.

De MCP-server valideren en gebruiken

Gebruik een compatibele LLM-agent (zoals GitHub Copilot, Semantic Kernel of Copilot Studio) of een testclient (zoals curl) om het DOOR API Management gehoste MCP-eindpunt aan te roepen. Zorg ervoor dat de aanvraag de juiste headers of tokens bevat en controleer of de routering en het antwoord van de MCP-server is geslaagd.

Aanbeveling

Als u de MCP Inspector gebruikt om een MCP-server te testen die wordt beheerd door API Management, gebruikt u versie 0.9.0.

De MCP-server toevoegen in Visual Studio Code

Gebruik in Visual Studio Code GitHub Copilot-chat in de agentmodus om de MCP-server toe te voegen en de hulpprogramma's te gebruiken. Zie MCP-servers gebruiken in VS Code voor achtergrondinformatie over MCP-servers in Visual Studio Code.

De MCP-server toevoegen in Visual Studio Code:

  1. Gebruik de opdracht MCP: Server toevoegen vanuit het opdrachtpalet.

  2. Wanneer u hierom wordt gevraagd, selecteert u het servertype: HTTP (HTTP- of Server Sent Events).

  3. Voer de server-URL van de MCP-server in API Management in. Bijvoorbeeld https://<apim-service-name>.azure-api.net/<api-name>-mcp/mcp voor het MCP-eindpunt.

  4. Voer een server-id van uw keuze in.

  5. Selecteer of u de configuratie wilt opslaan in uw werkruimte-instellingen of gebruikersinstellingen.

    • Werkruimte-instellingen : de serverconfiguratie wordt alleen opgeslagen in een .vscode/mcp.json bestand dat alleen beschikbaar is in de huidige werkruimte.

    • Gebruikersinstellingen : de serverconfiguratie wordt toegevoegd aan uw globale settings.json bestand en is beschikbaar in alle werkruimten. De configuratie ziet er ongeveer als volgt uit:

    Schermopname van MCP-servers die zijn geconfigureerd in Visual Studio Code.

Voeg velden toe aan de JSON-configuratie voor instellingen zoals verificatieheader. In het volgende voorbeeld ziet u de configuratie voor een API Management-sleutel die in een header als invoerwaarde is doorgegeven. Meer informatie over de configuratie-indeling

Schermopname van de configuratie van de verificatieheader voor een MCP-server

Hulpprogramma's gebruiken in agentmodus

Nadat u een MCP-server hebt toegevoegd in Visual Studio Code, kunt u hulpprogramma's gebruiken in de agentmodus.

  1. In GitHub Copilot-chat selecteert u de agentmodus en selecteert u de knop Extra om de beschikbare hulpprogramma's weer te geven.

    Schermopname van de knop Hulpmiddelen in chat.

  2. Selecteer een of meer hulpprogramma's van de MCP-server die beschikbaar zijn in de chat.

    Schermopname van het selecteren van hulpprogramma's in Visual Studio Code.

  3. Voer een prompt in de chat in om het hulpprogramma aan te roepen. Als u bijvoorbeeld een hulpprogramma hebt geselecteerd om informatie over een bestelling op te halen, kunt u de agent vragen om een order.

    Get information for order 2
    

    Selecteer Doorgaan om de resultaten weer te geven. De agent gebruikt het hulpprogramma om de MCP-server aan te roepen en retourneert de resultaten in de chat.

    Schermopname van chatresultaten in Visual Studio Code.

Probleemoplossing en veelvoorkomende problemen

Probleem Oorzaak Solution
401 Unauthorized fout van back-end Autorisatieheader niet doorgestuurd Gebruik zo nodig set-header beleidsregel om het token handmatig te koppelen
API-aanroep werkt in API Management, maar mislukt in agent Onjuiste basis-URL of ontbrekend token Beveiligingsbeleid en eindpunt controleren
STREAMING van MCP-server mislukt wanneer diagnostische logboeken zijn ingeschakeld Logboekregistratie van antwoordtekst of toegang tot antwoordbody via beleid interfereert met MCP-transport Logboekregistratie van antwoordtekst uitschakelen in het bereik Alle API's - zie Vereisten