Exponera REST API i API Management som en MCP-server

GÄLLER FÖR: Utvecklare | Grundläggande | Basic v2 | Standard | Standard v2 | Premium | Premium v2

I API Management kan du exponera ett REST API som hanteras i API Management som en MCP-server (Remote Model Context Protocol) med hjälp av den inbyggda AI-gatewayen. Exponera en eller flera av API-åtgärderna som verktyg som MCP-klienter kan anropa med hjälp av MCP-protokollet.

Azure API Management stöder även säker integrering med befintliga MCP-kompatibla servrar – verktygsservrar som finns utanför API Management. Mer information finns i Exponera en befintlig MCP-server.

Läs mer om:

Begränsningar

  • API Management stöder för närvarande MCP-serververktyg, men det stöder inte MCP-resurser eller uppmaningar.
  • API Management stöder för närvarande inte MCP-serverfunktioner på arbetsytor.

Förutsättningar

  • Om du inte redan har en API Management-instans slutför du följande snabbstart: Skapa en Azure API Management-instans. Instansen måste finnas på någon av de tjänstnivåer som stöder MCP-servrar.

  • Kontrollera att din instans hanterar ett HTTP-kompatibelt API (alla API:er som importeras som ett REST-API, inklusive API:er som importerats från Azure-resurser) som du vill exponera som en MCP-server. Information om hur du importerar ett exempel-API finns i Importera och publicera ditt första API.

    Anmärkning

    Andra API-typer i API Management som inte är HTTP-kompatibla kan inte exponeras som MCP-servrar.

  • Om du aktiverar diagnostikloggning via Application Insights eller Azure Monitor i det globala omfånget (alla API:er) för din API Management-tjänstinstans, anger du inställningen Antal nyttolastbyte att logga för Frontend-svar till 0. Den här inställningen förhindrar oavsiktlig loggning av svarskroppar i alla API:er och säkerställer att MCP-servrar fungerar korrekt. Om du vill logga nyttolaster selektivt för specifika API:er konfigurerar du inställningen individuellt i API-omfånget, vilket ger riktad kontroll över svarsloggning.

  • Om du vill testa MCP-servern kan du använda Visual Studio Code med åtkomst till GitHub Copilot eller verktyg som MCP Inspector.

Exponera API som en MCP-server

Följ dessa steg för att exponera ett hanterat REST API i API Management som en MCP-server:

  1. I Azure-portalen går du till din API Management-instans.
  2. I den vänstra menyn går du till API:er och väljer MCP-servrar>+ Skapa MCP-server.
  3. Välj Exponera ett API som en MCP-server.
  4. I Serverdelens MCP-server:
    1. Välj ett hanterat API som ska exponeras som en MCP-server.
    2. Välj en eller flera API-åtgärder som ska exponeras som verktyg. Du kan välja alla åtgärder eller endast specifika åtgärder.

      Anmärkning

      Du kan uppdatera de åtgärder som exponeras som verktyg senare på bladet Verktyg på MCP-servern.

  5. I Ny MCP-server:
    1. Ange ett namn för MCP-servern i API Management.
    2. Du kan också ange en beskrivning för MCP-servern.
  6. Välj Skapa.

Skärmbild av hur du skapar en MCP-server i portalen.

  • MCP-servern skapas och API-åtgärderna exponeras som verktyg.
  • MCP-servern visas på bladet MCP-servrar . Kolumnen Server-URL visar slutpunkten för MCP-servern för att anropa för testning eller i ett klientprogram.

Skärmbild av MCP-serverlistan i portalen.

Konfigurera principer för MCP-servern

Konfigurera en eller flera API Management-principer för att hantera MCP-servern. Principerna gäller för alla API-åtgärder som exponeras som verktyg på MCP-servern. Använd dessa principer för att styra åtkomst, autentisering och andra aspekter av verktygen.

Läs mer om att konfigurera principer:

Försiktighet

Kom inte åt svarstexten med hjälp av variabeln context.Response.Body i MCP-serverprinciper. Detta utlöser svarsbuffertning, vilket stör strömningsbeteendet som krävs av MCP-servrar och kan orsaka fel.

Följ dessa steg för att konfigurera principer för MCP-servern:

  1. I Azure-portalen går du till din API Management-instans.

  2. I den vänstra menyn går du till API:er och väljer MCP-servrar.

  3. Välj en MCP-server i listan.

  4. I den vänstra menyn, under MCP, väljer du Policys.

  5. I principredigeraren lägger du till eller redigerar de principer som du vill tillämpa på MCP-serverns verktyg. Definiera principerna i XML-format.

    Du kan till exempel lägga till en princip för att begränsa anrop till MCP-serverns verktyg (i det här exemplet ett anrop per 60 sekunder per MCP-session).

    <!-- 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>
    

    Skärmbild av principredigeraren för en MCP-server.

Anmärkning

API Management utvärderar principer som konfigurerats i det globala omfånget (alla API:er) innan principer utvärderas i MCP-serveromfånget.

Verifiera och använda MCP-servern

Använd en kompatibel LLM-agent (till exempel GitHub Copilot, Semantic Kernel eller Copilot Studio) eller en testklient (till exempel curl) för att anropa DEN API Management-värdbaserade MCP-slutpunkten. Se till att begäran innehåller lämpliga huvuden eller token och bekräfta lyckad routning och svar från MCP-servern.

Tips/Råd

Om du använder MCP Inspector för att testa en MCP-server som hanteras av API Management använder du version 0.9.0.

Lägg till MCP-servern i Visual Studio Code

I Visual Studio Code använder du GitHub Copilot-chatt i agentläge för att lägga till MCP-servern och använda verktygen. Bakgrund om MCP-servrar i Visual Studio Code finns i Använda MCP-servrar i VS Code.

Så här lägger du till MCP-servern i Visual Studio Code:

  1. Använd MCP: Lägg till serverkommando från kommandopaletten.

  2. När du uppmanas till det väljer du servertypen: HTTP (HTTP eller Server Skickade händelser).

  3. Ange SERVER-URL:en för MCP-servern i API Management. Till exempel https://<apim-service-name>.azure-api.net/<api-name>-mcp/mcp för MCP-slutpunkten.

  4. Ange ett valfritt server-ID .

  5. Välj om du vill spara konfigurationen i dina arbetsyteinställningar eller användarinställningar.

    • Inställningar för arbetsyta – Serverkonfigurationen sparas i en .vscode/mcp.json fil som endast är tillgänglig på den aktuella arbetsytan.

    • Användarinställningar – Serverkonfigurationen läggs till i den globala settings.json filen och är tillgänglig på alla arbetsytor. Konfigurationen ser ut ungefär så här:

    Skärmbild av MCP-servrar som konfigurerats i Visual Studio Code.

Lägg till fält i JSON-konfigurationen för inställningar, såsom autentiseringsheader. I följande exempel visas konfigurationen för en API Management-prenumerationsnyckel som skickas in i en header som ett indatavärde. Läs mer om konfigurationsformatet

Skärmbild av konfiguration av autentiseringshuvud för en MCP-server

Använda verktyg i agentläge

När du har lagt till en MCP-server i Visual Studio Code kan du använda verktyg i agentläge.

  1. I GitHub Copilot-chatten väljer du Agentläge och väljer knappen Verktyg för att se tillgängliga verktyg.

    Skärmbild av knappen Verktyg i chatten.

  2. Välj ett eller flera verktyg från MCP-servern som ska vara tillgängliga i chatten.

    Skärmbild av val av verktyg i Visual Studio Code.

  3. Ange en uppmaning i chatten för att anropa verktyget. Om du till exempel har valt ett verktyg för att hämta information om en beställning kan du fråga agenten om en beställning.

    Get information for order 2
    

    Välj Fortsätt för att se resultatet. Agenten använder verktyget för att anropa MCP-servern och returnerar resultatet i chatten.

    Skärmbild av chattresultat i Visual Studio Code.

Felsökning och kända problem

Problem Orsak Lösning
401 Unauthorized fel från serverdelen Auktoriseringsrubriken vidarebefordras inte Om det behövs använder du set-header principen för att manuellt bifoga token
API-anrop fungerar i API Management men misslyckas i agenten Felaktig bas-URL eller token saknas Dubbelkolla säkerhetsprinciper och slutpunkter
MCP-serverströmning misslyckas när diagnostikloggar är aktiverade Loggning av svarstext eller åtkomst till svarstext via principen stör MCP-transport Inaktivera loggning av svarstexter i omfånget Alla API:er – se Krav