Bagikan melalui


Mengekspos REST API di API Management sebagai server MCP

BERLAKU UNTUK: Pengembang | Basic | Basic v2 | Standar | Standar v2 | Premium | Premium v2

Di API Management, Anda dapat mengekspos REST API yang dikelola di API Management sebagai server Protokol Konteks Model jarak jauh (MCP) dengan menggunakan gateway AI bawaannya. Mengekspos satu atau beberapa operasi API sebagai alat yang dapat dipanggil klien MCP dengan menggunakan protokol MCP.

Azure API Management juga mendukung integrasi yang aman dengan server yang kompatibel dengan MCP yang ada - server alat yang dihosting di luar API Management. Untuk informasi selengkapnya, lihat Mengekspos server MCP yang sudah ada.

Pelajari selengkapnya tentang:

Keterbatasan

  • API Management saat ini mendukung alat server MCP, tetapi tidak mendukung sumber daya atau perintah MCP.
  • API Management saat ini tidak mendukung kemampuan server MCP di ruang kerja.

Prasyarat

  • Jika Anda belum memiliki instans API Management, selesaikan mulai cepat berikut: Membuat instans Azure API Management. Instans harus berada di salah satu tingkat layanan yang mendukung server MCP.

  • Pastikan instans Anda mengelola API yang kompatibel dengan HTTP (API apa pun yang diimpor sebagai REST API, termasuk API yang diimpor dari sumber daya Azure) yang ingin Anda ekspos sebagai server MCP. Untuk mengimpor API sampel, lihat Mengimpor dan menerbitkan API pertama Anda.

    Nota

    Jenis API lain dalam API Management yang tidak kompatibel dengan HTTP tidak dapat diekspos sebagai server MCP.

  • Jika Anda mengaktifkan pengelogan diagnostik melalui Application Insights atau Azure Monitor di cakupan seluruh (semua API) untuk instans layanan API Management Anda, atur Jumlah byte payload untuk dicatat untuk menjadikan Respons Frontend menjadi 0. Pengaturan ini mencegah pengelogan badan respons yang tidak diinginkan di semua API dan membantu memastikan berfungsinya server MCP. Untuk mencatat payload secara selektif untuk API tertentu, konfigurasikan pengaturan satu per satu di cakupan API, memungkinkan kontrol yang ditargetkan atas pengelogan respons.

  • Untuk menguji server MCP, Anda dapat menggunakan Visual Studio Code dengan akses ke GitHub Copilot atau alat seperti MCP Inspector.

Mengekspos API sebagai server MCP

Ikuti langkah-langkah ini untuk mengekspos REST API terkelola di API Management sebagai server MCP:

  1. Di portal Microsoft Azure, buka instans API Management Anda.
  2. Di menu sebelah kiri, di bawah API, pilih SERVER> MCP+ Buat server MCP.
  3. Pilih Ekspos API sebagai server MCP.
  4. Di server MCP Backend:
    1. Pilih API terkelola untuk diekspos sebagai server MCP.
    2. Pilih satu atau beberapa operasi API untuk diekspos sebagai alat. Anda dapat memilih semua operasi atau hanya operasi tertentu.

      Nota

      Anda dapat memperbarui operasi yang diekspos sebagai alat nanti di bilah Alat server MCP Anda.

  5. Di server MCP Baru:
    1. Masukkan Nama untuk server MCP di API Management.
    2. Secara opsional, masukkan Deskripsi untuk server MCP.
  6. Pilih Buat.

Cuplikan layar pembuatan server MCP di portal.

  • Server MCP dibuat dan operasi API diekspos sebagai alat.
  • Server MCP tercantum di bilah Server MCP . Kolom URL Server memperlihatkan titik akhir server MCP untuk memanggil pengujian atau dalam aplikasi klien.

Cuplikan layar daftar server MCP di portal.

Mengonfigurasi kebijakan untuk server MCP

Konfigurasikan satu atau beberapa kebijakan API Management untuk membantu mengelola server MCP. Kebijakan berlaku untuk semua operasi API yang diekspos sebagai alat di server MCP. Gunakan kebijakan ini untuk mengontrol akses, autentikasi, dan aspek alat lainnya.

Pelajari selengkapnya tentang mengonfigurasi kebijakan:

Perhatian

Jangan mengakses isi respons dengan menggunakan context.Response.Body variabel dalam kebijakan server MCP. Melakukannya memicu buffering respons, yang mengganggu perilaku streaming yang diperlukan oleh server MCP dan dapat menyebabkannya tidak berfungsi.

Untuk mengonfigurasi kebijakan untuk server MCP, ikuti langkah-langkah berikut:

  1. Di portal Microsoft Azure, buka instans API Management Anda.

  2. Di menu sebelah kiri, di bawah API, pilih Server MCP.

  3. Pilih server MCP dari daftar.

  4. Di menu sebelah kiri, di bawah MCP, pilih Kebijakan.

  5. Di editor kebijakan, tambahkan atau edit kebijakan yang ingin Anda terapkan ke alat server MCP. Tentukan kebijakan dalam format XML.

    Misalnya, Anda dapat menambahkan kebijakan untuk membatasi panggilan ke alat server MCP (dalam contoh ini, satu panggilan per 60 detik per sesi MCP).

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

    Cuplikan layar editor kebijakan untuk server MCP.

Nota

API Management mengevaluasi kebijakan yang dikonfigurasi pada cakupan global (semua API) sebelum mengevaluasi kebijakan di cakupan server MCP.

Memvalidasi dan menggunakan server MCP

Gunakan agen LLM yang sesuai (seperti GitHub Copilot, Semantic Kernel, atau Copilot Studio) atau klien pengujian (seperti curl) untuk memanggil titik akhir MCP yang dihosting API Management. Pastikan bahwa permintaan menyertakan header atau token yang sesuai, dan konfirmasikan perutean dan respons yang berhasil dari server MCP.

Petunjuk / Saran

Jika Anda menggunakan Inspektur MCP untuk menguji server MCP yang dikelola oleh API Management, gunakan versi 0.9.0.

Menambahkan server MCP di Visual Studio Code

Di Visual Studio Code, gunakan obrolan GitHub Copilot dalam mode agen untuk menambahkan server MCP dan menggunakan alat. Untuk latar belakang tentang server MCP di Visual Studio Code, lihat Menggunakan Server MCP di VISUAL Code.

Untuk menambahkan server MCP di Visual Studio Code:

  1. Gunakan perintah MCP: Tambahkan Server dari Palet Perintah.

  2. Saat diminta, pilih jenis server: HTTP (HTTP atau Server Sent Events).

  3. Masukkan URL Server server MCP di API Management. Misalnya, https://<apim-service-name>.azure-api.net/<api-name>-mcp/mcp untuk titik akhir MCP.

  4. Masukkan ID Server pilihan Anda.

  5. Pilih apakah akan menyimpan konfigurasi ke pengaturan ruang kerja atau pengaturan pengguna Anda.

    • Pengaturan ruang kerja - Konfigurasi server disimpan ke file yang .vscode/mcp.json hanya tersedia di ruang kerja saat ini.

    • Pengaturan pengguna - Konfigurasi server ditambahkan ke file global settings.json Anda dan tersedia di semua ruang kerja. Konfigurasi terlihat mirip dengan yang berikut ini:

    Cuplikan layar server MCP yang dikonfigurasi di Visual Studio Code.

Tambahkan bidang ke konfigurasi JSON untuk pengaturan seperti header autentikasi. Contoh berikut menunjukkan konfigurasi untuk kunci langganan API Management yang dikirim dalam header sebagai nilai input. Pelajari selengkapnya tentang format konfigurasi

Cuplikan layar konfigurasi header autentikasi untuk server MCP

Menggunakan alat dalam mode agen

Setelah menambahkan server MCP di Visual Studio Code, Anda dapat menggunakan alat dalam mode agen.

  1. Di obrolan GitHub Copilot, pilih Mode agen dan pilih tombol Alat untuk melihat alat yang tersedia.

    Tangkapan layar tombol Alat di obrolan.

  2. Pilih satu atau beberapa alat dari server MCP yang akan tersedia di obrolan.

    Cuplikan layar memilih alat di Visual Studio Code.

  3. Masukkan perintah di obrolan untuk memanggil alat. Misalnya, jika Anda memilih alat untuk mendapatkan informasi tentang pesanan, Anda dapat bertanya kepada agen tentang pesanan.

    Get information for order 2
    

    Pilih Lanjutkan untuk melihat hasilnya. Agen menggunakan alat untuk memanggil server MCP dan mengembalikan hasilnya dalam obrolan.

    Cuplikan layar hasil obrolan di Visual Studio Code.

Pemecahan masalah dan isu yang diketahui

Masalah Sebab Solusi
401 Unauthorized kesalahan dari backend Header otorisasi tidak diteruskan Jika perlu, gunakan set-header kebijakan untuk melampirkan token secara manual
Panggilan API berfungsi di API Management tetapi gagal dalam agen URL dasar yang salah atau token yang hilang Periksa kembali kebijakan keamanan dan titik akhir
Streaming server MCP gagal ketika log diagnostik diaktifkan Pengelogan isi respons atau mengakses isi respons melalui kebijakan mengganggu transportasi MCP Menonaktifkan pengelogan isi respons di cakupan Semua API - lihat Prasyarat