MCP Server 的五種主流架構與 Nacos 的選擇

在 AI 大模型應用爆發的今天,Model Context Protocol (MCP) 作爲連接 AI 大模型與應用的關鍵協議,正在快速普及。然而,如何在企業級環境中高效部署和管理 MCP 服務,成爲技術團隊面臨的重要挑戰。本文將深入剖析 MCP Server 的五種主流架構模式,並結合 Nacos 服務治理框架,爲企業級 MCP 部署提供實用指南。

MCP 架構的演進與挑戰

MCP 協議爲 AI 應用提供了標準化的交互方式,但在企業級落地過程中,我們面臨着認證鑑權受限、部署模式多樣、技術債務風險等多重挑戰。目前,MCP Server 主要有五種架構模式,每種架構各有優劣,適用於不同的業務場景。

五種 MCP 架構模式詳解

架構一:MCP Client 直連 Remote Server (SSE)

這種架構就像你直接打電話給專家諮詢問題 —— MCP Client 通過 SSE 方式直接連接到遠程 MCP Server,全程保持 HTTP 長連接。

優點?

缺點?

適合誰? 如果你是做 SaaS 應用、輕量級客戶端或公共雲服務,對安全要求不那麼高,這種架構就挺合適的。

架構二:MCP Client 通過 Proxy 連接 Remote Server (SSE)

這種架構就像有個翻譯在中間幫你溝通 —— MCP Client 先連接到 Proxy Server,再由 Proxy 轉接到 Remote Server。

優點?

缺點?

適合誰? 多租戶環境、企業網關集成、需要調用多種模型的場景,這種架構就很給力。

架構三:MCP Client 直連 Local Server (STDIO)

這種架構就像你家裏有個私人助理 —— MCP Client 通過 STDIO 方式直接連接本地 MCP Server,進程間直接通信。

優點?

缺點?

適合誰? 金融核心系統、醫療數據分析、工業現場系統等對數據安全和隱私有高要求的場景。

架構四:MCP Client 通過 Local Proxy 連接 Local Server (STDIO)

這種架構就像你有個私人祕書幫你協調多個本地專家 —— MCP Client 先連接到 Local Proxy,再由 Proxy 連接到 Local Server。

優點?

缺點?

適合誰? 大型企業內部平臺、高可用要求場景、需要統一管理本地 AI 資源的場景。

架構五:MCP Client 通過 Local Proxy 連接 Remote Server (STDIO+SSE)

這種架構就像你有個超級助手,既能處理本地事務又能幫你對接外部專家 —— MCP Client 通過 STDIO 連接 Local Proxy,Local Proxy 再通過 SSE 連接 Remote Server。

優點?

缺點?

適合誰? 實施混合雲戰略的大型企業、需要彈性擴展的業務、多區域部署的全球企業。

Nacos 如何賦能 MCP 架構

在企業級 MCP 部署中,MCP Server 的自動發現與選擇及其 Server 的動態安裝能力比較高效的解決了各個架構中遇到的場景。在 Nacos 3.0 之前的版本,主要圍繞着分佈式應用的服務註冊發現以及配置管理,提供了三大核心能力:

1. 服務發現與註冊:支持服務的自動註冊和發現,實現服務的動態擴縮容;

2. 配置管理:支持配置的動態更新和推送,無需重啓應用;

3. 服務治理:提供服務路由、負載均衡、流量控制等治理能力;

這些能力與 MCP 架構的需求高度契合,特別是在多 MCP 服務器的場景下。

Nacos MCP Router:連接 MCP 與 Nacos 的橋樑

Nacos MCP Router (https://github.com/nacos-group/nacos-mcp-router) 是一個基於 MCP 協議的服務器,它與 Nacos 深度集成,提供了三個核心功能:

1. MCP 服務器搜索:根據任務描述和關鍵詞搜索合適的 MCP 服務器,重點解決 MCP 工具過多時解決大模型選擇工具的效率的問題。

2. MCP 服務器添加:支持添加 stdio 和 SSE 兩種協議的 MCP 服務器,配合 Nacos Server 的管理能力,重點解決軟件供應鏈安全的問題。

3. 工具代理調用:代理 LLM 對目標 MCP 服務器工具的調用,通過一個本地代理的方式解決 Local Server 與 Remote Server 調用的靈活切換問題。

通過以上的幾個能力,我們搭建了一種混合 MCP Server 架構的模式,可以實現 MCP 服務的統一管理和智能路由,大大簡化提升工具選擇時的性能與企業級 MCP 部署的複雜度。

Nacos 與 MCP 的實戰集成

下面通過一個實際案例,展示如何使用 Nacos 和 Nacos MCP Router 構建企業級 MCP 服務。

部署 Nacos MCP Router

在有 NodeJS 的開發環境中,我們可以通過以下命令手動部署 Nacos MCP Router(不過這一步不是必須的)。

$ pnpm i nacos-mcp-router@latest

配置 MCP 客戶端

然後,在 MCP 客戶端配置中添加 nacos-mcp-router:

{
  "mcpServers": {
    "nacos-mcp-router": {
      "command""npx",
      "args": [
        "nacos-mcp-router@latest"
      ],
      "env": {
        "NACOS_ADDR""127.0.0.1:8848",
        "NACOS_USERNAME""nacos",
        "NACOS_PASSWORD""your_password"
      }
    }
  }
}

使用 MCP 服務

現在,我們可以通過 nacos-mcp-router 使用各種 MCP 服務(注:以下步驟爲 MCP Client 與 Nacos Router 自動交互時的核心方法,並不是程序員在開發過程中需要硬編碼的實現):

  1. 搜索 MCP 服務器:
search_mcp_server(task_description="生成一張貓的圖片", 
                  key_words="圖像生成")
  1. 添加 MCP 服務器:
add_mcp_server(mcp_server_)
  1. 使用 MCP 服務器工具:
use_tool(mcp_server_,     
         mcp_tool_, 
         params={"prompt""一隻橙色的貓"})

線上 MCP 架構選型指南

MCP 社區還在飛速的發展之中,在生產場景的能力上的諸多核心功能還暫時未形成統一的標準,基於目前的能力,我們在選擇適合企業的 MCP 架構進行落地時,我們需要考慮以下關鍵因素:

  1. 數據安全與隱私
  1. 性能與延遲要求
  1. 可擴展性需求

基於這些因素,不同行業可能的選擇可能的參考如下:

結論與展望

MCP 目前默認成爲了 AI 大模型與存量業務數據互通的管道,但由於目前的 MCP 協議本身從設計上未太多考慮企業級落地的情況,導致很多的企業還處在觀望的狀態。MCP 要想完整落地,中心化的註冊中心、可控的軟件供應鏈、安全的訪問控制這三方面的建設必不可少。在我們的方案中,主要通過 Nacos 作爲 MCP 的未來企業 MCP 的註冊中心,通過 Nacos Server 對 MCP 服務器的管理能力,結合 Nacos Router 做到軟件供應鏈的精準控制;同時配合 Higress 做到 MCP 的安全訪問,以此給我們的企業級客戶帶來 MCP 完整的解決方案。

特別緻謝:

Lingma-Agents (https://github.com/apps/lingma-agents) 在 Nacos Router 實現的過程中提供自動化的 Code Review 能力。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/BCe1wl4q929g4_eNVQG7Sg