Bagikan melalui


Tutorial: Menghosting server MCP di Azure Functions

Artikel ini memperlihatkan kepada Anda cara menghosting server Protokol Konteks Model jarak jauh (MCP) di Azure Functions. Anda juga mempelajari cara menggunakan autentikasi bawaan untuk mengonfigurasi otorisasi titik akhir server dan mengamankan alat AI Anda dengan lebih baik.

Ada dua cara untuk menghosting server MCP jarak jauh di Azure Functions:

Opsi MCP server Description Terbaik untuk...
Server ekstensi MCP Menggunakan ekstensi MCP Azure Functions untuk membuat server MCP kustom, di mana pemicu ekstensi memungkinkan Anda menentukan titik akhir alat Anda. Server ini didukung dalam semua bahasa Functions dan dikembangkan, disebarkan, dan dikelola sebagai aplikasi fungsi lainnya. Ketika Anda sudah terbiasa dengan Functions dan model pemrograman berbasis pengikatannya.
Server yang dihost sendiri Functions dapat menghosting proyek server MCP yang dibuat menggunakan MCP SDK standar. Ketika Anda sudah membangun server menggunakan SDK MCP resmi dan mencari hosting berbasis peristiwa, tanpa server, dan dapat diskalakan di Azure.

Nota

Kemampuan Azure Functions untuk menjadi host server MCP yang Anda buat menggunakan MCP SDK resmi saat ini dalam masa pratinjau.

Tutorial ini mencakup kedua opsi server MCP yang didukung oleh Functions. Pilih tab yang paling sesuai dengan skenario Anda.

Dalam tutorial ini, Anda menggunakan Visual Studio Code untuk:

  • Buat proyek server MCP menggunakan ekstensi MCP.
  • Jalankan dan verifikasi server MCP Anda secara lokal.
  • Membuat aplikasi fungsi di Azure.
  • Sebarkan proyek server MCP Anda.
  • Aktifkan autentikasi bawaan.

Penting

Artikel ini saat ini hanya mendukung C#, Python, dan TypeScript. Untuk menyelesaikan panduan memulai cepat, pilih salah satu bahasa yang didukung di bagian atas artikel ini.

Artikel ini mendukung model pemrograman Node.js versi 4 untuk Azure Functions.

Artikel ini mendukung model pemrograman Python versi 2 untuk Azure Functions.

Prasyarat

Membuat proyek server MCP Anda

Gunakan Visual Studio Code untuk membuat proyek server MCP secara lokal dalam bahasa pilihan Anda.

  1. Di Visual Studio Code, tekan F1 untuk membuka palet perintah. Cari dan jalankan perintah Azure Functions: Create New Project....

  2. Pilih lokasi direktori untuk ruang kerja proyek Anda dan pilih Pilih. Anda harus membuat folder baru atau memilih folder kosong untuk ruang kerja proyek. Jangan memilih folder proyek yang sudah merupakan bagian dari sebuah ruang kerja.

  1. Berikan informasi berikut pada permintaan:

    Cepat Pilihan
    Pilih jenis proyek Pilih C#.
    Pilih runtime .NET Pilih .NET 8.0 LTS.
    Pilih templat untuk fungsi pertama proyek Anda Pilih MCP Tool trigger.
    Berikan nama fungsi Ketik McpTrigger.
    Menyediakan namespace layanan Ketik My.Functions.
    Tingkat otorisasi Pilih FUNCTION, yang memerlukan kunci akses saat menyambungkan ke server MCP jarak jauh.
    Pilih bagaimana Anda ingin membuka proyek Anda Pilih Open in current window.
  1. Berikan informasi berikut pada permintaan:

    Cepat Pilihan
    Pilih jenis proyek Pilih TypeScript.
    Pilih templat untuk fungsi pertama proyek Anda Pilih MCP Tool trigger.
    Berikan nama fungsi Ketik mcpToolTrigger.
    Tingkat otorisasi Pilih FUNCTION, yang memerlukan kunci akses saat menyambungkan ke server MCP jarak jauh.
    Pilih bagaimana Anda ingin membuka proyek Anda Pilih Open in current window.
  1. Berikan informasi berikut pada permintaan:

    Cepat Pilihan
    Pilih jenis proyek Pilih Python.
    Pilih interpreter Python untuk membuat lingkungan virtual Pilih interpreter Python pilihan Anda. Jika opsi tidak ditampilkan, ketik jalur lengkap ke biner Python Anda.
    Pilih templat untuk fungsi pertama proyek Anda Pilih MCP Tool trigger.
    Nama fungsi yang ingin Anda buat Masukkan mcp_trigger.
    Tingkat otorisasi Pilih FUNCTION, yang memerlukan kunci akses saat menyambungkan ke server MCP jarak jauh.
    Pilih bagaimana Anda ingin membuka proyek Anda Pilih Open in current window.

Dengan menggunakan informasi ini, Visual Studio Code menghasilkan proyek kode untuk pemicu server MCP. Anda bisa melihat file proyek lokal di Explorer.

Memulai server MCP secara lokal

Aplikasi fungsi memerlukan komponen penyimpanan untuk dijalankan. Sebelum memulai server, mulai emulator penyimpanan lokal:

  1. Dalam local.setting.json, pastikan Anda memiliki "AzureWebJobsStorage": "UseDevelopmentStorage=true".

  2. Di Visual Studio Code, tekan F1 untuk membuka palet perintah. Di palet perintah, cari dan pilih Azurite: Start.

  3. Periksa bilah bawah dan verifikasi bahwa layanan emulasi Azurite berjalan. Jika demikian, Anda sekarang dapat menjalankan server secara lokal.

  4. Untuk mulai berjalan secara lokal, tekan F5.

Aplikasi fungsi memerlukan komponen penyimpanan untuk dijalankan. Sebelum memulai server, mulai emulator penyimpanan lokal:

  1. Dalam local.setting.json, pastikan Anda memiliki "AzureWebJobsStorage": "UseDevelopmentStorage=true".

  2. Di Visual Studio Code, tekan F1 untuk membuka palet perintah. Di palet perintah, cari dan pilih Azurite: Start.

  3. Periksa bilah bawah dan verifikasi bahwa layanan emulasi Azurite berjalan. Jika demikian, Anda sekarang dapat menjalankan server secara lokal.

  4. Untuk mulai berjalan secara lokal, tekan F5.

Aplikasi fungsi memerlukan komponen penyimpanan untuk dijalankan. Sebelum memulai server, mulai emulator penyimpanan lokal:

  1. Dalam local.setting.json, pastikan Anda memiliki "AzureWebJobsStorage": "UseDevelopmentStorage=true".

  2. Di Visual Studio Code, tekan F1 untuk membuka palet perintah. Di palet perintah, cari dan pilih Azurite: Start.

  3. Periksa bilah bawah dan verifikasi bahwa layanan emulasi Azurite berjalan. Jika demikian, Anda sekarang dapat menjalankan server secara lokal.

  4. Untuk mulai berjalan secara lokal, tekan F5.

Menguji server

  1. .vscode Temukan direktori dan buka mcp.json. Editor harus menambahkan info koneksi server.

  2. Mulai server dengan memilih tombol Mulai di atas nama server.

  3. Saat tersambung ke server, Anda akan melihat jumlah alat yang tersedia di atas nama server.

  4. Buka obrolan Visual Studio Code Copilot dalam mode agen, lalu ajukan pertanyaan. Misalnya, "Sambut dengan #your-local-server-name". Pertanyaan ini memastikan Copilot menggunakan server untuk membantu menjawab pertanyaan.

  5. Saat Copilot meminta untuk menjalankan alat dari server MCP lokal, pilih Izinkan.

  6. Putuskan sambungan dari server saat Anda selesai menguji dengan memilih Hentikan, dan Cntrl+C untuk berhenti menjalankannya secara lokal.

Petunjuk / Saran

Di jendela obrolan Copilot, pilih ikon alat di bagian bawah untuk melihat daftar server dan alat yang tersedia untuk obrolan. Pastikan server MCP lokal diperiksa saat pengujian.

Otorisasi server MCP jarak jauh

Ada dua cara untuk mengurangi atau mencegah penggunaan titik akhir server MCP jarak jauh Anda yang tidak sah:

Metode Description
Autentikasi server bawaan (pratinjau) Fungsi mencakup autentikasi dan otorisasi App Service bawaan yang mengimplementasikan persyaratan OAuth dari protokol spesifikasi otorisasi MCP . Pelanggan yang mencoba mengakses server dialihkan ke penyedia identitas yang telah dikonfigurasi (idP), seperti Microsoft Entra ID, untuk autentikasi sebelum diizinkan untuk terhubung. Metode ini memberikan tingkat keamanan tertinggi untuk titik akhir alat Anda.
Autentikasi berbasis kunci Secara default, Functions menerapkan persyaratan kunci akses sehingga klien yang mencoba menggunakan alat server MCP harus menyajikan nilai kunci rahasia bersama di header permintaan. Meskipun tidak memberikan tingkat keamanan yang sama dengan autentikasi berbasis OAuth, kunci akses membuatnya lebih sulit untuk mengakses alat publik. Anonymous Gunakan tingkat akses untuk menonaktifkan kunci akses di server Anda saat menggunakan autentikasi berbasis OAuth.

Nota

Tutorial ini berisi instruksi konfigurasi terperinci untuk fitur otorisasi dan autentikasi server bawaan, yang mungkin juga disebut sebagai Autentikasi App Service di artikel lain. Anda dapat menemukan gambaran umum fitur dan beberapa panduan penggunaan di artikel Mengonfigurasi otorisasi server bawaan (pratinjau).

Menonaktifkan autentikasi berbasis kunci

Fitur otorisasi server bawaan adalah komponen yang terpisah dari Azure Functions. Saat menggunakan autentikasi server, sebaiknya nonaktifkan autentikasi berbasis kunci terlebih dahulu dengan mengizinkan akses anonim.

Untuk menonaktifkan autentikasi berbasis host di server MCP Anda, atur system.webhookAuthorizationLevel ke Anonymoushost.json dalam file:

{
  "version": "2.0",
  "extensions": {
    "mcp": {
      ...
      "system": {
        "webhookAuthorizationLevel": "Anonymous"
      }
    }    
  }
}

Membuat aplikasi fungsi di Azure

Buat aplikasi fungsi dalam paket Konsumsi Flex di Azure yang menghosting server MCP Anda.

  1. Di portal Azure, dari menu atau halaman Beranda, pilih Buat sumber daya.

  2. Pilih Mulai lalu Buat di bawah Aplikasi Fungsi.

  3. Di bawah Pilih opsi hosting, pilih Pilih Konsumsi>Fleksibel.

  4. Pada halaman Dasar , gunakan pengaturan aplikasi fungsi seperti yang ditentukan dalam tabel berikut ini:

    Setting Nilai yang disarankan Description
    Subscription Langganan Anda Langganan tempat Anda membuat aplikasi fungsi baru.
    Grup Sumber Daya myResourceGroup Nama untuk grup sumber daya baru tempat Anda membuat aplikasi fungsi.
    Nama Aplikasi Fungsi Nama unik secara global Nama yang akan mengidentifikasi aplikasi fungsi baru Anda. Karakter valid adalah a-z (tidak peka huruf besar/kecil), 0-9, dan -.
    Wilayah Wilayah pilihan Pilih wilayah yang ada di dekat Anda atau di dekat layanan lain yang dapat diakses oleh fungsi Anda. Wilayah yang tidak didukung tidak ditampilkan. Untuk informasi selengkapnya, lihat Menampilkan wilayah yang saat ini didukung.
    Stack runtime Bahasa pilihan Pilih salah satu tumpukan runtime bahasa yang didukung. Pengeditan dalam portal menggunakan Visual Studio Code untuk Web saat ini hanya tersedia untuk aplikasi Node.js, PowerShell, dan Python. Pustaka kelas C# dan fungsi Java harus dikembangkan secara lokal.
    Versi Versi bahasa Pilih versi tumpukan runtime bahasa yang didukung.
    Ukuran instans Bawaan Menentukan jumlah memori instans yang dialokasikan untuk setiap instans aplikasi Anda. Untuk informasi selengkapnya, lihat Ukuran instans.
  5. Pada halaman Penyimpanan , terima perilaku default membuat akun penyimpanan host default baru atau pilih untuk menggunakan akun penyimpanan yang sudah ada.

  1. Pada halaman Pemantauan , pastikan Aktifkan Application Insights dipilih. Terima default untuk membuat instans Application Insights baru, atau pilih untuk menggunakan instans yang sudah ada. Saat membuat instans Application Insights, Anda juga diminta untuk memilih Log Analytics Workspace.

  2. Pada halaman Autentikasi , ubah jenis Autentikasi menjadi Identitas terkelola untuk semua sumber daya. Dengan opsi ini, identitas terkelola yang ditetapkan pengguna juga dibuat yang digunakan aplikasi Anda untuk mengakses sumber daya Azure ini menggunakan autentikasi ID Microsoft Entra. Identitas terkelola dengan ID Microsoft Entra menyediakan tingkat keamanan tertinggi untuk menyambungkan ke sumber daya Azure.

  3. Terima opsi default di tab yang tersisa lalu pilih Tinjau + buat untuk meninjau konfigurasi aplikasi yang Anda pilih.

  4. Saat Anda puas, pilih Buat untuk memprovisikan dan menyebarkan aplikasi fungsi dan sumber daya terkait.

  5. Pilih ikon Pemberitahuan di sudut kanan atas portal dan lihat pesan Deployment berhasil.

  6. Pilih Buka sumber daya untuk melihat aplikasi fungsi baru Anda. Anda juga dapat memilih Sematkan ke dasbor. Menyematkan memudahkan Anda mengakses kembali sumber daya aplikasi fungsi ini dari beranda Anda.

    Cuplikan layar pemberitahuan penyebaran.

Menyebarkan proyek server MCP

Penting

Penyebaran ke aplikasi fungsi yang ada selalu menimpa konten aplikasi tersebut di Azure.

  1. Di palet perintah, ketik dan pilih Azure Functions: Sebarkan ke Aplikasi Fungsi.

  2. Pilih aplikasi fungsi yang baru saja Anda buat. Saat diminta untuk menimpa penyebaran sebelumnya, pilih Terapkan untuk menerapkan kode fungsi Anda ke sumber daya aplikasi fungsi baru.

  3. Saat penyebaran selesai, pilih Tampilkan Output untuk melihat hasil pembuatan dan penyebaran, termasuk sumber daya Azure yang Anda buat. Jika Anda melewatkan pemberitahuan, pilih ikon bel di sudut kanan bawah untuk melihatnya lagi.

    Cuplikan layar jendela Tampilan Output.

  1. Aplikasi Python juga mengharuskan Anda untuk menambahkan pengaturan aplikasi ini:

    PYTHONPATH=/home/site/wwwroot/.python_packages/lib/site-packages.

Sekarang Anda dapat menyebarkan proyek server:

Penting

Penyebaran ke aplikasi fungsi yang ada selalu menimpa konten aplikasi tersebut di Azure.

  1. Di palet perintah, ketik dan pilih Azure Functions: Sebarkan ke Aplikasi Fungsi.

  2. Pilih aplikasi fungsi yang baru saja Anda buat. Saat diminta untuk menimpa penyebaran sebelumnya, pilih Terapkan untuk menerapkan kode fungsi Anda ke sumber daya aplikasi fungsi baru.

  3. Saat penyebaran selesai, pilih Tampilkan Output untuk melihat hasil pembuatan dan penyebaran, termasuk sumber daya Azure yang Anda buat. Jika Anda melewatkan pemberitahuan, pilih ikon bel di sudut kanan bawah untuk melihatnya lagi.

    Cuplikan layar jendela Tampilan Output.


Setelah penyebaran selesai, Anda akan melihat pemberitahuan di Visual Studio Code tentang menyambungkan ke server. Pilih tombol Sambungkan agar editor menyiapkan informasi koneksi server di mcp.json.

Mengaktifkan otorisasi dan autentikasi server bawaan

Instruksi berikut menunjukkan cara mengaktifkan fitur otorisasi dan autentikasi bawaan di aplikasi server dan mengonfigurasi ID Microsoft Entra sebagai penyedia identitas. Setelah selesai, Anda menguji dengan menyambungkan ke server di Visual Studio Code dan melihat bahwa Anda diminta untuk mengautentikasi sebelum menyambungkan.

Mengonfigurasi autentikasi pada aplikasi server

  1. Buka aplikasi server di portal Microsoft Azure, dan pilihAutentikasi> dari menu sebelah kiri.

  2. Pilih Tambah penyedia identitas>Microsoft sebagai penyedia identitas.

  3. Untuk Pilih penyewa untuk aplikasi Anda dan penggunanya, pilih Konfigurasi tenaga kerja (penyewa saat ini).

  4. Di bawah Pendaftaran aplikasi: gunakan pengaturan ini:

    Setting Pilihan
    Jenis pendaftaran aplikasi Membuat pendaftaran aplikasi baru
    Nama Masukkan nama deskriptif untuk aplikasi Anda
    Kedaluwarsa rahasia klien Disarankan: 180 hari
    Jenis akun yang didukung Penyewa saat ini - Penyewa tunggal
  5. Di bawah Pemeriksaan tambahan:, untuk Persyaratan aplikasi klien pilih Izinkan permintaan dari aplikasi klien tertentu, pilih ikon pensil, tambahkan ID aebc6443-996d-45c2-90f0-388ff96faa56klien Visual Studio Code, dan pilih OK. Biarkan bagian lain apa adanya.

  6. Di bawah Pengaturan autentikasi App Service gunakan pengaturan ini:

    Setting Pilihan
    Membatasi akses Memerlukan autentikasi
    Permintaan yang tidak terautentikasi HTTP 401 Tidak Diizinkan: direkomendasikan untuk API
    Penyimpanan token Centang kotak, yang memungkinkan penyegaran token
  7. Pilih Tambahkan. Setelah pengaturan disebarluaskan, Anda akan melihat hasil berikut:

    Cuplikan layar pengaturan autentikasi App Service memperlihatkan 'Memerlukan autentikasi' dipilih dan 'HTTP 401 Tidak Sah' diatur untuk permintaan yang tidak diautentikasi.

Melakukan praotorisasi Visual Studio Code sebagai klien

  1. Pilih nama aplikasi Entra di samping Microsoft. Tindakan ini membawa Anda ke Gambaran Umum sumber daya aplikasi Entra.

  2. Di menu sebelah kiri, temukan Kelola -> Mengekspos API.

  3. Di bawah Aplikasi klien resmi, pilih +Tambahkan aplikasi klien.

  4. Masukkan ID klien Visual Studio Code: aebc6443-996d-45c2-90f0-388ff96faa56.

  5. Pilih kotak di depan cakupan yang terlihat seperti api://abcd123-efg456-hijk-7890123/user_impersonation.

  6. Pilih Tambahkan aplikasi.

Mengonfigurasi metadata sumber daya yang dilindungi (pratinjau)

  1. Dalam tampilan Mengekspos API yang sama, temukan bagian Cakupan , dan salin cakupan yang memungkinkan admin dan pengguna menyetujui aplikasi Entra. Nilai ini terlihat seperti api://abcd123-efg456-hijk-7890123/user_impersonation.

  2. Jalankan perintah yang sama seperti sebelumnya untuk menambahkan pengaturan WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPES:

    az functionapp config appsettings set --name <function-app-name> --resource-group <resource-group-name> --settings "WEBSITE_AUTH_PRM_DEFAULT_WITH_SCOPES=<scope>"
    
  3. Juga dalam tampilan Mengekspos API , temukan URI ID Aplikasi (terlihat seperti api://abcd123-efg456-hijk-7890123) di bagian atas dan simpan untuk langkah selanjutnya.

Menyambungkan ke server

Buka mcp.json di dalam direktori .vscode.

Saat Anda memilih Sambungkan di pop-up setelah penyebaran, Visual Studio Code mengisi file dengan informasi koneksi server.

Jika Anda melewatkan langkah itu, Anda juga dapat membuka Output (Ctrl/Cmd+Shift+U) untuk menemukan tombol koneksi in-line di akhir log penyebaran.

Anda juga dapat menambahkan informasi koneksi secara manual:

  1. Dapatkan domain server dengan menjalankan perintah berikut:

    az functionapp show --name <FUNCTION_APP_NAME> --resource-group <RESOURCE_GROUP_NAME> --query "defaultHostName" --output tsv
    
  2. Di Visual Studio Code, buka palet perintah, cari dan jalankan perintah MCP: Tambahkan Server... , lalu ikuti perintah berikut:

    Cepat Saran
    Jenis server yang akan ditambahkan HTTP
    URL server MCP milik Anda https://<FUNCTION_APP_NAME>.azurewebsites.azurewebsites.net/runtime/webhooks/mcp
    Nama Server remote-mcp-server
    Tempat menginstal server Workspace
  3. Visual Studio Code membuka mcp.json berkas pengaturan untuk Anda.

Ikuti instruksi di bagian berikutnya untuk menyambungkan ke server tergantung pada cara Anda mengonfigurasi autentikasi.

Dengan autentikasi dan otorisasi bawaan

  1. Mulai server jarak jauh dengan memilih tombol Mulai di atas nama server.

  2. Saat diminta tentang autentikasi dengan Microsoft, pilih Izinkan, lalu masuk dengan email Anda (yang digunakan untuk masuk ke portal Microsoft Azure).

  3. Ketika Anda berhasil tersambung ke server, Anda akan melihat jumlah alat yang tersedia di atas nama server.

  4. Buka obrolan Visual Studio Code Copilot dalam mode agen, lalu ajukan pertanyaan. Contohnya, Greet with #your-remote-mcp-server-name.

  5. Hentikan server ketika selesai menguji.

Untuk memahami secara rinci apa yang terjadi ketika Visual Studio Code mencoba menyambungkan ke server MCP jarak jauh, lihat Protokol otorisasi server.

Dengan kunci akses

Jika Anda tidak mengaktifkan autentikasi dan otorisasi bawaan dan sebaliknya ingin terhubung ke server MCP Anda dengan menggunakan kunci akses, mcp.json harus berisi kunci akses Functions di header permintaan pendaftaran server.

Visual Studio secara otomatis mengisi kunci akses saat Anda memulai server.

File mcp.json akan terlihat seperti contoh berikut:

{
	"servers": {
		"remote-mcp-server": {
			"type": "http",
			"url": "https://${input:functionapp-domain}/runtime/webhooks/mcp",
			"headers": {
				"x-functions-key": "${input:functions-key}"
			}
		}
	},
	"inputs": [
		{
			"type": "promptString",
			"id": "functions-key",
			"description": "Functions App Key",
			"password": true
		},
		{
			"type": "promptString",
			"id": "functionapp-domain",
			"description": "The domain of the function app.",
			"password": false
		}
	]
}

Jika Anda ingin menemukan kunci akses sendiri, buka aplikasi Fungsi di portal Microsoft Azure. Di menu sebelah kiri, temukan Functions -> Kunci aplikasi. Di bawah bagian Kunci sistem, temukan kunci bernama mcp_extension.

Petunjuk / Saran

Untuk melihat log koneksi, buka nama server, lalu pilih Lainnya>Tampilkan Output. Untuk detail selengkapnya tentang interaksi antara klien (Visual Studio Code) dan server MCP jarak jauh, pilih ikon gigi dan pilih Jejak.

Cuplikan layar pengaturan server MCP memperlihatkan tingkat log _Trace_ yang dipilih.

Mengonfigurasi agen Azure AI Foundry untuk menggunakan alat Anda

Anda dapat mengonfigurasi agen di Azure AI Foundry untuk menggunakan alat yang diekspos oleh server MCP yang dihosting di Azure Functions.

  1. Di portal Foundry, temukan agen yang ingin Anda konfigurasi dengan server MCP yang dihosting di Functions.

  2. Di bawah Alat, pilih tombol Tambahkan , lalu pilih + Tambahkan alat baru.

  3. Pilih tab Kustom , lalu pilih Protokol Konteks Model (MCP) dan tombol Buat .

  4. Isi informasi berikut:

    • Nama Server
    • Titik akhir Server MCP Jarak Jauh:
      • Server ekstensi MCP: https://<server domain>/runtime/webhooks/mcp
      • Server yang dihost sendiri: https://<server domain>/mcp
    • Autentikasi: Pilih "Microsoft Entra"
    • Jenis: Pilih "Identitas Terkelola Proyek"
    • Audiens: Ini adalah URI ID Aplikasi Entra dari Mengonfigurasi metadata sumber daya yang dilindungi

    Contohnya:

    Diagram memperlihatkan konfigurasi agen Foundry untuk menyambungkan ke server MCP.

  5. Pilih Sambungkan.

  6. Uji dengan mengajukan pertanyaan yang dapat dijawab dengan bantuan alat server di jendela obrolan.

Protokol otorisasi server

Dalam output debug dari Visual Studio Code, Anda melihat serangkaian permintaan dan respons saat klien dan server MCP berinteraksi. Saat Anda menggunakan otorisasi server MCP bawaan, Anda akan melihat urutan peristiwa berikut:

  1. Editor mengirimkan permintaan inisialisasi ke server MCP.
  2. Server MCP merespons dengan kesalahan yang menunjukkan bahwa otorisasi diperlukan. Respons mencakup penunjuk ke metadata sumber daya yang dilindungi (PRM) untuk aplikasi. Fitur otorisasi bawaan menghasilkan PRM untuk aplikasi server.
  3. Editor mengambil PRM dan menggunakannya untuk mengidentifikasi server otorisasi.
  4. Editor mencoba mendapatkan metadata server otorisasi (ASM) dari endpoint standar yang dikenal di server otorisasi.
  5. MICROSOFT Entra ID tidak mendukung ASM pada titik akhir terkenal, sehingga editor kembali menggunakan titik akhir metadata OpenID Connect untuk mendapatkan ASM. Ini mencoba menemukan ini dengan memasukkan endpoint yang sudah dikenal sebelum menyisipkan informasi jalur lainnya.
  6. Spesifikasi OpenID Connect sebenarnya mendefinisikan titik akhir terkenal sebagai bagian yang mengikuti informasi jalur, dan di situlah Microsoft Entra ID menghostingnya. Jadi editor mencoba lagi dengan format tersebut.
  7. Editor berhasil mengakses ASM. Kemudian menggunakan informasi ini dengan ID kliennya sendiri untuk melakukan masuk. Pada titik ini, editor meminta Anda untuk masuk dan menyetujui aplikasi.
  8. Dengan asumsi Anda berhasil masuk dan menyetujui, editor menyelesaikan autentikasi. Ini mengulangi permintaan intialisasi ke server MCP, kali ini termasuk token otorisasi dalam permintaan. Upaya ulang ini tidak terlihat di tingkat output Debug, tetapi Anda dapat melihatnya di tingkat output Trace.
  9. Server MCP memvalidasi token dan merespons dengan respons yang berhasil terhadap permintaan inisialisasi. Alur MCP standar berlanjut dari titik ini, pada akhirnya menghasilkan penemuan alat MCP yang ditentukan dalam sampel ini.

Troubleshooting

Jika Anda mengalami masalah, minta bantuan GitHub Copilot. Berikut adalah beberapa ide khusus untuk pemecahan masalah:

Tidak ada ide lain saat ini. Ingatlah untuk menggunakan obrolan Copilot untuk bertanya tentang kesalahan apa pun yang terjadi.

Langkah selanjutnya

Pelajari cara mendaftarkan server MCP yang dihosting Azure Functions di Azure API Center.