全部產品
Search
文件中心

Function Compute:MCP Streamable HTTP親和配置

更新時間:Dec 31, 2025

在MCP(Model Context Protocol)Streamable HTTP情境中,需要確保同一MCP會話的請求路由到同一個函數執行個體以保持上下文一致性。MCP Streamable HTTP親和功能基於MCP 2025-03-26和2025-06-18版本協議,系統解析HTTP回應標頭中的Mcp-Session-Id欄位建立會話綁定,將攜帶相同Mcp-Session-Id的請求路由到初始化會話的執行個體,適用於使用MCP Streamable HTTP傳輸的情境。

核心配置

在函數配置頁面的進階配置 > 隔離性、親和性中,開啟會話親和開關,選擇MCP Streamable HTTP 親和,配置單一實例並發 Session 數,確保HTTP觸發器支援GET、POST和DELETE方法,點擊部署即可啟用。

用戶端通過POST請求初始化Session,從回應標頭擷取Mcp-Session-Id,後續請求攜帶此ID即可路由到同一執行個體。

適用範圍

  • 通用限制:請先閱讀會話親和通用限制及原理說明

  • 協議版本要求:支援 MCP 協議版本 2025-03-26 和 2025-06-18。用戶端與函數必須遵循對應版本的 Transport 層規範。

  • 相容性說明:若函數啟用了 MCP Streamable HTTP 親和,則 禁止使用 MCP HTTP with SSE 調用,因會話管理機制不相容,導致調用失敗。

  • 訪問方式限制:僅支援通過 HTTP 觸發器 或 自訂網域名 訪問。

  • HTTP 觸發器配置要求:必須至少支援 GETPOST 和 DELETE 方法。

    DELETE 方法必要性:
    用戶端可通過 DELETE 請求主動結束會話。Function Compute將回收該 Session 的資源(包括執行個體並發配額)。若未啟用 DELETE 方法,系統將拒絕請求,導致 Session 無法正常釋放。
  • 要求節流:

    • 單一實例可同時處理多個Session(預設20個,最大200個),當單一實例下綁定的Session數達到上限時,系統自動建立新執行個體

    • 多個Session共用執行個體的200並發度配額(SSE長串連和POST請求共用)

  • 不支援 SessionAPI 管理。

配置MCP Streamable HTTP親和

流程概述

配置MCP Streamable HTTP親和包括四個步驟:開啟會話親和、選擇MCP Streamable HTTP類型、配置HTTP觸發器、配置參數並部署。需要確保函數代碼實現MCP協議規範。

開啟會話親和

  1. 登入Function Compute控制台

  2. 進入函數列表,選擇目標函數或建立函數

    建立函數時,可以直接在進階配置地區,找到隔離性、親和性配置項,進行後續配置後建立
  3. 在函數詳情頁面,點擊配置標籤頁

  4. 進階配置地區,找到隔離性、親和性配置項

  5. 點擊隔離性、親和性,展開配置面板

  6. 開啟會話親和開關

選擇MCP Streamable HTTP親和類型

  1. 在會話親和配置地區,選擇MCP Streamable HTTP 親和選項按鈕

  2. 系統自動顯示MCP Streamable HTTP親和的配置選項

配置HTTP觸發器

目的:確保HTTP觸發器支援MCP Streamable HTTP協議所需的要求方法。

操作步驟

  1. 在函數詳情頁面,點擊觸發器標籤頁

  2. 檢查或建立HTTP觸發器

  3. 確保觸發器支援以下要求方法:

    • GET:用於SSE長串連(可選)

    • POST:用於MCP請求和Session初始化(必需)

    • DELETE:用於終止Session(必需)

配置會話參數

目的:設定Session數量、生命週期和空閑時間長度,控制會話綁定和資源使用。

操作步驟

  1. 單一實例並發 Session 數:設定單一實例可同時處理的最大Session數

    • 預設值:20

    • 取值範圍:1-200

    • 建議:測試情境可設定為較小值(如10),生產環境根據業務需求調整;

  2. 單個 Session 生命週期:設定Session從建立到銷毀的最長時間長度

    • 預設值:21600秒(6小時)

    • 說明:超過此時間後,系統自動銷毀Session,不再保證親和性

  3. Session Idle時間長度:設定Session空閑多長時間後自動銷毀

    • 預設值:1800秒(30分鐘)

    • 說明:執行個體無請求超過此時間長度,Session進入空閑狀態並自動銷毀

  4. 點擊部署按鈕儲存配置

重要提示

  • 開啟會話親和後,系統會自動將單一實例並發度調整為200(系統預設值,不可手動調整)

  • 確保HTTP觸發器支援GET、POST和DELETE方法,DELETE方法用於終止Session

驗證MCP Streamable HTTP親和配置

請參考 MCP官方文檔Build an MCP client,可使用Function Compute提供的預設 http 觸發器網域名稱或自訂網域名,通過標準的 MCP Client向函數發起請求,驗證親和配置。

常見問題

為什麼MCP Streamable HTTP親和不生效?

可能原因

  1. HTTP觸發器未支援GET、POST和DELETE方法

  2. 未通過MCP標準協議發送請求

排查步驟

  1. 檢查HTTP觸發器是否支援GET、POST和DELETE方法

  2. 請使用標準 MCP Streamable協議請求

如何終止Session?

方法

  • 用戶端通過DELETE請求終止Session

  • 要求標頭中需要攜帶Mcp-Session-Id欄位

  • 系統清除平台側會話並釋放資源