Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Azure Functions menyediakan dua cara untuk menghosting server MCP jarak jauh:
- Server MCP dibuat dengan ekstensi Functions MCP
- Server MCP yang dibangun dengan MCP SDK resmi
Dengan pendekatan pertama, Anda dapat menggunakan model pemrograman Azure Functions dengan pemicu dan pengikatan untuk membangun server MCP. Kemudian, Anda dapat menghosting server dari jarak jauh dengan menyebarkannya ke aplikasi Function.
Jika Anda sudah memiliki server MCP yang dibuat dengan SDK MCP resmi dan hanya ingin menghostingnya dari jarak jauh, pendekatan kedua kemungkinan sesuai dengan kebutuhan Anda. Anda tidak perlu membuat perubahan kode apa pun pada server untuk menghostingnya di Azure Functions. Sebagai gantinya, Anda dapat menambahkan artefak Fungsi yang diperlukan, dan server siap untuk dideploy. Dengan demikian, server ini disebut sebagai server MCP yang dihost sendiri.
Artikel ini memberikan gambaran umum tentang server MCP yang dihosting sendiri dan menautkannya ke artikel serta sampel yang relevan.
Pengendali kustom
Server MCP yang di-host sendiri dikerahkan ke platform Azure Functions sebagai penangan khusus. Handler kustom adalah server web ringan yang menerima peristiwa dari host Functions. Mereka menyediakan cara untuk menjalankan aplikasi pada platform Functions yang dibangun dengan kerangka kerja yang berbeda dari model pemrograman Functions atau dalam bahasa yang tidak didukung secara bawaan. Untuk informasi selengkapnya, lihat Penanganan kustom Azure Functions.
Saat Anda menyebarkan server berbasis MCP SDK ke Azure Functions, Anda harus menyertakan host.json dalam proyek Anda. host.json minimal terlihat seperti ini:
{
"version": "2.0",
"configurationProfile": "mcp-custom-handler",
"customHandler": {
"description": {
"defaultExecutablePath": "python",
"arguments": ["Path to main script file, e.g. hello_world.py"]
},
"port": "<MCP server port>"
}
}
{
"version": "2.0",
"configurationProfile": "mcp-custom-handler",
"customHandler": {
"description": {
"defaultExecutablePath": "npm",
"arguments": ["run", "start"]
},
"port": "<MCP server port>"
}
}
{
"version": "2.0",
"configurationProfile": "mcp-custom-handler",
"customHandler": {
"description": {
"defaultExecutablePath": "dotnet",
"arguments": ["Path to the compiled DLL, e.g. HelloWorld.dll"]
},
"port": "<MCP server port>"
}
}
Nota
Karena payload yang disebarkan ke Azure Functions adalah konten bin/output direktori, jalur ke DLL yang dikompilasi relatif terhadap direktori tersebut, bukan ke akar proyek.
Contoh belum tersedia.
configuration Profile Menggunakan nilai mcp-custom-handler secara otomatis mengonfigurasi pengaturan host Functions ini, yang diperlukan untuk menjalankan server MCP Anda di Azure Functions:
-
http.enableProxyingketrue -
http.routeske[{ "route": "{*route}" }] -
extensions.http.routePrefixke""
Contoh ini memperlihatkan file host.json dengan properti handler kustom tambahan yang setara dengan menggunakan mcp-custom-handler profil:
{
"version": "2.0",
"extensions": {
"http": {
"routePrefix": ""
}
},
"customHandler": {
"description": {
"defaultExecutablePath": "",
"arguments": [""]
},
"http": {
"enableProxying": true,
"defaultAuthorizationLevel": "anonymous",
"routes": [
{
"route": "{*route}",
// Default authorization level is `defaultAuthorizationLevel`
},
{
"route": "admin/{*route}",
"authorizationLevel": "admin"
}
]
}
}
}
Tabel ini menjelaskan properti customHandler.http, bersama dengan nilai default:
| Harta benda | Apa fungsinya | Nilai standar |
|---|---|---|
enableProxying |
Mengontrol bagaimana host Azure Functions menangani permintaan HTTP ke handler kustom. Ketika enableProxying diatur ke true, host Functions bertindak sebagai proksi terbalik dan meneruskan seluruh permintaan HTTP (termasuk header, isi, parameter kueri) langsung ke handler kustom. Pengaturan ini memberi handler kustom akses penuh ke detail permintaan HTTP asli. Ketika enableProxying adalah false, host Functions memproses permintaan terlebih dahulu dan mengubahnya menjadi format permintaan/respons Azure Functions sebelum meneruskannya ke handler kustom. |
false |
defaultAuthorizationLevel |
Mengontrol persyaratan autentikasi untuk mengakses titik akhir handler kustom. Misalnya, function memerlukan kunci API khusus fungsi untuk diakses. Untuk informasi selengkapnya, lihat tingkat otorisasi. |
function |
route |
Menentukan pola jalur URL yang direspons oleh handler kustom.
{*route}cocok dengan jalur URL apa pun (seperti /, , /mcp/api/tools, atau /anything/nested/path) dan meneruskan permintaan ke handler kustom. |
{*route} |
Autentikasi server bawaan
Autentikasi dan otorisasi berbasis OAuth yang disediakan oleh platform App Service menerapkan persyaratan spesifikasi otorisasi MCP, seperti mengeluarkan tantangan 401 dan mengekspos dokumen Metadata Sumber Daya Terlindungi (PRM). Saat Anda mengaktifkan autentikasi bawaan, klien yang mencoba mengakses server dialihkan ke penyedia identitas seperti ID Microsoft Entra untuk autentikasi sebelum menyambungkan.
Untuk informasi selengkapnya, lihat Mengonfigurasi otorisasi server bawaan (pratinjau) dan Menghosting server MCP di Azure Functions.
Integrasi agen Azure AI Foundry
Agen di Azure AI Foundry dapat dikonfigurasi untuk menggunakan alat di server MCP yang dihosting di Azure Functions.
Mendaftarkan server Anda di Azure API Center
Saat mendaftarkan server MCP di Azure API Center, Anda membuat katalog alat organisasi privat. Pendekatan ini direkomendasikan untuk berbagi server MCP di seluruh organisasi Anda dengan tata kelola dan kemampuan penemuan yang konsisten. Untuk informasi selengkapnya, lihat Mendaftarkan server MCP yang dihosting di Azure Functions di Azure API Center.
Dukungan pratinjau publik
Kemampuan untuk menghosting server MCP berbasis SDK Anda sendiri di Functions saat ini dalam pratinjau dan mendukung fitur-fitur ini:
- Server stateless yang menggunakan transport http yang dapat di-streaming. Jika Anda memerlukan server Anda untuk bersifat stateful, pertimbangkan untuk menggunakan ekstensi Functions MCP.
- Server yang diimplementasikan dengan SDK Python, TypeScript, C#, atau Java MCP.
- Saat menjalankan proyek secara lokal, Anda harus menggunakan Azure Functions Core Tools (
func startperintah). Saat ini Anda tidak dapat menggunakanF5untuk menjalankan debugger. - Server harus dihosting sebagai aplikasi paket Konsumsi Flex .
Samples
Belum tersedia.