進階

MCP 伺服器:用真實工具延伸 AI

Model Context Protocol 給 AI 使用外部工具的能力 — 搜尋網頁、查詢資料庫、建立 GitHub issue、讀檔等。Zubnet 上有 117 個伺服器,Claude Desktop 和 Cursor 都能一鍵設定。
Sarah Chen March 2026 10 min read

大型語言模型很聰明。它們能推理、書寫、分析、創作。但它們也是孤立的。預設情況下,LLM 看不了今天的天氣、查不了你的資料庫、搜不了網頁、也讀不了你電腦上的檔案。它只知道訓練資料裡的東西,以及你貼進提示詞的內容。

MCPModel Context Protocol — 改變這件事。它是一套把 AI 模型連到外部工具的標準。把它想成 AI 的 USB:一個通用的插頭,讓任何模型能使用任何工具,只要兩邊都講這個協定。

MCP 怎麼運作

流程很簡單:

User: "What issues are open on our main repo?" LLM thinks: "I need to check GitHub. Let me call the GitHub MCP server." GitHub MCP Server: queries api.github.com/repos/org/repo/issues GitHub MCP Server returns list of 12 open issues LLM: "There are 12 open issues. The top 3 by priority are..." User sees a clean, summarized answer

關鍵觀念:LLM 自己決定何時使用工具。你不是寫程式說「如果使用者問 GitHub,就呼叫 GitHub API」。模型理解使用者意圖、察覺需要外部資料、呼叫合適的 MCP 伺服器、拿到結果,再把它編進回應。

這就是 MCP 強大的原因 — 也是它跟傳統 API 整合不同的地方:傳統整合裡,開發者必須預料每一條可能的工作流。

有哪些 MCP 伺服器

Zubnet 上有 117 個 MCP 伺服器。以下是分類與一些亮點:

開發工具

GitHub — 搜尋儲存庫、建立/讀取/關閉 issue、列 PR、讀檔案內容、建分支
GitLab — 類似 GitHub,用於 GitLab 代管的專案
Linear — 建立與管理 issue、讀取專案狀態
Sentry — 搜尋錯誤、讀堆疊追蹤、解決 issue

資料庫

PostgreSQL — 對你的 Postgres 資料庫執行讀取查詢
MySQL — MySQL/MariaDB 同樣可用
SQLite — 查詢本地 SQLite 檔案
Redis — 讀 key、掃描模式

搜尋與研究

Brave Search — 無追蹤的網頁搜尋
Exa — 網路上的語義搜尋
ArXiv — 搜尋學術論文
Wikipedia — 查詢百科知識

檔案系統與儲存

Filesystem — 在指定目錄內讀、寫、列、搜尋檔案
Google Drive — 從 Drive 搜尋與讀取文件
S3 — 從 AWS S3 bucket 列出與讀取物件

通訊

Slack — 讀頻道、送訊息、搜尋歷史紀錄
Discord — 在伺服器裡讀與送訊息
Email — 透過 IMAP/SMTP 讀與草擬郵件

資料與 API

Fetch — 對任意 URL 發 HTTP 請求
Puppeteer — 瀏覽網頁、截圖、抓取內容
Google Maps — 地理編碼、路線、地點搜尋

完整清單可在我們的 MCP Store 瀏覽。

Claude Desktop 的設定

Claude Desktop 原生支援 MCP。要連一個伺服器,你把它的設定加進 Claude 的設定檔。在 Zubnet 的 MCP Store,每個伺服器都有一鍵複製該設定的按鈕。

設定檔住在:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

一份帶兩個 MCP 伺服器的設定長這樣:

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token_here"
      }
    },
    "brave-search": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-brave-search"],
      "env": {
        "BRAVE_API_KEY": "your_brave_key_here"
      }
    }
  }
}

存檔、重啟 Claude Desktop,工具就會自動出現。Claude 會在跟你對話相關時使用它們。

Cursor 的設定

Cursor(AI 程式編輯器)也支援 MCP。設定放在你的專案 .cursor/mcp.json 檔:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y", "@modelcontextprotocol/server-filesystem",
        "/path/to/your/project"
      ]
    },
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "POSTGRES_CONNECTION_STRING": "postgresql://user:pass@localhost/mydb"
      }
    }
  }
}

這給 Cursor 的 AI 讀你專案檔與查你資料庫的能力 — 讓它在理解你的程式碼庫與回答資料相關問題時大幅變強。

在 Zubnet 上設定

對在 Zubnet 平台上跑的代理而言,設定 MCP 伺服器更簡單:

1.MCP Store

2. 找到你要的伺服器(例如 GitHub)

3. 點「啟用」

4. 輸入需要的設定(API 金鑰、URL 等)

5. 把它接到你的代理

伺服器跑在我們的基礎設施上。不用在本機安裝、不用 npx、不用 Node.js。直接就能用。

設定 schema:每個伺服器需要什麼

每個 MCP 伺服器都需要一些設定。最常見的幾種模式:

需要 API 金鑰的伺服器 (GitHub、Brave Search、Sentry 等)

需要:從該服務供應商拿的一把 API 金鑰或個人存取 token。到他們的開發者設定裡拿。

資料庫伺服器 (PostgreSQL、MySQL、SQLite)

需要:一條連線字串。格式:protocol://user:password@host:port/database。為了安全,用唯讀帳號。

檔案系統伺服器

需要:一個目錄路徑。伺服器只能存取這個目錄下的檔案。用盡可能窄的範圍。

OAuth 伺服器 (Google Drive、Slack)

需要:OAuth 憑證(client ID + secret)或預先產生的存取 token。在 Zubnet,我們替你處理 OAuth 流程。

AI 怎麼決定要用工具

這是感覺像魔法的部分。你不寫規則。LLM 自己搞懂。

當你問「我們 GitHub 上有哪些未解的 issue?」時,模型會察覺到:

1. 這需要它沒有的資料(你特定的 GitHub issue)
2. 有一個 GitHub 工具可用
3. list_issues 函式帶 state=open 就是對的呼叫

它組出工具呼叫、送到 MCP 伺服器、拿到 JSON 回應、再用自然語言摘要出來。

對多步驟任務,模型會把工具呼叫串起來。「找出留言最多的未解 issue,並在 Slack #dev-chat 發一則摘要」可能包含:

1. github.list_issues(state=open, sort=comments)
2. github.get_issue(number=142)(取得完整細節)
3. slack.post_message(channel=#dev-chat, text=...)

三個工具呼叫,自動編排。沒寫程式。

安全考量

MCP 伺服器對真實系統有真實的存取權。

一個帶寫入憑證的 PostgreSQL MCP 伺服器,能修改你的資料庫。一個擁有刪除權限 PAT 的 GitHub 伺服器,能刪掉儲存庫。一個指向 / 的檔案系統伺服器,能讀完你整顆硬碟。用對待 SSH 金鑰的方式對待 MCP 憑證:最小權限、指定範圍、定期輪換。用唯讀的資料庫帳號。用只含你需要 scope 的 GitHub token。把檔案系統伺服器指向特定的專案目錄,絕對不要指向根目錄。

打造你自己的 MCP 伺服器

MCP 規格是開放的。如果你需要的工具還不存在,你可以自己做。一個 MCP 伺服器就是一個程式,它會:

1. 宣告它可用的工具(名稱、說明、參數 schema)
2. 處理工具呼叫請求
3. 回傳結構化的結果

官方 SDK 有 TypeScript 和 Python 版本。TypeScript 裡一個最小的伺服器大約 50 行程式碼。規格與 SDK 在 modelcontextprotocol.io

如果你做了一個別人可能覺得有用的伺服器,考慮把它發布到 MCP 生態系。社群每週都在成長。

什麼時候用 MCP vs. 一般 API 呼叫

MCP 不永遠是對的答案。以下情境用它:

• 你希望 AI 決定何時呼叫外部服務(動態、使用者驅動的工作流)
• 你在打造需要工具存取的代理
• 你要一個統一介面去用許多工具(一個協定、117 個伺服器)

以下情境用一般 API 呼叫:

• 流程是決定性的(永遠先呼叫這個 API,再呼叫那個)
• 你需要對每個請求有精準掌控
• 效能是關鍵,你承擔不起 LLM 的決策迴圈

MCP 是會講話的 AI 與會動手的 AI 之間的橋。 沒有工具,LLM 只能根據它已知的內容產生文字。有了 MCP,它可以伸手去世界、收集即時資料、採取真實行動、跟你真實的系統一起運作。Zubnet 上 117 個伺服器只是起點 — 生態系每週都在成長。

在我們的 MCP Store 瀏覽 117 個 MCP 伺服器。Claude Desktop 與 Cursor 都有一鍵設定。或直接為你的 Zubnet 代理啟用。

Sarah Chen
Zubnet · March 2026
ESC