Note: MCP(上)
Note: MCP(上)

Note: MCP(上)

Created
Apr 11, 2025 03:49 PM
Summary
最近Google 發布A2A protocol 延伸了去年Anthropic 提出的MCP,在 dive in A2A 之前想來紀錄 一下 MCP 筆記。
Tags
AI
Note

前言

最近Google 發布A2A protocol 延伸了去年Anthropic 提出的MCP,在 dive in A2A 之前想來紀錄 一下 MCP 筆記。
 
在研究MCP的時候,看了很多medium或YouTube等等的分享,在這裡想要提到實作及基本知識以外,更多值得討論的概念。
 
📌這篇文章希望能由淺入深,讓大家看到MCP除了只是「串一堆資料源或串API給代理人自動選用」的其他面向同時也不那麼的枯燥乏味。
 
溫馨提醒:文章不小心寫太長,所以分成上下兩部分,可以跳到自己有興趣的地方🥸

What is the Model Context Protocol (MCP)?

MCP 的全名為Model Context Protocol ,是一個開放式協議,由Anthropic於2024年11月提出,可實現AI 應用程式與代理和你的工具與資料來源之間的無縫整合。
在日常生活中,可以想像MCP就像是AI application中的USB-C,USB-C為各種電子設備連接到電腦提供了統一的介面標準一樣,如封面所示(圖片來源:https://norahsakal.com/blog/mcp-vs-api-model-context-protocol-explained/
在軟體領域的話,舉APIs 和 LSP 的概念和MCP 相比或許會更容易理解👇
API
LSP
MCP
概念
web application 如何與backend 的互動標準化
將IDEs如何與Language server tools的互動標準化
AI applications 如何與外部系統的互動標準化
其中會參與的角色
servers, databases, services
code navigation, code analysis, code intelligence
prompts, tools, resources

What is the influence of MCP ?

看到這裡,如果你在思考MCP 標準化帶來什麼影響的話,就繼續看下去吧!

Without MCP: Fragmented AI Development

notion image

With MCP: Standardized AI Development

notion image
從以上兩張圖可以看出,在沒有MCP之下,開發一個AI 應用,我們往往需要許多元件的客製化才能完成。然而,有了MCP後在四種不同層面將得到大幅的增益
角色
影響
AI應用開發者或工程師
將既有的app 直觀地接上MCP server而不需要額外的工作
MCP server端或tool的開發者
開發後的MCP server 將會在任何地方都適用
終端使用者
MCP 能提供更豐富、強大的AI應用場景
企業端
AI 產品團隊之間的職責更明確

Building with MCP

接下來,以下將介紹幾個MCP中有關的角色
notion image
角色
控制方
描述
範例
MCP Host
-
想要透過 MCP 存取資料的應用程式
Claude Desktop、IDE、AI工具
MCP Client
-
與MCP server建立1對1連接,模型可自行判斷何時調用工具
-
MCP Server
-
向Client應用程式expose工具
CRM MCP Server
Tools
模型
由模型調用的功能,並提供使用方式說明
檢索/搜尋、發送訊息、更新資料庫記錄
Resources
應用程式
向應用程式開放的資料,提供豐富介面進行互動
檔案、資料庫記錄、API回應
Prompts
使用者
預先定義的AI互動模板,視為使用者調用的工具
文件問答、會議記錄摘要、JSON格式輸出

Resources vs Tools 的基本差異

設計面
控制權
優點
分開設計以優化model運作並豐富application與server互動
Tools由model控制,Resources由application控制
符合MCP規範的application可依需求決定何時放入resources (透過default rules或LLM call)

Vector Database 整合

主要考量use case需求,可以適用於以下情境:
  • 不確定何時該invoke tool時
  • LLM需要在不同時機呼叫資料庫時

MCP與Agent Framework的協作關係

🤝 互補性質:
  • MCP專注於提供標準連接
  • Agent Framework負責:
    • Knowledge management
    • Agent loop管理
    • Tool回傳data的處理
例如:LangGraph提供connector銜接agent到MCP

Resources & Prompts的靈活運用

核心特性:
  • Dynamic特質:可與user/application context互動
  • Customization:server可根據任務客製化content
  • 即時性:resource notification功能支援即時updates
MCP的價值主張:
  • 提供tool的standard invocation方式
  • 為system components提供更多控制權
  • 建立rich interaction的標準框架

Transports

Message Format

對於 Request、Response 及 Notification ,MCP都統一採用JSON-RPC 2.0作為 訊息格式。
而訊息交換流程為:
  1. 初始化階段
      • 客戶端發送 initialize 請求,包含協議版本和功能。
      • 伺服器回應其協議版本和功能。
      • 客戶端發送 initialized 通知作為確認。
  1. 訊息交換階段
      • 雙方可交換請求和回應。
      • 可發送通知進行單向通訊。
  1. 終止階段
      • 任一方可透過 close() 方法、傳輸中斷或錯誤條件終止連線。

Transport Type

MCP 支援Buit-in(Stdio/SSE)及Custom的傳輸形式

傳輸類型
描述
適用場景
特點
標準輸入/輸出(Stdio)
透過標準輸入(stdin)和標準輸出(stdout)進行客戶端與伺服器之間的通訊。
本地整合,例如命令列工具或 IDE 擴充功能。
低延遲,無需網路堆疊;簡單的進程間通訊;一對一的客戶端與伺服器關係。
伺服器推送事件(SSE)
使用 HTTP POST 請求進行客戶端到伺服器的通訊,並透過 SSE 通道將伺服器的事件推送給客戶端。
需要伺服器到客戶端的即時資料推送,例如 Web 應用。
支援伺服器到客戶端的即時資料流;適用於遠端伺服器與客戶端之間的通訊。
自訂傳輸機制
開發者可根據需求實作自訂的傳輸機制,只要符合 MCP 的傳輸介面規範。
需要特殊網路協定或通訊通道的應用,例如 WebSocket。
高度靈活,可根據需求設計傳輸方式;需要自行處理傳輸層的實作與安全性。

為什麼MCP 將成為代理系統的基礎協議?

隨著這些代理系統不斷進步,模型本身也在提升,並且能越來越有效地運用您提供給它們的數據

MCP賦予LLM的核心能力

  • 允許LLM主動調用Tools並以智能方式回應這些工具的結果
  • 讓LLM實際擁有某種狀態
    • 例如:每次互動不會重新開始→能持續追蹤其進展

MCP作為底層架構

  • 作為統一標準,使LLM能夠:
    • 與檢索系統對話
    • 調用各種Tools
    • 引入記憶功能
  • 主要特點:無需預先建立所有功能,代理可在運行過程中發現並使用新功能

代理系統的簡單本質

代理系統的核心其實並不複雜。它們是一個增強型LLM的概念,在循環中運行,增強型LLM執行任務,朝向某個目標努力,調用工具,查看回應,然後重複這個過程直到完成任務。

MCP對開發者的價值

開發彈性
使用者自主性
開發重點
即使開發時不知道代理需要做的所有事情也沒關係
代理可讓使用者自訂上下文和數據處理方式
開發者可專注於核心循環、上下文管理、記憶使用和模型選擇

MCP的抽象優勢

MCP作為一個抽象層,讓代理開發者能真正專注於具體任務,以及代理應該如何與周圍系統互動,而不是必須關注實際的server本身、tools或resources。

MCP常見問題

在探討代理系統與MCP的整合時,經常會遇到一些關於資料安全和系統架構的疑問。讓我們來了解兩個最常見的問題。
首先,許多人關心代理系統是否能安全地處理專有數據。這個問題的答案是肯定的。由於MCP是開源協議,組織可以在自己的VPC(虛擬私有雲)環境中運行MCP伺服器,確保數據的安全性和隱私性。
另一個重要問題是關於代理系統的模組化設計。當我們談到「將代理本身與其他功能分開」時,實際上是在討論一種靈活的系統架構。這種設計允許開發者根據具體需求,建立一系列高度客製化的MCP伺服器。更重要的是,當需要與外部系統整合時,MCP的標準化協議使得這個過程變得簡單直接,因為所有必要的連接接口都已經預先定義好了。這大大減少了系統整合的複雜度,讓開發者能夠專注於實現核心功能。

參考資源

Anthropic 介紹

MCP 官網

MCP Server資源

What is MCP?

結語

除了簡介MCP,這篇文章也談到很多MCP有關的優勢及問題
下集 Note: MCP(下)將談到更多有關MCP Agent、Sampling、Composability、Registry以及未來發展等等,希望這個筆記有幫助到你!
 
 
如果有任何問題,都歡迎聯繫我的IG部落格帳號 davidtechtalks 我們下次見!