主题
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
# 錯誤處理建議
捕獲並記錄所有錯誤
提供清晰的錯誤資訊和恢復方案
實現自動重試機制