拒絕 Context Switching!GitHub Copilot 直接調用 Laravel 商業邏輯:整合 MCP 協定的實戰配置

2026/03/8 | AI 人工智慧新知, API 串接與自動化, Laravel技術分享, 全端與程式開發

告別視窗切換:讓 Copilot 直接與您的 Laravel 商業邏輯對話

還在忍受 AI 編碼時的胡言亂語嗎?當 GitHub Copilot 因缺乏正確上下文而給出暗藏危機的程式碼時,您的開發效率正在悄悄流失。本文將帶您實戰 2026 年的開發者新標準——模型上下文協定 (MCP),逐步教您如何將 Laravel 應用程式打造成一個 AI 專屬的查詢伺服器。拋棄繁瑣的文件查閱與視窗切換,立即升級您的開發體驗,讓 Copilot 成為真正懂您業務邏輯的得力助手!

需要專業協助?

聯絡浪花專案團隊 →

拒絕 Context Switching!GitHub Copilot 直接調用 Laravel 商業邏輯:整合 MCP 協定的實戰配置

嗨,我是 Eric。身為浪花科技的資深工程師,我必須承認,2026 年的今天,如果你的 IDE 還只是單純的「文字編輯器」,那你可能真的在浪費生命。我們每天都在談論 AI Agent,但最諷刺的是,我們自己的開發環境卻常常跟不上 AI 的腳步。

最近團隊裡發生了一個典型的慘案:一位新進的後端工程師在寫 API 時,為了確認一個複雜的「會員等級折扣計算邏輯」,在 VS Code、資料庫 GUI 工具、還有那陳舊的 Confluence 文件之間切換了無數次視窗。結果呢?GitHub Copilot 給了他一段「看起來很對」但實際上完全過時的幻覺代碼。

這不是 AI 的錯,是我們沒給它正確的「上下文 (Context)」。

今天這篇文章,我們要來硬派一點,直接實戰GitHub Copilot 直接調用 Laravel 商業邏輯的配置。我們要利用 2026 年已經成為標準的 Model Context Protocol (MCP),把你的 Laravel 專案變成一個可以被 AI「查詢」的伺服器,讓 Copilot 不再瞎猜,而是直接執行你寫好的 Service Class 來獲取真理。

為什麼 Copilot 需要 MCP (Model Context Protocol)?

在 2024 年以前,Copilot 的運作原理主要是 RAG (Retrieval-Augmented Generation) 加上有限的檔案視窗。它能看到你有打開的檔案,但它「執行」不了你的程式碼。

到了 2026 年,MCP 協定改變了一切。MCP 讓你的應用程式(這裡是 Laravel)可以暴露「資源 (Resources)」和「工具 (Tools)」給 AI 模型。這意味著,你可以告訴 Copilot:「嘿,當你需要計算運費時,不要自己瞎掰公式,請直接調用我後端已經寫好的 ShippingService::calculate() 方法。」

這就是我們今天要達成的目標:讓 IDE 裡的 AI 代理人,直接與 Laravel 的商業邏輯對話。

實戰架構:Laravel MCP Server

我們要實作的架構如下:

  • Client 端:VS Code (搭配 GitHub Copilot Chat) 或 Cursor。
  • Protocol:MCP (透過 stdio 或 SSE 傳輸)。
  • Server 端:一個運行中的 Laravel 實體,安裝了 MCP Server SDK。

步驟一:安裝 Laravel MCP 套件

首先,我們需要讓 Laravel 聽得懂 MCP。在 2026 年,社群已經有了成熟的解決方案(這裡假設使用主流的 laravel-mcp-server 套件)。

打開你的終端機:

composer require roamer-tech/laravel-mcp-server
php artisan mcp:install

這會產生一個配置文件 config/mcp.php。Eric 這裡要囉嗦一句,資安至上。請務必在設定檔中限制 MCP Server 只能在本地開發環境 (APP_ENV=local) 運行,千萬別把這東西暴露到 Production 環境,除非你想讓全世界的 AI 都能隨意操作你的資料庫。

步驟二:將商業邏輯封裝為 MCP Tool

假設我們有一個複雜的折扣計算邏輯,散落在 DiscountService 中。我們不希望 AI 去閱讀那些散亂的程式碼,我們希望它直接「問」結果。

我們要建立一個 MCP Tool。執行以下指令:

php artisan make:mcp-tool CalculateDiscountTool

接著,編輯生成的檔案。這裡的關鍵是 Input Schema,這告訴 Copilot 它需要提供什麼參數才能調用這個邏輯。

<?php

namespace App\Mcp\Tools;

use App\Services\DiscountService;
use RoamerTech\Mcp\Support\Tool;
use RoamerTech\Mcp\Schema\Input;

class CalculateDiscountTool extends Tool
{
    // 工具名稱,Copilot 會根據這個名稱來決定何時調用
    protected string $name = 'calculate_cart_discount';

    // 描述非常重要,這就是 AI 的 Prompt
    protected string $description = '根據購物車金額與會員等級,計算最終折扣金額。當用戶詢問「這筆訂單折扣多少」時使用。';

    public function __construct(protected DiscountService $discountService) {}

    public function input(): array
    {
        return [
            Input::number('total_amount')
                ->description('購物車原始總金額')
                ->required(),
            Input::string('member_tier')
                ->description('會員等級 (例如: gold, silver, bronze)')
                ->required(),
            Input::array('coupon_codes')
                ->description('使用的優惠券代碼列表')
                ->optional(),
        ];
    }

    public function handle(array $arguments): array
    {
        // 這裡就是「GitHub Copilot 直接調用 Laravel 商業邏輯」的核心
        // 我們直接執行既有的 Service,保證邏輯與專案一致
        $finalAmount = $this->discountService->calculate(
            $arguments['total_amount'],
            $arguments['member_tier'],
            $arguments['coupon_codes'] ?? []
        );

        return [
            'discounted_amount' => $finalAmount,
            'message' => '計算成功,邏輯基於 2026 Q2 行銷活動規則',
        ];
    }
}

步驟三:註冊 Tool 到 MCP Server

app/Providers/McpServiceProvider.php 中註冊我們剛寫好的 Tool:

public function boot(): void
{
    McpServer::registerTool(CalculateDiscountTool::class);
}

步驟四:配置 VS Code 連接 Laravel MCP

現在 Laravel 端準備好了,我們要告訴 GitHub Copilot 怎麼找到這個 Server。編輯你的 VS Code 設定檔(通常在 ~/.config/Code/User/globalStorage/mcp-settings.json 或專案目錄下的 .vscode/mcp.json)。

{
  "mcpServers": {
    "laravel-core": {
      "command": "php",
      "args": [
        "artisan",
        "mcp:serve",
        "--transport=stdio"
      ],
      "env": {
        "APP_ENV": "local"
      }
    }
  }
}

重啟 VS Code,你會發現 Copilot 的狀態列多了一個「MCP Connected」的綠燈。

實際體驗:與商業邏輯對話

現在,見證奇蹟的時刻。打開 GitHub Copilot Chat,輸入以下 Prompt:

「我現在有一筆 5000 元的訂單,會員是 Gold 等級,用了 ‘SUMMER2026’ 優惠券,請幫我算一下最後金額,並解釋折扣邏輯。」

發生了什麼事?

  1. Copilot 分析語意,發現你的意圖與 calculate_cart_discount 工具的描述相符。
  2. Copilot 自動生成 JSON 參數 {"total_amount": 5000, "member_tier": "gold", ...}
  3. 透過 MCP 協定,這個請求被發送到你正在運行的 Laravel php artisan mcp:serve 進程。
  4. Laravel 執行了 DiscountService,跑了真正的商業邏輯(可能包含查資料庫、呼叫 Redis 等)。
  5. 結果回傳給 Copilot。
  6. Copilot 回答你:「根據系統計算,折扣後金額為 4200 元。計算邏輯基於 2026 Q2 規則…」

這比起讓 AI 閱讀過時的 Markdown 文件,或是去猜測那些只有上帝才知道的魔術數字(Magic Numbers),準確度是 100%。

進階應用:讓 AI 讀懂 Eloquent Schema

除了調用邏輯,我強烈建議大家實作「Resource」功能,把 Laravel 的 Eloquent Model 定義暴露給 MCP。

你可以寫一個 SchemaResource,當 Copilot 問「User 有哪些關聯?」時,MCP 直接回傳 $user->posts() 的關聯定義,而不是讓它去猜資料庫欄位。這對於寫複雜的 SQL Query 或 Eloquent 查詢非常有幫助。

Eric 的碎碎念:關於安全性

雖然 GitHub Copilot 直接調用 Laravel 商業邏輯 聽起來很爽,但身為資深工程師,我有責任潑桶冷水:

  • 唯讀原則 (Read-Only):初學者請盡量只開放「查詢」類 (GET) 的邏輯給 AI。如果你開放了 DeleteUserTool,哪天 AI 誤解了你的指令,把測試資料庫清空事小,如果不小心連到 Staging 環境,那你就準備寫檢討報告了。
  • Context Window 限制:雖然 MCP 解決了資訊獲取問題,但回傳的資料量還是要注意。不要設計一個 Tool 會回傳 10,000 筆訂單陣列,那會瞬間塞爆 Context Window,導致 AI 當機。

總結

2026 年的開發者體驗 (DX) 已經進化到「Agentic IDE」的時代。透過整合 MCP 協定,我們不再只是跟一個「懂語法的機器人」結對編程,而是跟一個「懂業務邏輯的數位同事」合作。

把那些繁瑣的、需要查閱大量文件的邏輯封裝成 MCP Tools,讓 Copilot 幫你跑腿。這才是自動化的真諦,不是嗎?

延伸閱讀

你的開發團隊是否還在為「AI 導入」與「現有系統整合」感到頭痛?浪花科技專精於 2026 最新 MCP 架構與 Laravel 企業級開發。想要打造專屬於你企業的 AI 開發工作流嗎?

立即聯繫我們,升級你的數位生產力

常見問題 (FAQ)

Q1: MCP Server 會影響 Laravel 應用程式的效能嗎?

不會。MCP Server 通常是透過獨立的 `php artisan` 指令在本地端運行,與網頁伺服器(如 Nginx/PHP-FPM)是分開的進程。它只在開發者 IDE 發出請求時才會運算,且僅限於開發環境使用,不會影響 Production 效能。

Q2: 除了 GitHub Copilot,還有哪些工具支援 MCP?

截至 2026 年,除了 GitHub Copilot,Claude Desktop、Cursor 以及 Windsurf 等新一代 Agentic IDE 都已經原生支援 MCP 協定。這套配置基本上是「一次撰寫,隨處可用」。

Q3: 是否可以讓 MCP 直接修改資料庫(Write Operations)?

技術上可以,但強烈建議謹慎行事。若要開放寫入權限(如建立訂單、修改會員資料),務必在 Tool 層加入嚴格的驗證邏輯,甚至設計「Human-in-the-loop」機制,要求開發者在 IDE 中點擊確認後才執行,以免 AI 產生幻覺導致資料損毀。