基于MCP SDK的远程服务器的Azure Functions脚手架(TypeScript)
Azure Functions允许您远程托管使用官方MCP SDK构建的服务器,无需更改代码。如果您已经使用TypeScript MCP SDK构建了服务器,请使用此脚手架快速远程托管服务器。脚手架包含所需的Azure Function工件,以及用于自动基础设施配置和服务器部署的二头肌文件。 Bicep 是一种特定于域的语言,它使用声明性语法来部署Azure资源。
遵循中的说明 mcp-sdk函数托管节点仓库 利用此脚手架托管远程MCP服务器。
\[!注意\] 托管功能当前处于 早期预览.
部件巡检
回购有以下主要组成部分:
host.jsonlocal.settings.jsoninfra包含用于资源配置和服务器部署的二头肌文件的目录
host.json
Azure Functions部署时需要此文件。Azure Functions主机使用它来配置MCP服务器运行的正确设置(通过配置文件)。它还告诉主机如何运行服务器以及监听哪个端口。
{
"version": "2.0",
"configurationProfile": "mcp-custom-handler",
"customHandler": {
"description": {
"defaultExecutablePath": "npm",
"arguments": ["run", "start"]
},
"http": {
"DefaultAuthorizationLevel": "anonymous"
},
"port": ""
}
}我们将配置服务器以使用内置的身份验证和授权功能,因此我们禁用Azure Functions基于主机的身份验证并允许匿名访问。
内置功能实现了 MCP授权规范 例如发出401质询和托管受保护资源元数据(PRM)。启用该功能后,尝试访问服务器的客户端将被重定向到身份提供程序,如Microsoft Entra ID,以便在连接前进行身份验证。
本地设置
仅当您想使用Azure Functions核心工具在本地运行服务器时,才需要此文件,该工具提供Azure Functions主机的本地版本。它允许您在本地运行服务器,就像它在云中的Azure Functions环境中运行一样。
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "node",
"AzureWebJobsFeatureFlags": "EnableMcpCustomHandlerPreview"
}
}二头肌锉
所有二头肌文件都在 infra 目录。这 main.bicep 文件指定了各种Azure资源的配置及其设置和/或配置。除了Azure Functions应用程序和部署服务器的托管计划(Flex Consumption)之外,还创建了其他资源,如Azure存储帐户、应用程序洞察、虚拟网络、Entra应用程序等。
