本文將說明如何將Model Context Protocol(MCP)伺服器連接Azure Functions Microsoft Foundry Agent Service。 完成本指南後,您的代理可以發現並調用由 MCP 伺服器暴露的工具。
本文將遵循以下基本流程,從 Foundry Agent Service 設定 MCP 伺服器連線:
- 在 Azure 中建立並部署 MCP 伺服器到你的函式應用。
- 取得 MCP 伺服器端點的網址。
- 取得認證憑證(如需)。
- 關閉基於金鑰的認證(當不需要時)。
- 為現有代理新增 MCP 伺服器工具連線。
先決條件
在開始之前,請確保你已經準備好以下資源:
檢視連接選項
下表總結了目前支援的 Foundry Agent Service 中,驗證您的代理連接至 MCP 伺服器的選項:
| 方法 |
Description |
用例 |
額外設定 |
支援的功能 |
|
基於鍵 (預設) |
代理透過在請求標頭中傳遞共享 函式存取金鑰 來進行認證。 此方法是函式中 HTTP 端點的預設認證方式。 |
在開發期間或當 MCP 伺服器不需要 Microsoft Entra 認證時使用。 |
None |
Yes |
|
Microsoft Entra |
代理會使用自身身份(代理身份)或 Foundry 專案的共享身份(專案管理身份)來驗證。 |
在生產環境中使用 Agent 識別,但在開發環境中限制共用識別。 |
啟用內建的 MCP 認證,同時也禁用基於金鑰的驗證。 |
專案管理(共享)身份 |
|
OAuth 身分傳遞 |
代理會提示使用者登入並授權存取,並使用提供的憑證進行認證。 |
在每個使用者必須用自己的身份進行驗證,且使用者上下文必須被持續儲存時,使用於生產環境。 |
啟用內建的 MCP 認證,同時也禁用基於金鑰的驗證。 |
Yes |
|
未經認證的存取 |
客服人員打未經認證的電話。 |
在開發期間或 MCP 伺服器僅存取公開資訊時使用。 |
關閉基於金鑰的驗證。 |
Yes |
欲了解更多 Foundry Agent Service 支援的 MCP 伺服器認證選項,請參閱 「為 MCP 工具設定認證」。
取得遠端 MCP 伺服器端點
在你能將代理程式連接到 Functions 託管的 MCP 伺服器之前,必須取得該服務的端點 URL。 具體的網址格式取決於你如何建立和部署你的 MCP 伺服器:
https://<FUNCTION_APP_NAME>.azurewebsites.net/runtime/webhooks/mcp
更多資訊請參閱Azure Functions中的 Remote MCP servers。
取得認證
你的代理需要用來連接 MCP 伺服器的憑證,取決於你打算如何保護連線。 選擇標示你連線認證選項的標籤。
當你使用存取金鑰連接 MCP 伺服器端點時,你使用共享的秘密金鑰,讓隨機代理更難連接到你的伺服器。
這很重要
雖然存取金鑰預設能幫助防止不想要的端點存取,但可考慮使用 Microsoft Entra ID 或 OAuth 身份驗證,以加強生產環境中 MCP 伺服器端點的安全性。
你需要的存取金鑰名稱會依據你的 MCP 伺服器部署而定:
| MCP 伺服器類型 |
機碼名稱 |
鍵類型 |
| 基於 MCP 擴充的伺服器 |
mcp_extension |
系統金鑰 |
| 自架 MCP 伺服器 |
default |
主機金鑰 |
要從 Azure 入口網站取得金鑰:
- 前往 Azure 入口網站中的函式應用程式資源。
- 在左側選單中展開 功能 下拉選單。
- 選擇 應用程式金鑰。
- 根據你的 MCP 伺服器類型,複製
mcp_extension 金鑰(位於 系統金鑰)或 default 金鑰(位於 主機金鑰)。
更多資訊請參閱 Work with access keys in Azure Functions。
Agent Identity 和 Project Managed Identity都使用Microsoft Entra認證。 目前 Functions 只支援 專案管理身份,這需要你的伺服器使用 內建的認證與授權。
如果你的伺服器應用程式沒有使用者指派的管理身份, 先建立一個。
將伺服器應用程式中使用者指派的管理身份連接到 Foundry 專案:
在 Azure portal 搜尋 Foundry。 在 Microsoft Foundry 中,從 「所有資源」中選擇您的 Foundry 資源。
在資源管理>身份識別>使用者指派中,選擇+ 新增。 選擇你伺服器應用程式使用的使用者指派管理身份,然後選擇 新增。
選擇新加入的身份,並複製 客戶端 ID 值。
在你的伺服器應用程式中,將使用者指派的管理身份加入為允許的用戶端應用程式:
請前往 Azure 入口網站 的應用程式資源。
從左側選單選擇 設定>認證 。
請選擇您註冊的 Entra 身份提供者的 編輯 圖示。
在你的提供者中,將 客戶端應用需求 設為 允許來自特定客戶端應用程式的請求 ,並在 允許客戶端應用程式旁邊選擇編輯按鈕。
新增你使用者指派的管理身份的客戶端 ID,然後選擇確定,然後儲存。
從你伺服器應用程式的 Entra 應用程式註冊取得 應用程式 ID URI ,你需要它才能在代理中完成 Entra 認證註冊:
回到你應用程式 的認證 頁面,選擇註冊的 Entra 身份提供者名稱。 此選擇會帶你到 Entra 應用程式資源頁面。
在左側功能表中,選取 [管理公開>API]。
複製頁面頂端的 應用程式 ID URI 。 這個 ID 值看起來像 api://aaaabbbb-0000-cccc-1111-dddd2222eeee。
OAuth 身份直通會提示使用者登入並授權存取你的 MCP 伺服器。 若是具備內建認證功能的由 Functions 託管的 MCP 伺服器,請使用自訂 OAuth 搭配 Microsoft Entra 應用程式註冊。
要從 Azure 入口網站取得所需的憑證:
前往 Azure 入口網站中的函式應用程式資源。
從左側選單選擇 設定>認證 。
在 Microsoft 旁邊選擇 Entra 應用程式名稱。 此選擇會帶你進入 Entra 應用程式資源。
從概覽頁面的 Essentials 中,複製以下欄位的數值:
-
應用程式 (用戶端) 識別碼
-
目錄 (租用戶) ID
-
應用程式 ID URI
利用租戶 ID 來建立這些必要的 OAuth URL:
| 網址類型 |
格式 |
|
認證網址 |
https://login.microsoftonline.com/<TENANT_ID>/oauth2/v2.0/authorize |
|
權杖 URL |
https://login.microsoftonline.com/<TENANT_ID>/oauth2/v2.0/token |
|
重新整理URL |
https://login.microsoftonline.com/<TENANT_ID>/oauth2/v2.0/token |
用你實際的租戶編號值來替換 <TENANT_ID> 。 這些數值留到以後再用。
選取 [管理>憑證和密碼]。 如果還沒有,請建立一個新的客戶端秘密,並複製它的值以備後續使用。
選擇 「管理>Expose an API 」並複製現有的範圍。
在 Foundry 入口網站設定 OAuth 身份直通後,你會收到一個重定向網址。 您必須回到您的 Entra 應用程式註冊,才能將此重定向網址加入 Microsoft Entra 應用程式註冊。
由於未認證存取不需要共享的秘密或認證,因此不需要收集任何憑證。 不過,你必須 關閉基於金鑰的認證 ,讓伺服器端點允許匿名存取。
這很重要
此選項允許任何用戶端或代理存取您的 MCP 伺服器端點。 僅在回傳唯讀公用資訊的工具,或在私人開發期間使用。
新增你的 MCP 伺服器
建立與 MCP 伺服器的代理連線的過程取決於你具體的端點認證選項。
當你使用基於金鑰的驗證時,代理程式會透過在請求標頭中傳遞一個功能存取金鑰給你的 MCP 伺服器來進行認證。
要連接你的 MCP 伺服器端點:
前往鑄造廠入口(新鑄造廠)。
選擇頁面頂端的 「建置 」標籤,選擇一個代理程式連接到你的 MCP 伺服器。
在 Playground 分頁,展開 工具 下拉選單,選擇 新增。
在「選擇工具」的自訂標籤中,選擇「模型情境協定(MCP)>Create」。
在 新增模型上下文協定工具中,提供此表中的資訊以配置基於存取金鑰的連線:
| 領域 |
Description |
Example |
|
名稱 |
你的 MCP 伺服器的一個唯一識別碼。 預設使用你的函式應用程式名稱。 |
contoso-mcp-tools |
|
遠端 MCP 伺服器端點 |
你 MCP 伺服器的 URL 端點。 |
https://contoso-mcp-tools.azurewebsites.net/runtime/webhooks/mcp |
|
驗證 |
要使用的驗證方法。 |
Key-based |
|
Credential |
用來與你的函式應用程式進行驗證的鍵值對。 |
x-functions-key: aaaaaaaa-0b0b-1c1c-2d2d-333333333333 |
選擇 連接 以建立連接到你的 MCP 伺服器端點。 你會在 工具裡看到你的伺服器名稱。
選擇 儲存 以儲存 MCP 工具設定在你的代理程式中。
當你使用 Microsoft Entra 認證時,代理會透過管理身份來連接你的 MCP 伺服器來進行驗證。
要連接你的 MCP 伺服器端點:
前往鑄造廠入口(新鑄造廠)。
選擇頁面頂端的 「建置 」標籤,選擇一個代理程式連接到你的 MCP 伺服器。
在 Playground 分頁,展開 工具 下拉選單,選擇 新增。
在「選擇工具」的自訂標籤中,選擇「模型情境協定(MCP)>Create」。
在新增模型情境協定工具中,輸入此表格中的資訊以配置基於 Microsoft Entra 的連線:
| 領域 |
Description |
Example |
|
名稱 |
你的 MCP 伺服器的一個唯一識別碼。 您可以使用函式應用程式名稱。 |
contoso-mcp-tools |
|
遠端 MCP 伺服器端點 |
你 MCP 伺服器的 URL 端點。 |
https://contoso-mcp-tools.azurewebsites.net/runtime/webhooks/mcp |
|
驗證 |
要使用的驗證方法。 |
Microsoft Entra |
|
Type |
代理人用來驗證的身份類型。 |
Project Managed Identity |
|
觀眾 |
您函式應用程式 Entra 註冊的應用程式 ID URI。 這個值告訴身份提供者該令牌是針對哪個應用程式。 |
api://aaaabbbb-0000-cccc-1111-dddd2222eeee |
選擇 連接 以建立連接到你的 MCP 伺服器端點。 你會在 工具裡看到你的伺服器名稱。
選擇 儲存 以儲存 MCP 工具設定在你的代理程式中。
當你使用 OAuth 身份直通時,代理會提示使用者登入,然後在連接伺服器時使用回傳的存取權杖。
前往鑄造廠入口(新鑄造廠)。
選擇頁面頂端的 「建置 」標籤,選擇一個代理程式連接到你的 MCP 伺服器。
在 Playground 分頁,展開 工具 下拉選單,選擇 新增。
在「選擇工具」的自訂標籤中,選擇「模型情境協定(MCP)>Create」。
在 新增模型上下文協定工具中,輸入此表格中的資訊以設定 OAuth 身份直通連線:
| 領域 |
Description |
Example |
|
名稱 |
你的 MCP 伺服器的一個唯一識別碼。 您可以使用函式應用程式名稱。 |
contoso-mcp-tools |
|
遠端 MCP 伺服器端點 |
你 MCP 伺服器的 URL 端點。 |
https://contoso-mcp-tools.azurewebsites.net/runtime/webhooks/mcp |
|
驗證 |
要使用的驗證方法。 |
OAuth Identity Passthrough |
|
用戶端識別碼 |
您函式應用程式 Entra 註冊的用戶端 ID |
00001111-aaaa-2222-bbbb-3333cccc4444 |
|
客戶端密碼 |
您函式應用程式 Entra 註冊的用戶端祕密 |
abcEFGhijkLMNopqRST |
|
權杖 URL |
伺服器應用程式呼叫的端點,用來交換授權碼或憑證以取得存取權杖。 |
https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/oauth2/v2.0/token |
|
認證網址 |
使用者被導向去驗證並授權你的伺服器應用程式的端點。 |
https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/oauth2/v2.0/authorize |
|
重新整理URL |
當現有的存取權杖過期時,該端點用來取得新的存取權杖。 |
https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/oauth2/v2.0/token |
|
範圍 |
伺服器應用程式向授權伺服器請求的特定權限或資源存取等級 |
api://aaaabbbb-0000-cccc-1111-dddd2222eeee/user_impersonation |
選擇 連接 以建立連接到你的 MCP 伺服器端點。
建立憑證提供者後,你會收到一個 重定向網址。 在 關閉 此視窗之前,務必複製網址值。 您必須將此轉址網址加入您的 Entra 應用程式註冊中。
回到你的 Entra 應用程式註冊,然後在管理>認證下選擇 + 新增重定向 URI。 選擇 Web,貼上複製的 Redirect URI 值,然後選擇 Configure。
回到代理視窗,選擇 關閉>儲存 ,將 MCP 工具設定儲存在代理中。
只有當你的 MCP 伺服器不需要驗證且只存取公開資訊時,才使用未經認證的存取權限。
要連接你的 MCP 伺服器端點:
前往鑄造廠入口(新鑄造廠)。
選擇頁面頂端的 「建置 」標籤,選擇一個代理程式連接到你的 MCP 伺服器。
在 Playground 分頁,展開 工具 下拉選單,選擇 新增。
在「選擇工具」的自訂標籤中,選擇「模型情境協定(MCP)>Create」。
在 新增模型情境協定工具中,提供此表中的資訊以配置未認證連線:
| 領域 |
Description |
Example |
|
名稱 |
你的 MCP 伺服器的一個唯一識別碼。 您可以使用函式應用程式名稱。 |
contoso-mcp-tools |
|
遠端 MCP 伺服器端點 |
你 MCP 伺服器的 URL 端點。 |
https://contoso-mcp-tools.azurewebsites.net/runtime/webhooks/mcp |
|
驗證 |
要使用的驗證方法。 |
Unauthenticated |
選擇 連接 以建立一個未經認證的連線到你的 MCP 伺服器端點。 你現在應該會在 工具裡看到你的伺服器名稱。
選擇 儲存 以儲存 MCP 工具設定在你的代理程式中。
在將 MCP 伺服器連接到代理程式後,確認工具是否正常運作。
- 在 Agent Builder 裡,找到 Playground 下的聊天視窗。
- 輸入一個觸發你MCP工具的提示。 舉例來說,如果你的 MCP 伺服器有問候工具,可以試試看:
Use the greeting tool to say hello
- 如果你使用 OAuth 身份直通,請選擇 開放同意 並用你的 Entra 帳號登入。
- 當代理程式要求呼叫 MCP 工具時,請檢視工具名稱與參數,並選擇 Approve 以允許呼叫。
- 確認工具回傳的結果是預期的。
你的代理現在可以使用你在 Azure Functions 上託管的 MCP 伺服器所暴露的工具。
相關文章
以下額外文章能幫助你建立代理與功能應用程式的能力: