你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
注释
使用 网络安全的 Azure AI Foundry 时,不支持在同一虚拟网络中部署的专用 MCP 服务器,仅支持可公开访问的 MCP 服务器。
可以通过将其连接到远程 模型上下文协议(MCP) 服务器上托管的工具(自带 MCP 服务器终结点)来扩展 Azure AI Foundry 代理的功能。 开发人员和组织维护这些服务器。 服务器公开 MCP 兼容的客户端(如 Azure AI Foundry 代理服务)可以访问的工具。
MCP 是一个开放标准,用于定义应用程序如何向大型语言模型(LLM)提供工具和上下文数据。 它支持将外部工具与模型工作流的一致、可缩放集成。
使用非Microsoft服务和服务器的注意事项
您使用连接的非Microsoft服务受你与服务提供商之间的条款的约束。 连接到非Microsoft服务时,某些数据(如提示内容)将传递到非Microsoft服务,或者应用程序可能会从非Microsoft服务接收数据。 你负责使用非Microsoft服务和数据,以及与使用该服务相关的任何费用。
你决定与本文中所述的 MCP 工具一起使用的远程 MCP 服务器是由第三方创建的,而不是Microsoft。 Microsoft尚未测试或验证这些服务器。 Microsoft对你或他人使用任何远程 MCP 服务器不负任何责任。
建议仔细查看和跟踪添加到 Foundry 代理服务的 MCP 服务器。 我们还建议你依赖于受信任的服务提供商本身托管的服务器,而不是代理。
MCP 工具允许你传递远程 MCP 服务器可能需要的自定义标头,例如身份验证密钥或架构。 建议查看与远程 MCP 服务器共享的所有数据,并记录数据以进行审核。 了解与数据保留和位置相关的非Microsoft操作惯例。
工作原理
需要将远程 MCP 服务器(现有的 MCP 服务器终结点)引入 Foundry 代理服务。 可以通过将它们添加为工具来引入多个远程 MCP 服务器。 对于每个工具,需要在同一代理中提供一个唯一的 server_label 值,并且提供一个指向远程 MCP 服务器的 server_url 值。 请务必仔细查看添加到 Foundry 代理服务的 MCP 服务器。
MCP 工具支持自定义标头,因此可以使用所需的身份验证架构或传递 MCP 服务器所需的其他标头来连接到 MCP 服务器。 要指定标头,您需要在每次运行时将其包含在 tool_resources 中。 这样,可以直接将 API 密钥、OAuth 访问令牌或其他凭据放入请求中。
最常用的标头是授权标头。 传入的标头仅适用于当前运行,并且不会持久保存。
有关使用 MCP 的详细信息,请参阅:
- 模型上下文协议网站上的安全最佳做法。
- 在Microsoft安全社区博客中了解和缓解 MCP 实现中的安全风险。
使用支持
| Azure AI Foundry 支持 | Python SDK | C# SDK | JavaScript SDK | REST API | 基本代理设置 | 标准代理设置 |
|---|---|---|---|---|---|---|
| - | ✔️ | - | - | ✔️ | ✔️ | ✔️ |
设置
按照 快速入门中的步骤创建 Azure AI Foundry 代理。
查找要连接到的远程 MCP 服务器,例如 GitHub MCP 服务器。 使用
mcp工具创建或更新 Azure AI Foundry 代理,并提供以下信息:-
server_url:MCP 服务器的 URL;例如,https://api.githubcopilot.com/mcp/. -
server_label:此 MCP 服务器的唯一标识符到代理;例如,github. -
allowed_tools:此代理可以访问和使用的工具的可选列表。
-
创建运行,并使用标头传递有关
mcp中tool_resources工具的附加信息:-
tool_label:使用创建代理时提供的标识符。 -
headers:传递 MCP 服务器所需的一组标头。 -
require_approval:(可选)确定是否需要审批。 支持的值为:-
always:开发人员需要为每个呼叫提供审批。 如果未提供值,则此值为默认值。 -
never:无需审批。 -
{"never":[<tool_name_1>, <tool_name_2>]}:提供不需要审批的工具列表。 -
{"always":[<tool_name_1>, <tool_name_2>]}:提供需要审批的工具列表。
-
-
如果模型尝试调用 MCP 服务器中需要审批的工具,则会出现运行状态
requires_action。 在该requires_action字段中,可以获取有关 MCP 服务器中调用的工具、要传递的参数和call_id值的更多详细信息。 查看工具和参数,以便你可以做出明智的决策以供审批。将
call_id设置为approve,向具有true的代理提交审批。
托管本地 MCP 服务器
Azure AI Foundry 代理服务运行环境仅接受远程 MCP 服务器终结点。 如果要从本地 MCP 服务器添加工具,则必须在 Azure 容器应用 或 Azure Functions 上自行托管该工具,才能获取远程 MCP 服务器终结点。 尝试在云中托管本地 MCP 服务器时,请注意以下注意事项:
| 本地 MCP 服务器设置 | 在 Azure 容器应用中托管 | 在 Azure Functions 中托管 |
|---|---|---|
| Transport | 需要 HTTP POST/GET 终结点。 | 需要 HTTP 流式传输。 |
| 代码更改 | 需要容器重建。 | 根目录中所需的特定于 Azure Functions 的配置文件。 |
| 身份验证 | 需要自定义身份验证实现。 | 仅基于密钥。 OAuth 需要 API 管理。 |
| 语言 | 在 Linux 容器中运行的任何语言(Python、Node.js、.NET、TypeScript、Go)。 | Python、Node.js、Java、.NET。 |
| 容器要求 | 仅限 Linux(linux/amd64)。 没有特权容器。 | 不支持容器化服务器。 |
| 依赖 | 所有依赖项都必须位于容器映像中。 | 不支持 OS 级依赖项(如 Playwright)。 |
| 州 | 仅限无状态。 | 仅限无状态。 |
| UVX/NPX | 支持. | 不支持。
npx 不支持启动命令。 |