Skip to content

Latest commit

 

History

History
202 lines (127 loc) · 11 KB

File metadata and controls

202 lines (127 loc) · 11 KB

Kajian Kes: Dedahkan REST API dalam Pengurusan API sebagai pelayan MCP

Azure API Management, adalah perkhidmatan yang menyediakan Gateway di atas Titik Akhir API anda. Cara ia berfungsi ialah Azure API Management bertindak seperti proksi di hadapan API anda dan boleh memutuskan apa yang perlu dilakukan dengan permintaan masuk.

Dengan menggunakannya, anda menambah pelbagai ciri seperti:

  • Keselamatan, anda boleh menggunakan segala-galanya dari kunci API, JWT kepada pengenalan terurus.
  • Had kadar, ciri hebat adalah keupayaan untuk memutuskan berapa banyak panggilan yang dibenarkan dalam satu unit masa tertentu. Ini membantu memastikan semua pengguna mempunyai pengalaman yang baik dan juga memastikan perkhidmatan anda tidak terlalu terbeban dengan permintaan.
  • Pengimbangan beban & skala. Anda boleh menyediakan beberapa titik akhir untuk mengimbangkan beban dan anda juga boleh memutuskan bagaimana untuk "mengimbangkan beban".
  • Ciri AI seperti caching semantik, had token dan pemantauan token dan banyak lagi. Ini adalah ciri hebat yang meningkatkan responsiviti serta membantu anda mengawal perbelanjaan token anda. Baca selanjutnya di sini.

Kenapa MCP + Azure API Management?

Model Context Protocol cepat menjadi piawaian untuk aplikasi AI agen dan cara untuk mendedahkan alat dan data dengan cara yang konsisten. Azure API Management adalah pilihan semula jadi apabila anda perlu "mengurus" API. Pelayan MCP sering berintegrasi dengan API lain untuk menyelesaikan permintaan kepada alat sebagai contoh. Oleh itu, menggabungkan Azure API Management dan MCP adalah sangat masuk akal.

Gambaran Keseluruhan

Dalam kes penggunaan khusus ini, kita akan belajar untuk mendedahkan titik akhir API sebagai Pelayan MCP. Dengan melakukan ini, kita boleh dengan mudah menjadikan titik akhir ini sebahagian daripada aplikasi agen sambil memanfaatkan ciri dari Azure API Management.

Ciri Utama

  • Anda memilih kaedah titik akhir yang anda mahu dedahkan sebagai alat.
  • Ciri tambahan yang anda dapat bergantung pada apa yang anda konfigurasikan dalam bahagian dasar untuk API anda. Tetapi di sini kami akan tunjukkan bagaimana anda boleh menambah had kadar.

Langkah Pra: import API

Jika anda sudah mempunyai API dalam Azure API Management, bagus, maka anda boleh langkau langkah ini. Jika tidak, semak pautan ini, mengimport API ke Azure API Management.

Dedahkan API sebagai Pelayan MCP

Untuk mendedahkan titik akhir API, ikuti langkah ini:

  1. Navigasi ke Azure Portal dan alamat berikut https://portal.azure.com/?Microsoft_Azure_ApiManagement=mcp Navigasi ke instans Pengurusan API anda.

  2. Dalam menu kiri, pilih APIs > MCP Servers > + Create new MCP Server.

  3. Dalam API, pilih REST API untuk didedahkan sebagai pelayan MCP.

  4. Pilih satu atau lebih Operasi API untuk didedahkan sebagai alat. Anda boleh memilih semua operasi atau hanya operasi tertentu.

    Pilih kaedah untuk dedahkan

  5. Pilih Create.

  6. Navigasi ke pilihan menu APIs dan MCP Servers, anda harus melihat yang berikut:

    Lihat Pelayan MCP dalam panel utama

    Pelayan MCP telah dicipta dan operasi API didedahkan sebagai alat. Pelayan MCP disenaraikan dalam panel MCP Servers. Lajur URL menunjukkan titik akhir pelayan MCP yang anda boleh panggil untuk ujian atau dalam aplikasi klien.

Pilihan: Konfigurasikan dasar

Azure API Management mempunyai konsep teras dasar di mana anda menetapkan peraturan berbeza untuk titik akhir anda seperti contohnya had kadar atau caching semantik. Dasar ini ditulis dalam XML.

Berikut ialah cara anda boleh menyediakan dasar untuk had kadar Pelayan MCP anda:

  1. Dalam portal, di bawah APIs, pilih MCP Servers.

  2. Pilih pelayan MCP yang anda cipta.

  3. Dalam menu kiri, di bawah MCP, pilih Policies.

  4. Dalam penyunting dasar, tambah atau edit dasar yang anda ingin gunakan pada alat pelayan MCP. Dasar ditakrifkan dalam format XML. Sebagai contoh, anda boleh menambah dasar untuk menghadkan panggilan ke alat pelayan MCP (dalam contoh ini, 5 panggilan per 30 saat per alamat IP klien). Berikut XML yang akan menghadkan kadar:

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

    Berikut adalah imej penyunting dasar:

    Penyunting dasar

Cuba ia

Mari pastikan Pelayan MCP kita berfungsi seperti yang diinginkan.

Untuk ini, kita akan menggunakan Visual Studio Code dan GitHub Copilot serta mod Agent-nya. Kita akan tambah pelayan MCP ke dalam mcp.json. Dengan berbuat demikian, Visual Studio Code akan bertindak sebagai klien dengan kebolehan agen dan pengguna akhir boleh menaip arahan dan berinteraksi dengan pelayan tersebut.

Mari lihat bagaimana, untuk menambah pelayan MCP dalam Visual Studio Code:

  1. Gunakan perintah MCP: Add Server dari Command Palette.

  2. Apabila diminta, pilih jenis pelayan: HTTP (HTTP atau Server Sent Events).

  3. Masukkan URL pelayan MCP dalam Pengurusan API. Contoh: https://.azure-api.net/-mcp/sse (untuk titik akhir SSE) atau https://.azure-api.net/-mcp/mcp (untuk titik akhir MCP), perhatikan perbezaan antara pengangkutan adalah /sse atau /mcp.

  4. Masukkan ID pelayan pilihan anda. Ini bukan nilai penting tetapi akan membantu anda mengingati instans pelayan ini.

  5. Pilih sama ada untuk simpan konfigurasi ke tetapan ruang kerja anda atau tetapan pengguna.

  • Tetapan ruang kerja - Konfigurasi pelayan disimpan ke fail .vscode/mcp.json yang hanya tersedia dalam ruang kerja semasa.

    mcp.json

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

    atau jika anda memilih HTTP streaming sebagai pengangkutan ia akan sedikit berbeza:

    "servers": {
        "APIM petstore" : {
            "type": "http",
            "url": "url-to-mcp-server/mcp"
        }
    }
  • Tetapan pengguna - Konfigurasi pelayan ditambah ke fail settings.json global anda dan tersedia dalam semua ruang kerja. Konfigurasi adalah seperti berikut:

    Tetapan pengguna

  1. Anda juga perlu tambah konfigurasi, satu header untuk memastikan ia mengesahkan dengan betul ke arah Azure API Management. Ia menggunakan header yang dipanggil Ocp-Apim-Subscription-Key.

    • Berikut cara anda boleh tambahkannya ke tetapan:

    Menambah header untuk pengesahan, ini akan menyebabkan prompt dipaparkan untuk meminta nilai kunci API yang boleh anda dapati dalam Azure Portal untuk instans Azure API Management anda.

    • Untuk menambahnya ke mcp.json sebaliknya, anda boleh tambah seperti berikut:
    "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}"
            }
        }
    }

Gunakan mod Agent

Sekarang kita sudah semua sedia sama ada dalam tetapan atau dalam .vscode/mcp.json. Mari cuba.

Seharusnya terdapat ikon Alat seperti ini, di mana alat yang didedahkan daripada pelayan anda tersenarai:

Alat daripada pelayan

  1. Klik ikon alat dan anda harus melihat senarai alat seperti ini:

    Alat

  2. Masukkan arahan dalam sembang untuk menggunakan alat tersebut. Sebagai contoh, jika anda memilih alat untuk mendapatkan maklumat tentang pesanan, anda boleh bertanya kepada agen tentang pesanan. Berikut adalah contoh arahan:

    get information from order 2
    

    Anda akan dipaparkan dengan ikon alat yang meminta anda meneruskan panggilan ke alat. Pilih untuk terus menjalankan alat, anda seharusnya melihat output seperti ini:

    Keputusan dari arahan

    apa yang anda lihat di atas bergantung pada alat yang anda sediakan, tetapi idenya ialah anda mendapat respons teks seperti di atas

Rujukan

Berikut cara anda boleh belajar lebih lanjut:

Apa Seterusnya


Penafian:
Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI Co-op Translator. Walaupun kami berusaha untuk ketepatan, sila ambil maklum bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidakakuratan. Dokumen asal dalam bahasa asalnya hendaklah dianggap sebagai sumber yang sahih. Untuk maklumat penting, terjemahan profesional oleh manusia adalah disyorkan. Kami tidak bertanggungjawab terhadap sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.