Skip to main content

概觀

2026 年 6 月,Laravel 官方部落格發佈了以 Laravel AI SDK 建構的 AI Agent 可連接 MCP(Model Context Protocol)伺服器的消息。 過去 Laravel MCP 提供的是「將 Laravel 應用作為 MCP 伺服器公開」的功能,這次新增的是反向功能,也就是「讓 Laravel 應用作為 MCP 用戶端連接其他 MCP 伺服器」。
MCP 本身的詳細機制請參考 Laravel MCP 文件。本頁只聚焦於用戶端功能。

為何實作在 Laravel MCP 而不是 AI SDK 本體

MCP 是一個涵蓋傳輸協商、handshake、認證流程等廣泛範圍的協定。若直接實作在 AI SDK 內,就無法在不透過 Agent 而想與 MCP 伺服器通訊的場景(例如佇列 Job 或 Console 指令)中重用。 因此 Laravel 團隊將功能分成兩個部分。
  • laravel/mcp:負責連線、協商、認證與 tool 呼叫的 MCP 用戶端本體
  • laravel/ai:讓 Agent 能自然地從 tools() 使用該用戶端的薄整合層
兩者可單獨使用,組合後就能讓 Agent 使用 MCP 伺服器的 tool,操作方式和手寫 tool 一模一樣。

連接到 MCP 伺服器

同時支援以本機 process 啟動的 STDIO 伺服器,以及透過 HTTP 的遠端伺服器。
連線、handshake、協定版本協商全部由用戶端處理,應用端只要呼叫 tools() 即可。

認證

Bearer Token

OAuth

包含 Nightwatch 在內許多託管的 MCP 伺服器需要 OAuth。在 Service Provider 註冊具名用戶端。
接著配置 OAuth 路由與 callback 處理。
這樣會產生 mcp.oauth.nightwatch.connect 與對應的 callback 路由。在 Blade 側只需放上連線按鈕。
使用者登入並同意授權後,callback closure 就會收到 token。你不需要自己處理重新導向 URL 與 PKCE 細節。 對於沒有使用者介入的背景處理,也提供 Client Credentials Grant。

整合到 Agent 中

最大的重點是:不需要修改 Agent 的 tools() 方法就能混入 MCP tool。
Laravel AI 會偵測 tools() 陣列內是否有 MCP tool,並包裝成符合 Agent 的 tool 契約。它會把 MCP 的輸入 schema 轉為 Laravel 的 JSON schema,當模型呼叫 tool 時發起遠端呼叫並將結果正規化後回傳。錯誤、結構化資料、純文字、串流更新皆自動處理,MCP 的細節不會滲入 Agent 側程式碼。 也可以在一個 Agent 中混用多種傳輸方式。
此外,為自己的 Laravel MCP 伺服器撰寫的 tool 類別,可以不透過用戶端連線就直接交給 Agent。也就是同一組 tool 可同時用於對外公開與 Agent 使用。

快取 Tool 清單

取得 tool 清單需要一趟往返伺服器。特別是走 OAuth 的遠端伺服器,每次 prompt 都呼叫就是浪費。由於 tool 清單不常變更,很適合作為快取對象。
MCP tool 會以純資料回傳,從快取還原後也能直接運作。

測試

就算沒有實際運作中的 MCP 伺服器,也能用 Laravel AI 的 fake 功能測試 Agent。MCP tool 名稱遵循 mcp_tools_<name> 的命名慣例,因此名為 search 的 tool 會以 mcp_tools_search 出現。
Agent 的一般迴圈會照樣執行,只有模型的發言由 fake 決定。tool 呼叫本身仍實際通過 MCP 層,因此不需要網路也能測試與正式環境相同的路徑。

目前支援的範圍

此首發版本在 STDIO 與 Streamable HTTP 兩種傳輸方式下支援 tool 與 prompt。認證方面支援 Bearer Token 與 OAuth。隨著 MCP 自身發展,支援範圍預計持續擴大。

相關頁面

打造 AI SDK 的自訂 Provider

介紹對應非內建 AI 服務的自訂 Provider 實作方式

Laravel Nightwatch 入門

解說本文範例中使用的託管監控服務 Nightwatch
最後修改於 2026年8月2日