TL;DR

Anthropic 定義的開放協議,讓 AI Agent 的 tool calling 可以透過標準化的 MCP 介面使用第三方工具,方便使用者自行擴充 AI Agent 能調用的工具。

Background

因為 LLM 是語言對話的模型,AI Agent 需要開發許多外部工具來協助建立 LLM 所需的文本上下文(Context),例如使用 web search 工具將網站整理成內容大綱的描述、使用 calculator 工具將文本不擅長的複雜數學計算做預先處理。

過去這些工具都是由 AI Agent 的開發商進行開發和整合,現在則可以透過介接 MCP 介面,來讓使用者自行擴充 AI Agent 可以使用的工具。

MCP Architecture

Architecture & Components

mcp architecture
  • MCP Host:使用工具完成任務的 LLM 應用程式(Claude Desktop、Cursor)
  • MCP Client:管理與 Server 通訊的客戶端
  • MCP Server:提供具體工具和資源的服務端
  • 通訊協議:基於 JSON-RPC 2.0 標準

Transport

MCP Client 和 MCP Server 之間有兩種通訊方式:

  • Standard I/O
  • HTTP/SSE & Streamable HTTP

Standard I/O

透過 command-line interface,並以 standard input 和 standard output 串流實現。

相關的特性:

  • Process-based: 服務透過 client 端的子進程來執行
  • Simple to implement: 只需要從 stdin 和 stdout 讀取和寫入資料
  • Suitable for local tools: server 和 client 都可以執行在同一台機器上

使用情境:

  • CLI-based Services
  • file operations
  • local database

HTTP/SSE & Streamable HTTP

相關特性如下:

  • Network-based: 可以透過 URL 進行存取
  • Scalable: 可以遠端訪問,並且提供給多個 client 使用
  • Stateful: 可以維持持久連線

使用情境:

  • Web-Based services
  • cloud APIs
  • distributed system

What Makes an MCP Successful

透過觀察市面上實用的 MCP Server,整理出一些符合市場需求的 MCP 應該具備的幾個特點:

1. 資料轉換能力

將非文字、複雜的團隊資產轉換成 LLM 可以清楚閱讀的格式

2. 即時資訊獲取

提供各領域最新資訊,解決 LLM 訓練資料過時問題

3. 互動執行環境

提供處理與執行平台,讓 LLM 可以驗證解決方案並自我除錯

References