當你的 AI 編碼智慧體掌握了應用程式的真實上下文時,它編寫的程式碼質量會更高。Laravel MCP 是該框架針對這一問題給出的方案,也是將你的應用能力暴露給任何 AI 客戶端(從編碼工具到 ChatGPT 再到 Claude)的基礎。
如果沒有它,你的智慧體會憑空猜測列名、虛構路由,並搜尋那些可能與你已安裝包版本不匹配的文件。有了它,你就能為 AI 工具提供對應用架構、路由、資料和操作的結構化訪問。曾經幫你快速構建應用的伺服器,現在成為了使用者接入的新入口。
本指南涵蓋了如何開始使用 laravel/mcp,這是一個讓你構建 MCP 伺服器並將應用能力暴露給外部 AI 客戶端的擴充套件包。
MCP 為你的 Laravel 應用做了什麼
MCP 代表模型上下文協議(Model Context Protocol)。Anthropic 於 2024 年 11 月將其作為一種開放標準引入,旨在定義 AI 智慧體如何與外部工具及資料來源進行通訊。
在 MCP 出現之前,每個想要連線到你資料的 AI 工具都需要構建自己的整合。MCP 用一個統一標準取代了所有這些方案。任何相容 MCP 的客戶端(如 Claude、Cursor 或 GitHub Copilot)都可以連線到任何相容 MCP 的伺服器,包括你在 Laravel 中構建的伺服器。
實際效果是,你的智慧體不再需要“猜”,而是可以直接“查詢”。透過使用 Laravel MCP 構建伺服器並將其連線到你的應用,你的智慧體可以告訴你 orders 表中存在哪些列,在編寫遷移檔案前執行資料庫查詢來驗證結果,並查詢你安裝的精確 Filament 版本,而不是從通用概覽中進行猜測。
Laravel MCP 伺服器暴露了三種類型的能力
- Tools(工具): 智慧體可以呼叫的可執行函式,例如查詢訂單或建立發票。
- Resources(資源): 透過 URI 暴露的可讀資料,例如資料庫記錄或配置檔案。
- Prompts(提示詞): 用於確保智慧體行為一致的可複用對話模板。
它還驅動了 Laravel Boost(你的 AI 助手),助力快速、可靠的 AI 輔助 Laravel 開發。
何時選擇 MCP
如果你是一名獨立開發者,可能會懷疑 MCP 是否大材小用。對於純粹的上下文獲取而言,有時確實如此。一個 gh CLI 呼叫或者向你自己的 API 傳送一個簡單的 curl 請求,就能讓智慧體獲得它所需的內容,而無需額外的層級。如果你只是想把一些 JSON 資料注入到提示詞中,就不需要專門為此使用協議。
當你的應用使用者不是你自己時,MCP 的價值就開始顯現。非技術使用者無法使用 CLI 或編寫 API 請求。他們只需連線到應用,進行一次身份驗證,就可以開始提問。這就是 MCP 填補的空白。它使你的 Laravel 應用能夠與任何 AI 客戶端對話,而無需使用者理解 HTTP 動詞或終端命令。
它在規模化場景下同樣重要。一名開發者可以為少數工具搭建定製的整合,但一個 50 人的團隊做不到。當你擁有幾十名工程師,且每個人使用不同的 AI 客戶端時,單一的 MCP 伺服器能為所有客戶端提供相同的結構化訪問許可權。這就是為什麼 MCP 在企業環境中普及最快的原因:企業有真實的安全需求、集中式身份驗證,且使用者基數太大,無法為每個工具管理一次性的整合。
因此,問題不在於“MCP 還是 CLI”,而在於“誰在連線,有多少人?”如果只有你自己,從最簡單有效的方式開始即可。如果物件是你的團隊或使用者,MCP 提供了一個統一的、可構建且安全的面,而不是零散的多個介面。
構建 MCP 伺服器:安裝 Laravel MCP
安裝包併發布路由檔案
這將建立 routes/ai.php。在此檔案中使用 Mcp::web() 為 HTTP 客戶端註冊伺服器,或使用 Mcp::local() 為基於 Artisan 的本地工具註冊伺服器。
生成伺服器類
伺服器類是工具、資源和提示詞的容器。PHP 特性(Attributes)用於定義其元資料。
定義你的第一個工具
工具是你暴露的主要能力。一個工具包含兩個方法:schema() 定義智慧體必須提供的輸入,handle() 執行操作並返回響應。
生成一個工具
在你的伺服器上註冊它
如果你的工具需要容器中的服務,請將其新增到 handle 方法的簽名中,Laravel 會自動解析它。
認證
對於暴露給遠端客戶端的 MCP 伺服器,請使用中介軟體保護路由。該包透過 Laravel Passport 支援 OAuth 2.1,並透過 Laravel Sanctum 支援令牌認證。
對於 OAuth 2.1,在 routes/ai.php 中呼叫 Mcp::oauthRoutes() 併發布身份驗證檢視。
我們撰寫了一篇關於 MCP 身份驗證與安全最佳實踐的深度文章。
使用 MCP Inspector 進行測試
在連線真實的客戶端之前,請使用內建的 MCP 檢查器(Inspector)。它會連線到你的伺服器,允許你呼叫每個工具,並展示每次互動的原始請求和響應。這是確認 schema 是否正確以及響應解析是否符合預期的最快方法。
資源與提示詞
繼工具之後,資源和提示詞是順理成章的下一步。資源透過 URI 暴露可讀資料,例如 orders://reports/monthly。提示詞則定義了可複用的對話模板,以確保智慧體在不同客戶端間行為的一致性。
生成兩者的方法:
讓你的 Laravel 應用成為 AI 工作流的積極參與者
Laravel MCP 讓你的應用成為 AI 工作流的積極參與者,而不是讓智慧體憑空猜測的被動程式碼庫。laravel/mcp 包為你提供了將應用暴露給任何相容 MCP 客戶端的基本原語,並採用了你從框架其他部分早已熟悉的流暢語法。
想檢視實際效果,請檢視 Locket,這是一個我們構建的演示應用,旨在展示 Laravel MCP 在真實產品環境中的應用。你可以閱讀程式碼或觀看演示。
當你準備好親手嘗試時,可以先從一個解決應用中實際問題的簡單工具開始。將其連線到 Claude 或 Cursor,看看當智慧體查詢你的真實資料而不是憑空虛構時,互動體驗會有怎樣的不同。然後,閱讀 laravel/mcp 文件,進一步瞭解如何使用資源、提示詞和 OAuth。
