Token导航 LogoToken导航TokenDH.com
MCP SDK Functions Hosting Java logo
运维云端未说明官方来源来源级核验

MCP SDK Functions Hosting Java

MCP Server

在Azure Functions上托管使用官方MCP SDK构建的远程MCP服务器,提供无服务器架构的扩展性和安全性。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
Bicep云计算本地部署

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Azure-Samples

提供方

Azure-Samples

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

在Azure Functions上使用官方MCP SDK构建的主机远程MCP服务器(公开预览版)

此存储库包含运行模型上下文协议(MCP)服务器的说明和示例,该服务器使用 Java/Quarkus Azure功能。该示例是一个简单的天气服务器,您可以克隆它以在本地运行,并在几分钟内使用Azure Developer CLI部署到云端。

在Azure Functions上以自定义处理程序运行MCP服务器

Azure功能MCP扩展 允许开发人员使用Function触发器和绑定构建MCP服务器,这本质上是Function的事件驱动编程框架。这些MCP服务器可以像任何Function App一样远程托管在无服务器平台上。

对于那些已经构建的服务器 Anthropic的MCP SDK 或者更喜欢使用这些SDK构建,也可以通过以下方式在Azure Functions上托管服务器: 自定义处理程序自定义处理程序是从Functions主机接收事件的轻量级web服务器。它们允许您托管MCP服务器 无代码更改 并受益于Azure Function的突发规模、无服务器定价模型和安全功能。

此回购侧重于第二种情况:


1. 此示例使用Visual Studio Code作为主客户端。将其配置为允许的客户端应用程序:

azd env set PRE_AUTHORIZED_CLIENT_IDS aebc6443-996d-45c2-90f0-388ff96faa56


   > \[!注意\]
   > 使用Microsoft租户的Microsoft员工必须提供服务管理参考(您的服务树ID): `azd env set SERVICE_MANAGEMENT_REFERENCE `。没有它,您将无法创建Entra应用程序注册,并且配置将失败。

1. 跑 `azd up` 在 **根目录** (其中 `azure.yaml` 是)。选择一个Azure订阅以将资源部署到可用区域并从中进行选择(例如美国东部)。如果愿意,请启用vnet。

   部署完成后,您的终端将显示类似于以下内容的输出:

(✓) Done: Resource group: rg-resource-group-name (12.061s) (✓) Done: App Service plan: plan-random-guid (6.748s) (✓) Done: Virtual Network: vnet-random-guid (8.566s) (✓) Done: Log Analytics workspace: log-random-guid (29.422s) (✓) Done: Storage account: strandomguid (34.527s) (✓) Done: Application Insights: appi-random-guid (8.625s) (✓) Done: Function App: func-mcp-random-guid (36.096s) (✓) Done: Private Endpoint: blob-private-endpoint (30.67s)

Deploying services (azd deploy) (✓) Done: Deploying service mcp - Endpoint: https://functionapp-name.azurewebsites.net/


### 在Visual Studio代码上连接到服务器

1. 打开 _.vcode/mcp.json_ 在编辑。
1. 单击停止本地服务器 _停止_ 按钮上方 **本地mcp服务器**.
1. 单击启动远程服务器 _开始_ 按钮上方 **远程mcp服务器**.
1. Visual Studio代码将提示您输入函数应用程序名称。从终端输出或门户复制它,然后按enter键。
1. Visual Studio代码现在应该提示您向Microsoft进行身份验证。点击 _允许_,然后登录到您的电子邮件帐户(用于访问Azure门户的帐户)。假设您能够登录,过一会儿您应该会看到可用的工具数量。
1. 在代理模式下打开Copilot并确保 **远程mcp服务器** 已在工具列表中选中。
1. 询问Copilot“使用#remote mcp服务器返回西雅图的天气”。

> \[!提示\]
> 除了在中启动MCP服务器外 _mcp.json_,您可以通过单击查看服务器的输出 _更多。.._ -> _显示输出_。输出提供了有用的信息,例如连接可能失败的原因。
>
> 单击齿轮图标将日志级别更改为“跟踪”,以获取有关客户端(Visual Studio代码)和服务器之间交互的更多详细信息。
>
> 

### 内置服务器身份验证和授权

服务器应用程序配置了 [内置服务器身份验证和授权](https://learn.microsoft.com/azure/app-service/configure-authentication-mcp) 功能,它实现了 [MCP授权规范](https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization#authorization-server-discovery)例如发出401质询并暴露受保护资源元数据(PRM)。

在Visual Studio Code的调试输出中,您可以看到MCP客户端和服务器交互时的一系列请求和响应。使用内置MCP服务器授权时,您应该看到以下事件序列:

1. 编辑器向MCP服务器发送初始化请求。
1. MCP服务器返回一个错误,表示需要授权。响应包括指向应用程序的受保护资源元数据(PRM)的指针。内置的授权功能为服务器应用程序生成PRM。
1. 编辑器获取PRM并使用它来标识授权服务器。
1. 编辑器尝试从授权服务器上的已知端点获取授权服务器元数据(ASM)。
1. Microsoft Entra ID不支持已知端点上的ASM,因此编辑器转而使用OpenID Connect元数据端点来获取ASM。它试图通过在任何其他路径信息之前插入已知的端点来发现这一点。
1. OpenID Connect规范实际上将众所周知的端点定义为路径信息之后,这就是Microsoft Entra ID托管它的地方。因此,编辑器会再次尝试使用这种格式。
1. 编辑器成功检索ASM。然后,它将此信息与自己的客户端ID结合使用以执行登录。此时,编辑器会提示您登录并同意该应用程序。
1. 假设您成功登录并同意,编辑器将完成登录。它向MCP服务器重复初始化请求,这次在请求中包含授权令牌。此重试在调试输出级别不可见,但您可以在跟踪输出级别看到它。
1. MCP服务器验证令牌,并对初始化请求作出成功响应。标准MCP流程从这一点开始继续,最终发现了本示例中定义的MCP工具。

## 重新部署

如果要在更改后重新部署服务器,请运行 `azd deploy`。(参见azd命令 [参考](https://learn.microsoft.com/azure/developer/azure-developer-cli/reference).)

> \[!注意\]
> 部署的代码文件总是被最新的部署包覆盖。

## E2E测试

基于最小节点的端到端测试运行器:

cd e2e npm install npm test


## 备注

- `host*.json` 模板在包时解析运行器JAR名称

目录标签

目录标签

Bicep云计算本地部署MCP服务器AzureFunctions无服务器架构AI工具

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP