Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa Azure Functions udostępnia dwa sposoby hostowania zdalnych serwerów MCP:
- Serwery MCP utworzone za pomocą rozszerzenia MCP usługi Functions
- Serwery MCP utworzone za pomocą oficjalnych zestawów SDK MCP
Przy pierwszym podejściu można użyć modelu programowania usługi Azure Functions z wyzwalaczami i powiązaniami w celu utworzenia serwera MCP. Następnie można hostować serwer zdalnie poprzez wdrożenie do aplikacji Azure Functions.
Jeśli masz już serwer MCP utworzony za pomocą oficjalnych zestawów SDK MCP i chcesz go hostować zdalnie, drugie podejście prawdopodobnie odpowiada Twoim potrzebom. Nie musisz wprowadzać żadnych zmian w kodzie na serwerze, aby hostować go w usłudze Azure Functions. Zamiast tego można dodać wymagane artefakty usługi Functions, a serwer jest gotowy do wdrożenia. W związku z tym te serwery są nazywane własnymi serwerami MCP.
Ten artykuł zawiera omówienie własnych serwerów MCP oraz linki do odpowiednich artykułów i przykładów.
Niestandardowe procedury obsługi
Własne serwery MCP są wdrażane na platformie Azure Functions jako niestandardowe programy obsługi. Niestandardowe programy obsługi to lekkie serwery internetowe, które odbierają zdarzenia z hosta usługi Functions. Zapewniają one sposób uruchamiania w aplikacjach platformy Functions utworzonych za pomocą struktur innych niż model programowania usługi Functions lub w językach, które nie są obsługiwane w ramach gotowego rozwiązania. Aby uzyskać więcej informacji, zobacz Niestandardowe programy obsługi usługi Azure Functions.
Podczas wdrażania serwera opartego na zestawie MCP SDK w usłudze Azure Functions należy uwzględnić host.json w projekcie. Minimalna host.json wygląda następująco:
{
"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>"
}
}
Uwaga / Notatka
Ponieważ ładunek wdrożony w usłudze Azure Functions jest zawartością bin/output katalogu, ścieżka do skompilowanej biblioteki DLL jest względna względem tego katalogu, a nie katalogu głównego projektu.
Przykład nie jest jeszcze dostępny.
configuration Profile Użycie wartości mcp-custom-handler automatycznie konfiguruje te ustawienia hosta usługi Functions, które są wymagane do uruchamiania serwera MCP w usłudze Azure Functions:
-
http.enableProxyingdotrue -
http.routesdo[{ "route": "{*route}" }] -
extensions.http.routePrefixdo""
W tym przykładzie przedstawiono plik host.json z dodatkowymi niestandardowymi właściwościami procedury obsługi ustawionymi zgodnie z profilem mcp-custom-handler :
{
"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"
}
]
}
}
}
W tej tabeli opisano właściwości elementu customHandler.httpwraz z wartościami domyślnymi:
| Majątek | Do czego służy | Wartość domyślna |
|---|---|---|
enableProxying |
Określa sposób, w jaki host usługi Azure Functions obsługuje żądania HTTP do niestandardowych procedur obsługi. Gdy enableProxying jest ustawiony na true, host Functions działa jako odwrotny serwer proxy i przekazuje całe żądanie HTTP (w tym nagłówki, treść, parametry zapytania) bezpośrednio do niestandardowej obsługi. To ustawienie zapewnia dedykowanemu programowi obsługi pełny dostęp do pierwotnych danych żądania HTTP. Gdy enableProxying jest false, host usługi Functions najpierw przetwarza żądanie i przekształca je w format żądania/odpowiedzi usługi Azure Functions przed przekazaniem go do niestandardowego modułu obsługi. |
false |
defaultAuthorizationLevel |
Określa wymagania uwierzytelniania dla uzyskania dostępu do niestandardowych punktów końcowych obsługi. Na przykład function wymaga klucza interfejsu API specyficznego dla funkcji w celu uzyskania dostępu. Aby uzyskać więcej informacji, zobacz poziomy autoryzacji. |
function |
route |
Określa wzorzec ścieżki adresu URL, na który odpowiada program obsługi niestandardowej.
{*route} Odpowiada każdej ścieżce adresu URL (takiej jak /, /mcp, /api/tools lub /anything/nested/path) i przekazuje żądanie do niestandardowej procedury obsługi. |
{*route} |
Wbudowane uwierzytelnianie serwera
Uwierzytelnianie oparte na protokole OAuth i autoryzacja udostępniane przez platformę App Service implementuje wymagania specyfikacji autoryzacji MCP, takie jak wystawianie wyzwania 401 i uwidacznianie dokumentu metadanych zasobów chronionych (PRM). Po włączeniu wbudowanego uwierzytelniania klienci próbujący uzyskać dostęp do serwera są przekierowywani do dostawców tożsamości, takich jak Microsoft Entra ID na potrzeby uwierzytelniania przed nawiązaniem połączenia.
Aby uzyskać więcej informacji, zobacz Konfigurowanie wbudowanej autoryzacji serwera (wersja zapoznawcza) i Hostowanie serwerów MCP w usłudze Azure Functions.
Integracje agentów usługi Azure AI Foundry
Agentów w narzędziu Azure AI Foundry można skonfigurować do używania narzędzi na serwerach MCP hostowanych w usłudze Azure Functions.
Rejestrowanie serwera w Centrum interfejsów API platformy Azure
Podczas rejestrowania serwera MCP w Centrum interfejsu API platformy Azure tworzysz prywatny wykaz narzędzi organizacyjnych. Takie podejście jest zalecane w przypadku udostępniania serwerów MCP w całej organizacji ze spójnym ładem i możliwościami odnajdywania. Aby uzyskać więcej informacji, zobacz Rejestrowanie serwerów MCP hostowanych w usłudze Azure Functions w Centrum interfejsu API platformy Azure.
Obsługa publicznej wersji zapoznawczej
Możliwość hostowania własnych serwerów MCP opartych na zestawie SDK w usłudze Functions jest obecnie dostępna w wersji zapoznawczej i obsługuje następujące funkcje:
- Serwery bezstanowe wykorzystujące transport streamable-http. Jeśli chcesz, aby serwer był stanowy, rozważ użycie rozszerzenia MCP usługi Functions.
- Serwery zaimplementowane przy użyciu zestawów SDK MCP języka Python, TypeScript, C# lub Java.
- Podczas uruchamiania projektu lokalnie musisz użyć Azure Functions Core Tools (
func start). Obecnie nie można użyćF5do rozpoczęcia pracy z debugerem. - Serwery muszą być hostowane jako aplikacje planu Flex Consumption.
Samples
Jeszcze nie jest dostępny.