Sdílet prostřednictvím


Vzdálený server MCP v místním prostředí ve službě Azure Functions (Public Preview)

Azure Functions nabízí dva způsoby hostování vzdálených serverů MCP:

Při prvním přístupu můžete k sestavení serveru MCP použít programovací model Azure Functions s triggery a vazbami. Server pak můžete vzdáleně hostovat tak, že ho nasadíte do aplikace funkcí.

Pokud už máte server MCP vytvořený pomocí oficiálních sad SDK MCP a chcete ho hostovat vzdáleně, druhý přístup pravděpodobně vyhovuje vašim potřebám. Abyste ho mohli hostovat ve službě Azure Functions, nemusíte na serveru provádět žádné změny kódu. Místo toho můžete přidat požadované artefakty Functions a server je připravený k nasazení. Tyto servery se proto označují jako servery MCP v místním prostředí.

Diagram znázorňující hostování aplikace funkcí a vlastních aplikací obslužných programů

Tento článek obsahuje přehled serverů MCP v místním prostředí a odkazy na relevantní články a ukázky.

Vlastní obslužné rutiny

Servery MCP v místním prostředí se nasazují na platformu Azure Functions jako vlastní obslužné rutiny. Vlastní obslužné rutiny jsou odlehčené webové servery, které přijímají události z hostitele služby Functions. Poskytují způsob, jak spouštět aplikace platformy Functions vytvořené pomocí architektur, které se liší od programovacího modelu Functions nebo v jazycích, které nejsou předem podporované. Další informace najdete v tématu Vlastní obslužné rutiny Azure Functions.

Když nasadíte server založený na sadě MCP SDK do služby Azure Functions, musíte do projektu zahrnout host.json . Minimální host.json vypadá takto:

{
   "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>"
    }
}

Poznámka:

Vzhledem k tomu, že datová část nasazená ve službě Azure Functions je obsahem bin/output adresáře, cesta ke zkompilované knihovně DLL je relativní vzhledem k danému adresáři, nikoli ke kořenovému adresáři projektu.

Příklad ještě není k dispozici.

configuration Profile Pomocí hodnoty mcp-custom-handler automaticky nakonfigurujete tato nastavení hostitele služby Functions, která jsou nutná pro spuštění serveru MCP ve službě Azure Functions:

  • http.enableProxying na true
  • http.routes na [{ "route": "{*route}" }]
  • extensions.http.routePrefix na ""

Tento příklad ukazuje soubor host.json s dalšími vlastnostmi vlastní obslužné rutiny nastavenými ekvivalentními použití mcp-custom-handler profilu:

{
    "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"
                }
            ]
        }
    }
}

Tato tabulka vysvětluje vlastnosti customHandler.httpa výchozí hodnoty:

Vlastnictví Jak funguje Výchozí hodnota
enableProxying Určuje, jak hostitel Azure Functions zpracovává požadavky HTTP na vlastní obslužné prvky. Je-li enableProxying nastaveno na true, hostitel Functions funguje jako reverzní proxy server a předává celý požadavek HTTP (včetně hlaviček, těla, parametrů dotazu) přímo do uživatelské obslužné rutiny. Toto nastavení poskytuje vlastní obslužné rutině úplný přístup k původním podrobnostem požadavku HTTP.

Když je enableProxyingfalse, hostitel funkcí nejprve zpracuje požadavek a transformuje ho do formátu požadavku a odpovědi Azure Functions, než ho předá vlastní obslužné rutině.
false
defaultAuthorizationLevel Řídí požadavek na ověřování pro přístup ke koncovým bodům vlastní obsluhy. Například vyžaduje přístup function ke klíči rozhraní API specifickému pro funkci. Další informace najdete v tématu Úrovně autorizace. function
route Určuje vzor cesty url, na který vlastní obslužná rutina reaguje. {*route} odpovídá libovolné cestě URL (například /, /mcp, /api/toolsnebo /anything/nested/path) a předá požadavek vlastní obslužné rutině. {*route}

Integrované ověřování serveru

Ověřování a autorizace založené na OAuth poskytované platformou služby App Service implementuje požadavky specifikace autorizace MCP, jako je vydání výzvy 401 a vystavení dokumentu PRM (Protected Resource Metadata). Když povolíte integrované ověřování, klienti, kteří se pokoušejí o přístup k serveru, se před připojením přesměrují na zprostředkovatele identity, jako je MICROSOFT Entra ID.

Další informace najdete v tématu Konfigurace integrované autorizace serveru (Preview) a hostování serverů MCP ve službě Azure Functions.

Integrace agentů Azure AI Foundry

Agenti v Azure AI Foundry je možné nakonfigurovat tak, aby používali nástroje na serverech MCP hostovaných ve službě Azure Functions.

Registrace serveru ve službě Azure API Center

Při registraci serveru MCP ve službě Azure API Center vytvoříte privátní katalog nástrojů organizace. Tento přístup se doporučuje pro sdílení serverů MCP ve vaší organizaci s konzistentními zásadami správného řízení a zjistitelností. Další informace najdete v tématu Registrace serverů MCP hostovaných ve službě Azure Functions ve službě Azure API Center.

Podpora verze Public Preview

Možnost hostovat vlastní servery MCP založené na sadě SDK ve službě Functions je aktuálně ve verzi Preview a podporuje tyto funkce:

  • Bezstavové servery, které používají streamable-http přenos. Pokud potřebujete, aby váš server byl stavový, zvažte použití rozšíření Functions MCP.
  • Servery implementované pomocí sad SDK pro Python, TypeScript, C# nebo Java MCP.
  • Při místním spuštění projektu musíte použít Azure Functions Core Tools (func start příkaz). V současné době nemůžete pomocí F5 spustit ladicí program.
  • Servery musí být hostovány jako aplikace plánu Flex Consumption.

Samples

Zatím není k dispozici.

Vlastní obslužné rutiny Azure Functions