概觀
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()使用該用戶端的薄整合層
連接到 MCP 伺服器
同時支援以本機 process 啟動的 STDIO 伺服器,以及透過 HTTP 的遠端伺服器。tools() 即可。
認證
Bearer Token
OAuth
包含 Nightwatch 在內許多託管的 MCP 伺服器需要 OAuth。在 Service Provider 註冊具名用戶端。mcp.oauth.nightwatch.connect 與對應的 callback 路由。在 Blade 側只需放上連線按鈕。
整合到 Agent 中
最大的重點是:不需要修改 Agent 的tools() 方法就能混入 MCP tool。
tools() 陣列內是否有 MCP tool,並包裝成符合 Agent 的 tool 契約。它會把 MCP 的輸入 schema 轉為 Laravel 的 JSON schema,當模型呼叫 tool 時發起遠端呼叫並將結果正規化後回傳。錯誤、結構化資料、純文字、串流更新皆自動處理,MCP 的細節不會滲入 Agent 側程式碼。
也可以在一個 Agent 中混用多種傳輸方式。
快取 Tool 清單
取得 tool 清單需要一趟往返伺服器。特別是走 OAuth 的遠端伺服器,每次 prompt 都呼叫就是浪費。由於 tool 清單不常變更,很適合作為快取對象。測試
就算沒有實際運作中的 MCP 伺服器,也能用 Laravel AI 的 fake 功能測試 Agent。MCP tool 名稱遵循mcp_tools_<name> 的命名慣例,因此名為 search 的 tool 會以 mcp_tools_search 出現。
目前支援的範圍
此首發版本在 STDIO 與 Streamable HTTP 兩種傳輸方式下支援 tool 與 prompt。認證方面支援 Bearer Token 與 OAuth。隨著 MCP 自身發展,支援範圍預計持續擴大。相關頁面
打造 AI SDK 的自訂 Provider
介紹對應非內建 AI 服務的自訂 Provider 實作方式
Laravel Nightwatch 入門
解說本文範例中使用的託管監控服務 Nightwatch