Skip to content

11.2 MCP 核心功能

MCP 提供豐富的核心功能,使 Claude Code 能夠與外部工具和資料源無縫整合,極大擴展了 AI 助手的能力邊界。

工具呼叫

基本工具呼叫

MCP 伺服器提供可呼叫的工具,Claude Code 可以像使用內建工具一樣使用它們。這些工具可以是任何類型的服務或應用,從簡單的 API 呼叫到複雜的工作流自動化。

bash
# 使用 MCP 工具的示例
使用 GitHub 工具建立 PR
使用 Sentry 工具查詢最近的錯誤
使用資料庫工具查詢使用者資料
使用 Docker 工具管理容器

工具發現

Claude Code 會自動發現 MCP 伺服器提供的所有工具,並將其整合到使用者介面中。使用者可以透過簡單的命令查看所有可用工具:

bash
# 查看可用的 MCP 工具
/mcp

# 輸出示例
MCP 伺服器:
- github: 提供 PR、issue、程式碼搜尋等工具
- sentry: 提供錯誤查詢、監控等工具
- database: 提供資料庫查詢工具
- docker: 提供容器管理工具

工具參數

MCP 工具可以接受參數,使呼叫更加靈活和精確。參數可以是位置參數或命名參數:

bash
# 帶參數的工具呼叫
使用 GitHub 工具查看 PR #123
使用資料庫工具查詢使用者 ID 456 的資訊
使用 Docker 工具啟動名為 "web-server" 的容器

資源存取

資源類型

MCP 伺服器可以提供多種類型的資源,讓 Claude Code 能夠直接存取和操作:

  • 資料庫表: 可查詢和操作的資料表
  • 檔案系統: 可存取的檔案和目錄
  • API 端點: 可呼叫的 REST API
  • 設定檔: 可讀取和修改的設定
  • 監控資料: 可查看的系統監控指標

資源發現

Claude Code 自動發現 MCP 伺服器提供的所有資源,並以直觀的方式展示給使用者:

bash
# 查看可用的 MCP 資源
/mcp

# 輸出示例
MCP 資源:
- database.users: 使用者表
- database.orders: 訂單表
- filesystem.logs: 日誌目錄
- api.metrics: 系統監控 API

資源存取

使用者可以透過自然語言命令直接存取 MCP 資源:

bash
# 存取 MCP 資源的示例
查詢資料庫中的使用者表
讀取日誌檔案 /var/log/app.log
取得系統設定資訊
查看最近 24 小時的 CPU 使用率

提示模板

提示模板定義

MCP 伺服器可以提供預定義的提示模板,幫助使用者快速完成常見任務。這些模板包含最佳實踐和標準化格式,確保輸出品質。

bash
# 使用 MCP 提示模板的示例
使用 GitHub PR 審查模板
使用 Sentry 的錯誤分析模板
使用 Jira bug 報告模板

提示模板優勢

提示模板帶來以下優勢:

  • 標準化: 統一的提示格式,確保輸出品質
  • 高效: 快速開始任務,減少重複工作
  • 一致性: 確保團隊成員使用相同的標準
  • 可擴展性: 可以輕鬆建立和共享新模板

身份驗證

OAuth 2.0

MCP 支援 OAuth 2.0 身份驗證,允許 Claude Code 安全地存取受保護的資源:

bash
# 使用 /mcp 進行身份驗證
/mcp
# 選擇需要身份驗證的服務器
# 按照提示完成 OAuth 流程

API 密鑰

MCP 支援 API 密鑰身份驗證,適用於服務之間的通信:

bash
# 新增帶 API 密鑰的伺服器
claude mcp add --transport http api https://api.example.com/mcp \
  --header "Authorization: Bearer your-api-key"

環境變數

MCP 支援透過環境變數傳遞憑證,提高安全性和設定靈活性:

bash
# 使用環境變數新增伺服器
claude mcp add --transport stdio db --env DB_URL=your-db-url \
-- npx -y @bytebase/dbhub

權限管理

工具權限

MCP 提供細粒度的工具級權限控制,確保使用者只能存取他們需要的工具:

bash
# 限制工具存取
claude --allowedTools "Read,Grep,Glob,mcp__github"

資源權限

MCP 支援資源級權限控制,允許管理員限制對特定資源的存取:

bash
# 限制資源存取示例
只允許存取 database.users
禁止修改設定檔

操作權限

MCP 提供操作級權限控制,允許管理員限制使用者可以執行的操作類型:

bash
# 限制操作類型示例
只允許唯讀操作
禁止刪除資料庫記錄

資料流控制

輸出限制

MCP 工具輸出有預設限制,防止返回過多資料影響效能:

bash
# 預設限制:10,000 令牌
# 增加限制
MAX_MCP_OUTPUT_TOKENS=50000 claude

超時控制

MCP 伺服器啟動有超時限制,防止長時間執行的任務阻塞系統:

bash
# 預設超時:30 秒
# 設定超時
MCP_TIMEOUT=10000 claude

流式輸出

MCP 支援流式輸出,允許處理大型資料集而不會佔用過多記憶體:

bash
# 流式輸出大結果
使用資料庫工具匯出所有使用者資料
使用日誌工具即時監控系統日誌

錯誤處理

錯誤捕獲

MCP 提供詳細的錯誤資訊,幫助使用者快速定位和解決問題:

bash
# 錯誤示例
使用 GitHub 工具建立 PR
錯誤:無法建立 PR - 權限不足

錯誤恢復

MCP 提供錯誤恢復機制,包括自動重試和替代方案建議:

bash
# 自動重試失敗的操作
重試失敗的資料庫查詢
# 提供替代方案
使用其他工具完成相同任務

錯誤日誌

MCP 記錄詳細的錯誤日誌,方便管理員排查問題:

bash
# 查看錯誤日誌
claude --verbose

效能最佳化

快取

MCP 支援結果快取:

bash
# 快取查詢結果
使用資料庫工具查詢使用者資料
# 相同查詢會使用快取

批處理

MCP 支援批量操作:

bash
# 批量查詢
批量查詢多個使用者

並行處理

MCP 支援並行處理:

bash
# 並行執行多個 MCP 工具
同時查詢多個資料源

監控和除錯

工具使用監控

bash
# 查看工具使用情況
顯示 MCP 工具使用統計

效能監控

bash
# 查看效能指標
顯示 MCP 工具執行時間

除錯模式

bash
# 啟用除錯模式
claude --verbose

擴展功能

自訂工具

MCP 伺服器可以提供自訂工具:

bash
# 使用自訂工具
使用自訂工具處理資料

外掛整合

MCP 可以透過外掛整合:

bash
# 安裝帶 MCP 的外掛
/plugin install my-plugin@claude

效能最佳化

MCP 提供多種效能最佳化功能,確保工具呼叫高效可靠:

快取機制

MCP 支援結果快取,避免重複呼叫相同的工具:

bash
# 啟用快取
claude mcp add --transport http api https://api.example.com/mcp \
  --cache-ttl 300

並行呼叫

MCP 支援並行呼叫多個工具,提高處理效率:

bash
# 並行呼叫示例
同時使用 GitHub 工具和 Sentry 工具

外掛整合

MCP 可以與外掛系統整合,進一步擴展功能:

bash
# 安裝 MCP 外掛
/plugin install my-plugin@claude

技能整合

MCP 可以與技能系統深度整合,實現更複雜的自動化任務:

bash
# 使用技能呼叫 MCP 工具
使用資料處理技能呼叫資料庫工具
使用自動化技能執行 DevOps 流程

安全功能

資料加密

MCP 支援資料加密傳輸,確保敏感資訊不被洩露:

bash
# 加密傳輸
claude mcp add --transport http secure https://api.example.com/mcp \
  --header "Authorization: Bearer encrypted-token"

審計日誌

MCP 記錄詳細的審計日誌,便於追蹤和合規檢查:

bash
# 查看審計日誌
顯示 MCP 工具使用歷史
匯出審計報告

存取控制

MCP 提供細粒度的存取控制,確保只有授權使用者可以使用特定工具:

bash
# 控制存取權限
限制特定使用者存取 MCP 工具
基於角色的權限分配

最佳實踐

1. 合理設定

根據實際需求設定 MCP 伺服器,確保最佳效能和安全性:

bash
# 設定建議
選擇合適的傳輸方式(HTTP 用於遠端,stdio 用於本地)
設定適當的超時時間(根據工具回應時間調整)
設定最小權限原則的權限設定

2. 監控使用

定期監控 MCP 工具使用情況,識別效能瓶頸和最佳化機會:

bash
# 監控建議
查看使用統計資料
分析效能指標(回應時間、成功率)
識別高頻使用的工具和資源

3. 安全第一

確保 MCP 設定安全,保護敏感資料和資源:

bash
# 安全建議
使用強身份驗證機制(OAuth 2.0 優於 API 密鑰)
限制權限範圍,遵循最小權限原則
定期更新憑證和密鑰

4. 錯誤處理

妥善處理錯誤,提高系統可靠性和使用者體驗:

bash
# 錯誤處理建議
捕獲並記錄所有錯誤
提供清晰的錯誤資訊和恢復方案
實現自動重試機制