我們用一個例子來說明,想像一個黑社會老大身邊有一位能幹的左右手(AI)。老大要調度底下不同門派的手下(各種系統與服務),卻發現:
每個門派都有自己的術語與規則,
而且這些規則還會不斷改變。
這位左右手必須花大量時間去適應每一個門派的語言與溝通方式,甚至還得派更多人手去隨時追蹤門派的新規矩,否則就無法有效下達指令。
這時候黑道圈為了解決這個問題,推出統一溝通方式的規範,這正是 Model Context Protocol(MCP) 所扮演的角色。
顧名思義,它被稱為 Protocol(協定),本質上就是一種溝通規範。
在技術世界裡,凡是冠上 Protocol 的東西,幾乎都有一個共同使命:化解不一致,消弭各自為政的混亂。這邊常見的舉例是USB,但我想舉其他例子,例如:
HTTP Protocol:統一了瀏覽器與伺服器的溝通方式。
現在,每個門派只需按照 MCP Protocol 宣告自己能提供的服務(例如:化學派有 createBomb,暗殺部有 assassinate),並附上方法說明,AI 左右手就能依照老大的需求正確調用。
這些由門派寫好的程式,必須「跑起來」才能被使用;至於要運行在哪裡,則會分成不同方式,以後會介紹。
我們來回顧一下 MCP 的兩大優勢:
MCP Server 按照規範提供服務給AI使用。
現在不需要在像以前一樣,派出人力為不同「門派」重新學習和適配,而是只要理解一套標準規範,就能與所有接入的資源進行協作。
無論底層系統如何更新,都能進行動態管理與能力協商,自動掌握每個分支能提供的方法與服務。AI 可以即時調用所需功能,不必被繁瑣的差異所困。
在沒有 MCP Server 的情況下,必須:
而在 MCP 模式下,變動由服務提供方維護。
例如:GitLab MCP Server 負責更新規則,使用方即可自動得知最新的方法與用法,無須再人工追蹤每個服務的變動。
如此一來,服務方只需專注於 功能開發與說明,整合、理解與協調的工作則交由 AI 與 MCP Server 自動完成。
host 跟 client 的概念可能比較難懂,這裡帶入一個簡單的例子:
VS Code 或是 cursor 就是作為 MCP Host。
當它連線到 Sentry MCP Server 時,會產生一個對應的 MCP Client 來專門維護這個連線。
當 VS Code 再連線到 Database MCP Server 時,則會再建立另一個 MCP Client。
如此,每一個 MCP Server 都對應一個專屬的 MCP Client,形成 一對一連線。
這樣設計的好處在於:
這樣第一篇就結束啦~ 好像打得有點太多了,之後每篇幅會再縮減一點,我們明天見!