Multi-MCP Orchestration 實戰 — 一次控制多個 MCP Server

2026-05-13 · MCP 進階 · Eric Cheung

前言:一個 MCP Server 唔夠用

快速結論(TL;DR)

Day 1-4 我哋學咗點樣建立單一 MCP Server。但現實開發中,你需要嘅唔只一個:GitHub Server 管理 code、Database Server 查詢 data、Slack Server 通知團隊、File Server 管理 project... 每個領域都有專門嘅 MCP Server。

今日嘅課題係:點樣同時註冊同管理多個 MCP Server,令 Claude Code 可以跨工具執行複雜嘅 orchestration 工作流。呢個就係所謂嘅「MCP Orchestration」。


Part 1:MCP Orchestration 架構

核心概念

Multi-MCP Orchestration 係指 AI 作為 Central Orchestrator,同時連接多個 domain-specific 嘅 MCP Server,根據任務需要自動選擇合適嘅 Server 執行操作,甚至將多個 Server 嘅輸出組合成一個完整嘅工作流。

三層架構


Part 2:註冊 Multiple MCP Servers

Claude Code Config — 一次註冊 5 個 Server

{
  "mcpServers": {
    "github": {
      "command": "node",
      "args": ["./servers/github-mcp/index.js"],
      "env": { "GITHUB_TOKEN": "$GITHUB_TOKEN" }
    },
    "database": {
      "command": "node",
      "args": ["./servers/db-mcp/index.js"],
      "env": { "DATABASE_URL": "$DATABASE_URL" }
    },
    "slack": {
      "command": "node",
      "args": ["./servers/slack-mcp/index.js"],
      "env": { "SLACK_BOT_TOKEN": "$SLACK_BOT_TOKEN" }
    },
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem",
        "/path/to/project"],
    },
    "n8n": {
      "type": "http",
      "url": "https://n8n-mcp.example.com/mcp",
      "headers": { "x-api-key": "$N8N_API_KEY" }
    }
  }
}

註冊之後,Claude Code 會自動發現所有 Server 嘅 Tools/Resources/Prompts,然後根據你嘅自然語言指令選擇合適嘅 Server。你唔需要手動指定用邊個 — AI 會自己判斷。


Part 3:Cross-Tool Workflow 實戰

Workflow 1:Bug Report → Fix → Deploy(跨 4 個 Server)

User: "有個 bug:login page 喺 mobile 爆 layout,
       幫我 create issue、fix、然後通知 team"

Claude Code orchestrates:
  ┌─► GitHub MCP: create_issue("Fix login mobile layout")
  │   → returns: Issue #128 created
  ├─► File MCP:  read src/components/Login.jsx
  │   → AI 分析 code,發現 flex 冇 responsive breakpoint
  ├─► File MCP:  write updated Login.jsx with fix
  ├─► GitHub MCP: create_pr(head: "fix/mobile-login",
  │     title: "Fix #128: Add responsive breakpoints to Login")
  │   → returns: PR #129 created
  └─► Slack MCP:  send_message(#dev-team,
        "✅ PR #129 ready for review — fixes mobile login")

Workflow 2:每週自動化 Report(跨 3 個 Server)

User: "Generate weekly dev report for this repo"

Claude Code orchestrates:
  ├─► GitHub MCP: list_issues(state: "closed", since: "7 days")
  │   → returns: 12 closed issues
  ├─► GitHub MCP: list_prs(state: "merged", since: "7 days")
  │   → returns: 5 merged PRs
  ├─► AI 分析數據,生成 structured report
  ├─► File MCP: write docs/weekly-report-2026-05-13.md
  └─► Slack MCP: send_message(#engineering,
        "Weekly report ready: docs/weekly-report-2026-05-13.md")

Part 4:Orchestration 最佳實踐

1. Server Naming Convention

用清晰嘅 server name 令 AI 可以準確判斷:`github` 好過 `server1`、`database-prod` 好過 `db`。AI 會用 server name 嚟理解每個 server 嘅用途。

2. Tool Description 要精準

當有多個 Server 提供類似功能時,精準嘅 tool description 尤其重要。例如 GitHub MCP 同 GitLab MCP 都有 `create_issue` — description 要清楚寫明係「Create an issue on GitHub」。

3. 避免 Tool Name Conflict

唔同 Server 嘅 tool name 唔應該撞名。如果用 prefix naming(e.g. `github_create_issue`、`jira_create_issue`),AI 嘅選擇會更加準確。

4. 善用 Environment Variables

API keys、tokens、URLs 一律放 environment variables,唔好 hardcode 入 config。呢個係 security best practice。

5. 按需啟用 Server

唔係全部 Server 都要 24/7 註冊。如果你呢個星期只係需要改 frontend,可以暫時 disable Database MCP。越少 Server → AI 選擇越精準。


Part 5:Debugging Multi-MCP Issues

常見問題同解決方案


總結:由 Tool User 到 System Orchestrator

掌握 Multi-MCP Orchestration 之後,你嘅角色由「寫 code 嘅人」升級為「設計自動化系統嘅架構師」。你定義每個 MCP Server 做咩、AI Orchestrator 決定點樣組合佢哋 — 就好似一個指揮家,唔需要自己演奏每種樂器,但知道點樣令成個樂團奏出完美嘅樂章。

Written by Eric Cheung · Learn One AI Thing Every Day · Day 5: Multi-MCP Orchestration