Skip to content

Latest commit

 

History

History
200 lines (129 loc) · 11 KB

File metadata and controls

200 lines (129 loc) · 11 KB

Prípadová štúdia: Zverejnenie REST API v API Management ako MCP server

Azure API Management je služba, ktorá poskytuje bránu nad vašimi API koncovými bodmi. Funguje tak, že Azure API Management pôsobí ako proxy pred vašimi API a rozhoduje, čo robiť s prichádzajúcimi požiadavkami.

Použitím tejto služby získate množstvo funkcií, ako napríklad:

  • Bezpečnosť – môžete využiť všetko od API kľúčov, JWT až po spravovanú identitu.
  • Obmedzenie rýchlosti – skvelá funkcia, ktorá umožňuje rozhodnúť, koľko volaní prejde za určitú časovú jednotku. To pomáha zabezpečiť skvelý zážitok pre všetkých používateľov a zároveň chráni vašu službu pred preťažením požiadavkami.
  • Škálovanie a vyvažovanie záťaže – môžete nastaviť viacero koncových bodov na vyvažovanie záťaže a rozhodnúť, ako sa má záťaž vyvažovať.
  • AI funkcie ako sémantické cachovanie, limit tokenov, monitorovanie tokenov a ďalšie. Tieto funkcie zlepšujú odozvu a pomáhajú vám mať prehľad o spotrebe tokenov. Prečítajte si viac tu.

Prečo MCP + Azure API Management?

Model Context Protocol (MCP) sa rýchlo stáva štandardom pre agentické AI aplikácie a spôsob, ako konzistentne sprístupniť nástroje a dáta. Azure API Management je prirodzenou voľbou, keď potrebujete „spravovať“ API. MCP servery často integrujú iné API na riešenie požiadaviek na nástroje. Preto kombinácia Azure API Management a MCP dáva veľký zmysel.

Prehľad

V tomto konkrétnom prípade sa naučíme, ako zverejniť API koncové body ako MCP server. Týmto spôsobom môžeme tieto koncové body jednoducho začleniť do agentickej aplikácie a zároveň využiť funkcie Azure API Management.

Kľúčové funkcie

  • Vyberiete si metódy koncových bodov, ktoré chcete zverejniť ako nástroje.
  • Dodatočné funkcie závisia od toho, čo nakonfigurujete v sekcii politiky pre vaše API. Tu vám však ukážeme, ako pridať obmedzenie rýchlosti.

Predkrok: Import API

Ak už máte API v Azure API Management, môžete tento krok preskočiť. Ak nie, pozrite si tento odkaz: importovanie API do Azure API Management.

Zverejnenie API ako MCP server

Na zverejnenie API koncových bodov postupujte podľa týchto krokov:

  1. Prejdite na Azure Portal na nasledujúcu adresu: https://portal.azure.com/?Microsoft_Azure_ApiManagement=mcp. Prejdite na svoju inštanciu API Management.

  2. V ľavom menu vyberte APIs > MCP Servers > + Create new MCP Server.

  3. V sekcii API vyberte REST API, ktoré chcete zverejniť ako MCP server.

  4. Vyberte jednu alebo viac operácií API, ktoré chcete zverejniť ako nástroje. Môžete vybrať všetky operácie alebo len konkrétne operácie.

    Výber metód na zverejnenie

  5. Kliknite na Create.

  6. Prejdite do menu APIs a MCP Servers, kde by ste mali vidieť nasledujúce:

    Zobrazenie MCP servera v hlavnom paneli

    MCP server je vytvorený a operácie API sú zverejnené ako nástroje. MCP server je uvedený v paneli MCP Servers. Stĺpec URL zobrazuje koncový bod MCP servera, ktorý môžete použiť na testovanie alebo v klientských aplikáciách.

Voliteľné: Konfigurácia politík

Azure API Management má základný koncept politík, kde nastavujete rôzne pravidlá pre vaše koncové body, napríklad obmedzenie rýchlosti alebo sémantické cachovanie. Tieto politiky sú vytvárané v XML.

Tu je postup, ako nastaviť politiku na obmedzenie rýchlosti pre váš MCP server:

  1. V portáli, v sekcii APIs, vyberte MCP Servers.

  2. Vyberte MCP server, ktorý ste vytvorili.

  3. V ľavom menu, v sekcii MCP, vyberte Policies.

  4. V editore politík pridajte alebo upravte politiky, ktoré chcete aplikovať na nástroje MCP servera. Politiky sú definované vo formáte XML. Napríklad môžete pridať politiku na obmedzenie volaní na nástroje MCP servera (v tomto príklade 5 volaní za 30 sekúnd na jednu IP adresu klienta). Tu je XML, ktoré spôsobí obmedzenie rýchlosti:

     <rate-limit-by-key calls="5" 
       renewal-period="30" 
       counter-key="@(context.Request.IpAddress)" 
       remaining-calls-variable-name="remainingCallsPerIP" 
    />

    Tu je obrázok editora politík:

    Editor politík

Vyskúšajte to

Uistime sa, že náš MCP server funguje podľa očakávaní.

Na tento účel použijeme Visual Studio Code a GitHub Copilot v režime Agent. Pridáme MCP server do súboru mcp.json. Týmto spôsobom bude Visual Studio Code fungovať ako klient s agentickými schopnosťami a koncoví používatelia budú môcť zadať výzvu a interagovať s daným serverom.

Pozrime sa, ako pridať MCP server vo Visual Studio Code:

  1. Použite príkaz MCP: Add Server z Command Palette.

  2. Keď budete vyzvaní, vyberte typ servera: HTTP (HTTP alebo Server Sent Events).

  3. Zadajte URL MCP servera v API Management. Príklad: https://.azure-api.net/-mcp/sse (pre SSE endpoint) alebo https://.azure-api.net/-mcp/mcp (pre MCP endpoint), všimnite si rozdiel medzi transportmi /sse alebo /mcp.

  4. Zadajte ID servera podľa vášho výberu. Táto hodnota nie je dôležitá, ale pomôže vám zapamätať si, o aký server ide.

  5. Vyberte, či chcete konfiguráciu uložiť do nastavení pracovného priestoru alebo používateľských nastavení.

  • Nastavenia pracovného priestoru – Konfigurácia servera sa uloží do súboru .vscode/mcp.json, ktorý je dostupný iba v aktuálnom pracovnom priestore.

    mcp.json

    "servers": {
        "APIM petstore" : {
            "type": "sse",
            "url": "url-to-mcp-server/sse"
        }
    }

    alebo ak si vyberiete streaming HTTP ako transport, bude to mierne odlišné:

    "servers": {
        "APIM petstore" : {
            "type": "http",
            "url": "url-to-mcp-server/mcp"
        }
    }
  • Používateľské nastavenia – Konfigurácia servera sa pridá do vášho globálneho súboru settings.json a je dostupná vo všetkých pracovných priestoroch. Konfigurácia vyzerá podobne ako nasledujúce:

    Používateľské nastavenie

  1. Tiež musíte pridať konfiguráciu, hlavičku na správne overenie voči Azure API Management. Používa sa hlavička s názvom Ocp-Apim-Subscription-Key.

    • Tu je postup, ako ju pridať do nastavení:

    Pridanie hlavičky na autentifikáciu, toto spôsobí, že sa zobrazí výzva na zadanie hodnoty API kľúča, ktorú nájdete v Azure Portal pre vašu inštanciu Azure API Management.

    • Ak ju chcete pridať do mcp.json, môžete ju pridať takto:
    "inputs": [
      {
        "type": "promptString",
        "id": "apim_key",
        "description": "API Key for Azure API Management",
        "password": true
      }
    ]
    "servers": {
        "APIM petstore" : {
            "type": "http",
            "url": "url-to-mcp-server/mcp",
            "headers": {
                "Ocp-Apim-Subscription-Key": "Bearer ${input:apim_key}"
            }
        }
    }

Použitie režimu Agent

Teraz sme všetko nastavili buď v nastaveniach, alebo v .vscode/mcp.json. Poďme to vyskúšať.

Mala by sa zobraziť ikona nástrojov, kde sú uvedené nástroje z vášho servera:

Nástroje zo servera

  1. Kliknite na ikonu nástrojov a mali by ste vidieť zoznam nástrojov, ako je tento:

    Nástroje

  2. Zadajte výzvu do chatu na vyvolanie nástroja. Napríklad, ak ste vybrali nástroj na získanie informácií o objednávke, môžete sa agenta opýtať na objednávku. Tu je príklad výzvy:

    get information from order 2
    

    Teraz by sa mala zobraziť ikona nástrojov, ktorá vás vyzve na pokračovanie v spustení nástroja. Vyberte možnosť pokračovať v spustení nástroja, mali by ste teraz vidieť výstup, ako je tento:

    Výsledok z výzvy

    To, čo vidíte vyššie, závisí od toho, aké nástroje ste nastavili, ale myšlienka je, že dostanete textovú odpoveď, ako je uvedené vyššie.

Referencie

Tu sa môžete dozvedieť viac:

Upozornenie:
Tento dokument bol preložený pomocou služby na automatický preklad Co-op Translator. Hoci sa snažíme o presnosť, upozorňujeme, že automatické preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre dôležité informácie odporúčame profesionálny ľudský preklad. Nezodpovedáme za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.