Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Model Context Protocol (MCP) egy ügyfél-kiszolgáló protokoll, amely lehetővé teszi a nyelvi modellek és ügynökök számára a külső adatforrások és eszközök hatékonyabb felderítését és használatát.
Az Azure Functions MCP-bővítmény lehetővé teszi, hogy az Azure Functions használatával távoli MCP-kiszolgálókat hozzon létre. Ezek a kiszolgálók üzemeltethetik az MCP-eszközök eseményindító funkcióit, amelyeket az MCP-ügyfelek, például a nyelvi modellek és az ügynökök lekérdezhetnek és hozzáférhetnek bizonyos feladatok elvégzéséhez.
| Action | Típus |
|---|---|
| Függvény futtatása MCP-eszköz híváskéréséből | Trigger |
Important
Az MCP-bővítmény jelenleg nem támogatja a PowerShell-alkalmazásokat.
Prerequisites
- Az SSE-átvitel használatakor az MCP-bővítmény az alapértelmezett gazdagéptárfiók (
AzureWebJobsStorage)által biztosított Azure Queue Storage-tárterületre támaszkodik. Identitásalapú kapcsolatok használatakor győződjön meg arról, hogy a függvényalkalmazás rendelkezik legalább az alábbi szerepköralapú engedélyekkel a gazdagép tárfiókjában: a Storage Queue Data Reader és a Storage Queue Data Message Processor. - Helyi futtatás esetén az MCP-bővítményhez az Azure Functions Core Tools 4.0.7030-es vagy újabb verziója szükséges.
- A csomag 2.1.0-s vagy újabb verzióját
Microsoft.Azure.Functions.Workerigényli. - A csomag 2.0.2-es vagy újabb verzióját
Microsoft.Azure.Functions.Worker.Sdkigényli.
Bővítmény telepítése
Note
C# esetén az Azure Functions MCP-bővítmény csak az izolált feldolgozómodellt támogatja.
Adja hozzá a bővítményt a projekthez a NuGet-csomag előnyben részesített módon történő telepítésével:
Microsoft.Azure.Functions.Worker.Extensions.Mcp
- A függőség 3.2.2-es vagy újabb
azure-functions-java-libraryverzióját igényli. - A függőség 1.40.0-s vagy újabb
azure-functions-maven-pluginverzióját igényli.
- A függőség 4.9.0-s vagy újabb
@azure/functionsverzióját igényli
- A csomag 1.24.0-s vagy újabb verzióját
azure-functionsigényli.
Csomag telepítése
Ha használni szeretné ezt a kötéskiterjesztést az alkalmazásban, győződjön meg arról, hogy a projekt gyökerében található host.json fájl tartalmazza a extensionBundle következő hivatkozást:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
Ebben a példában az version érték [4.0.0, 5.0.0) arra utasítja a Functions-gazdagépet, hogy 4.0.0 legalább, de annál kisebb 5.0.0csomagverziót használjon, amely tartalmazza a 4.x összes lehetséges verzióját. Ez a jelölés hatékonyan fenntartja az alkalmazást a v4.x bővítménycsomag legújabb elérhető alverzióján.
Ha lehetséges, a legújabb bővítménycsomag főverziót kell használnia, és engedélyeznie kell, hogy a futtatókörnyezet automatikusan fenntartsa a legújabb alverziót. A legújabb csomag tartalmát a bővítménykötegek kiadási oldalán tekintheti meg. További információ: Azure Functions-bővítménykötegek.
host.json beállítások
Ez a szakasz a kötéshez elérhető konfigurációs beállításokat ismerteti a 2.x és újabb verzióban. A host.json fájl beállításai a függvényalkalmazás-példány összes függvényére vonatkoznak. A függvényalkalmazás konfigurációs beállításaival kapcsolatos további információkért lásd host.json Azure Functionsre vonatkozó referenciát.
A szakasz az extensions.mcphost.json MCP-kiszolgáló adatainak definiálására használható.
{
"version": "2.0",
"extensions": {
"mcp": {
"instructions": "Some test instructions on how to use the server",
"serverName": "TestServer",
"serverVersion": "2.0.0",
"encryptClientState": true,
"messageOptions": {
"useAbsoluteUriForEndpoint": false
},
"system": {
"webhookAuthorizationLevel": "System"
}
}
}
}
| Property | Description |
|---|---|
| instructions | Ismerteti az ügyfeleknek, hogyan férhetnek hozzá a távoli MCP-kiszolgálóhoz. |
| serverName | A távoli MCP-kiszolgáló rövid neve. |
| serverVersion | A távoli MCP-kiszolgáló aktuális verziója. |
| encryptClientState | Meghatározza, hogy az ügyfél állapota titkosítva van-e. Alapértelmezés szerint igaz. A hamis érték beállítása hasznos lehet hibakeresési és tesztelési forgatókönyvekhez, de éles környezetben nem ajánlott. |
| messageOptions | Az üzenetvégpont beállításobjektuma az SSE-átvitelben. |
| messageOptions.UseAbsoluteUriForEndpoint | Alapértelmezett érték: false. Csak a kiszolgáló által küldött események (SSE) átvitelére alkalmazható; ez a beállítás nem befolyásolja a streamelhető HTTP-átvitelt. Ha be falsevan állítva, az üzenetvégpont relatív URI-ként lesz megadva az SSE-átvitelen keresztüli kezdeti kapcsolatok során. Ha be van trueállítva, az üzenetvégpont abszolút URI-ként lesz visszaadva. Relatív URI használata csak akkor ajánlott, ha erre konkrét oka van. |
| rendszer | Beállításobjektum a rendszerszintű konfigurációhoz. |
| system.webhookAuthorizationLevel | Meghatározza a webhook-végponthoz szükséges engedélyezési szintet. Alapértelmezés szerint a "System" (Rendszer) értékre van kapcsolva. Az engedélyezett értékek a "System" és a "Névtelen". Ha "Névtelen" értékre állítja az értéket, a kérésekhez már nincs szükség hozzáférési kulcsra. Függetlenül attól, hogy szükség van-e kulcsra, használhatja a beépített MCP-kiszolgálóengedélyezést identitásalapú hozzáférés-vezérlési rétegként. |
Csatlakozás az MCP-kiszolgálóhoz
A függvényalkalmazás által közzétett MCP-kiszolgálóhoz való csatlakozáshoz meg kell adnia egy MCP-ügyfelet a megfelelő végponttal és átviteli információkkal. Az alábbi táblázat az Azure Functions MCP-bővítmény által támogatott átviteleket és azok megfelelő kapcsolati végpontját mutatja be.
| Transport | Végpont |
|---|---|
| Streamelhető HTTP | /runtime/webhooks/mcp |
| Server-Sent események (SSE)1 | /runtime/webhooks/mcp/sse |
1 Az újabb protokollverziók elavultak a Server-Sent események átvitele során. Kivéve, ha az ügyfélnek kifejezetten szüksége van rá, inkább a streamelhető HTTP-átvitelt kell használnia.
Az Azure-ban üzemeltetett végpontokhoz alapértelmezés szerint a bővítmény által közzétett végpontokhoz a rendszerkulcs neve mcp_extensionis szükséges. Ha nincs megadva a x-functions-key HTTP-fejlécben vagy a lekérdezési code sztring paraméterben, az ügyfél választ kap 401 Unauthorized . Ezt a követelményt úgy távolíthatja el, hogy a tulajdonságot a system.webhookAuthorizationLevel következőre host.jsonállítja Anonymous be: . További információt a host.json beállítások szakaszában talál.
A kulcsot a függvény hozzáférési kulcsainak lekérése című témakörben ismertetett módszerek bármelyikével lekérheti. Az alábbi példa bemutatja, hogyan szerezheti be a kulcsot az Azure CLI-vel:
az functionapp keys list --resource-group <RESOURCE_GROUP> --name <APP_NAME> --query systemKeys.mcp_extension --output tsv
Az MCP-ügyfelek különböző módokon fogadják el ezt a konfigurációt. Tekintse meg a kiválasztott ügyfél dokumentációját. Az alábbi példa egy mcp.json olyan fájlt mutat be, amelyet a GitHub Copilot MCP-kiszolgálóinak a Visual Studio Code-ban való konfigurálásához használhat. A példa két kiszolgálót állít be, mindkettő a streamelhető HTTP-átvitelt használja. Az első az Azure Functions Core Tools helyi tesztelése. A második az Azure-ban üzemeltetett függvényalkalmazás. A konfiguráció olyan bemeneti paramétereket vesz fel, amelyekhez a Visual Studio Code a távoli kiszolgáló első futtatásakor kéri. A bemenetek használatával biztosítható, hogy a rendszerkulcshoz hasonló titkos kulcsok ne kerülhessenek a fájlba, és ne kerülhessenek be a forrásvezérlőbe.
{
"inputs": [
{
"type": "promptString",
"id": "functions-mcp-extension-system-key",
"description": "Azure Functions MCP Extension System Key",
"password": true
},
{
"type": "promptString",
"id": "functionapp-host",
"description": "The host domain of the function app."
}
],
"servers": {
"local-mcp-function": {
"type": "http",
"url": "http://localhost:7071/runtime/webhooks/mcp"
},
"remote-mcp-function": {
"type": "http",
"url": "https://${input:functionapp-host}/runtime/webhooks/mcp",
"headers": {
"x-functions-key": "${input:functions-mcp-extension-system-key}"
}
}
}
}