/ 目錄 / 演練場 / Cloudflare
● 官方 cloudflare 🔑 需要你的金鑰

Cloudflare

作者 cloudflare · cloudflare/mcp-server-cloudflare

Cloudflare 官方 MCP — 直接在對話中部署 Workers、查詢 D1、管理 R2 和 KV、讀取日誌與分析數據。

Cloudflare 官方 MCP(實際上是一個服務家族,以遠端方式運行於 *.mcp.cloudflare.com)。涵蓋 Workers 部署與日誌、D1 SQL、KV/R2 儲存、DNS 區域以及 Radar 分析。採用 OAuth 認證 — 無需手動管理 API 金鑰。

為什麼要用

核心特性

即時演示

實際使用效果

cloudflare.replay ▶ 就緒
0/0

安裝

選擇你的客戶端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "cloudflare": {
      "command": "npx",
      "args": [
        "-y",
        "@cloudflare/mcp-server-cloudflare"
      ]
    }
  }
}

開啟 Claude Desktop → Settings → Developer → Edit Config。儲存後重啟應用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "cloudflare": {
      "command": "npx",
      "args": [
        "-y",
        "@cloudflare/mcp-server-cloudflare"
      ]
    }
  }
}

Cursor 使用與 Claude Desktop 相同的 mcpServers 格式。專案級設定優先於全域。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "cloudflare": {
      "command": "npx",
      "args": [
        "-y",
        "@cloudflare/mcp-server-cloudflare"
      ]
    }
  }
}

點擊 Cline 側欄中的 MCP Servers 圖示,然後選 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "cloudflare": {
      "command": "npx",
      "args": [
        "-y",
        "@cloudflare/mcp-server-cloudflare"
      ]
    }
  }
}

格式與 Claude Desktop 相同。重啟 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "cloudflare",
      "command": "npx",
      "args": [
        "-y",
        "@cloudflare/mcp-server-cloudflare"
      ]
    }
  ]
}

Continue 使用伺服器物件陣列,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "cloudflare": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@cloudflare/mcp-server-cloudflare"
        ]
      }
    }
  }
}

加入 context_servers。Zed 儲存後熱重載。

claude mcp add cloudflare -- npx -y @cloudflare/mcp-server-cloudflare

一行命令搞定。用 claude mcp list 驗證,claude mcp remove 移除。

使用場景

實戰用法: Cloudflare

除錯正在生產環境回傳 500 錯誤的 Worker

👤 值班中的 Cloudflare Workers 開發者 ⏱ ~15 min intermediate

何時使用: 你的 Worker 錯誤率突然飆升。你想要查看日誌、最近的部署紀錄,以及變更差異 — 而不需要開啟儀表板。

前置條件
  • Cloudflare 帳號已透過 OAuth 連線至你的 MCP 客戶端 — 第一次呼叫工具時會觸發 OAuth;授予 'Workers Observability' 和 'Workers Bindings' 範圍的權限
步驟
  1. 依錯誤過濾並追蹤近期 Worker 日誌
    追蹤 Worker 'api-edge' 過去 15 分鐘的日誌,篩選出狀態碼 >= 500 的請求,並依錯誤訊息的前 100 個字元分組。✓ 已複製
    → 主要錯誤樣式及其出現次數與時間戳記
  2. 列出近期部署紀錄
    列出 'api-edge' 最近 5 次的部署,顯示部署時間、作者以及版本雜湊值。✓ 已複製
    → 部署時間軸 — 與錯誤發生時間點對照
  3. 若有必要則回滾
    錯誤在 14:22 的部署後開始飆升。將 'api-edge' 回滾至上一個版本,執行前請先向我確認。✓ 已複製
    → 執行破壞性操作前出現確認提示

結果: 生產環境 Worker 已恢復正常,並附有清楚的「部署 X 導致錯誤 Y」事後分析說明。

注意事項
  • 日誌追蹤僅為即時資料,可能遺漏已過去的瞬間大量錯誤 — 若需查詢歷史時間範圍,請改用 Logpush 或 Analytics Engine MCP 工具,而非即時追蹤
  • 回滾不會遷移 D1/KV 的狀態資料 — 若問題部署執行了資料庫遷移,單純回滾 Worker 是不夠的 — 你可能也需要還原 D1
搭配使用: github · sentry

對 D1 資料庫執行臨時分析查詢

👤 使用 D1 作為應用程式資料儲存的開發者 ⏱ ~10 min beginner

何時使用: 你想從 D1 取得註冊轉換率或使用量統計資料,而不需要建立儀表板。

步驟
  1. 找到正確的資料庫並列出結構描述
    列出我所有的 D1 資料庫。針對名為 'prod-app' 的資料庫,顯示所有資料表及其欄位。✓ 已複製
    → 資料庫清單及各資料表的結構描述
  2. 執行分析查詢
    在 D1 'prod-app' 中,統計過去 30 天內依週分組的新註冊使用者數,僅顯示在 events 資料表中至少有一筆事件記錄的使用者。✓ 已複製
    → 每週統計數字及有效的 SQL 語句
  3. 進一步細化
    再依註冊來源進一步拆分,哪個來源的 7 天啟用率最高?✓ 已複製
    → 依來源比較的數據與轉換率

結果: 可直接用於決策的數字,並附上所使用的 SQL 語句。

注意事項
  • D1 對每次查詢有資料列數和執行時間的限制 — 對於大量聚合運算,建議定期將結果預先彙整至摘要資料表,而非每次都全表掃描原始事件資料
搭配使用: notion

稽核並清理過度膨脹的 KV 命名空間

👤 Workers 快取資料已出現偏移的工程師 ⏱ ~20 min intermediate

何時使用: 你的 KV 費用增加,懷疑存在過期金鑰或設定錯誤的 TTL。

步驟
  1. 檢視命名空間概況
    針對 KV 命名空間 'session-cache',列出前 1000 個金鑰,並抽樣 10 個值,告訴我它們的資料結構。✓ 已複製
    → 金鑰分佈規律及抽樣值的資料結構
  2. 找出過期資料
    符合 session:* 格式的金鑰中,有多少超過 30 天未被存取?(若有 metadata 請使用;否則抽樣並檢查值中的時間戳記。)✓ 已複製
    → 過期金鑰數量估算及使用的判斷標準
  3. 安全地刪除
    以每批 100 個的方式刪除符合 session:expired:* 的金鑰,執行前先讓我確認第一批的內容。✓ 已複製
    → 刪除前預覽第一批資料

結果: KV 命名空間更精簡,儲存費用降低。

注意事項
  • KV 採用最終一致性 — 從邊緣節點看,刪除後短暫可能再度出現 — 批次刪除後不要依賴即時一致性;請等待約一分鐘後再驗證狀態

網域遷移前審查 DNS 記錄

👤 在不同供應商之間遷移網域的維運工程師 ⏱ ~15 min beginner

何時使用: 你即將變更名稱伺服器,想先清點所有記錄,以免遺漏 MX、DMARC 或被遺忘的子網域。

步驟
  1. 匯出所有記錄
    列出 example.com 區域的所有 DNS 記錄,依類型分組,並包含 MX 的優先序及 SRV 的權重值。✓ 已複製
    → 完整的記錄清單
  2. 標示關鍵記錄
    標出所有可能影響電子郵件的記錄(MX、TXT 中的 SPF、DKIM、DMARC),以及指向第三方服務的 A/AAAA/CNAME(如 Stripe、HubSpot、狀態頁面)。✓ 已複製
    → 關鍵記錄清單及說明原因
  3. 產生遷移檢查清單
    將以上內容整理成可在新供應商上執行的檢查清單 — 每筆記錄包含目標位址、TTL 及「遷移後驗證」步驟。✓ 已複製
    → 可直接複製貼上的操作手冊

結果: 一份遷移當天的操作手冊,確保不遺漏任何記錄。

注意事項
  • 遺忘的 DKIM 記錄會在 24 小時後悄悄導致電子郵件中斷 — 務必特別列出所有 _domainkey.<selector> 記錄 — 這是最容易被遺漏的
搭配使用: filesystem

查詢 Cloudflare Radar 以確認影響使用者的網路事故

👤 事故應變人員、客服主管 ⏱ ~10 min intermediate

何時使用: 使用者回報你的網站在巴西無法存取。問題可能出在你這邊,也可能是網路整體狀況。

步驟
  1. 查詢 Radar 該國狀況
    Cloudflare Radar:過去 6 小時內巴西有任何明顯的網路中斷事件嗎?請包含 BGP 異常、ISP 中斷及攻擊流量。✓ 已複製
    → 已知事件清單,或「未發現異常」
  2. 與自身流量交叉比對
    針對我的 example.com 區域,過去 6 小時來自巴西的流量 — 流量量、HTTP 狀態碼分佈、主要 user agent。✓ 已複製
    → 巴西地區特定的流量分析
  3. 得出結論
    綜合 Radar 資料與我的流量,這是巴西網路整體問題,還是我的網站特定問題?✓ 已複製
    → 明確的判斷結論及支持依據

結果: 一個有憑有據的答案:「不是我們的問題,是 <ISP X> 的故障」或「確實是我們的問題,原因如下」。

注意事項
  • Radar 資料有約 1 小時的延遲 — 對於非常即時的事故,請搭配你自己的 RUM 資料一起使用
搭配使用: sentry

組合

與其他 MCP 搭配,撬動十倍槓桿

cloudflare + github

將 Workers 回滾與導入問題的 GitHub PR 進行關聯

Worker 'api-edge' 自 14:22 的部署後開始出錯。找出與該部署時間對應的 GitHub PR,並摘要其變更內容。✓ 已複製
cloudflare + sentry

Sentry 回報來自 Worker 的錯誤;Cloudflare MCP 抓取同一 requestId 的 Worker 端日誌

Sentry 事件 EDGE-441 有 CF-Ray 8abc123。追蹤 Worker 'api-edge' 的日誌,找出該 ray 對應的日誌行。✓ 已複製
cloudflare + filesystem

在本機編輯 Worker 原始碼,透過 wrangler 部署,再用 Cloudflare MCP 日誌驗證

修復 src/index.ts 第 44 行的錯誤,部署後追蹤 'api-edge' 日誌,確認不再出現 500 錯誤。✓ 已複製

工具

此 MCP 暴露的能力

工具輸入參數何時呼叫成本
workers_tail script_name: str, filter?: object 即時追蹤 Worker 日誌 free (within plan limits)
workers_list_deployments script_name: str 查看 Worker 的近期版本紀錄 free
workers_rollback script_name: str, version_id: str 回滾至先前版本 — 需確認,屬破壞性操作 free
d1_list_databases none 清點你的 D1 資料庫 free
d1_query database_id: str, sql: str, params?: [] 執行 SELECT 或資料變更 SQL — 寫入操作需明確透過提示詞確認 D1 pricing per rows read/written
kv_list_keys namespace_id: str, prefix?: str, limit?: int, cursor?: str 列舉金鑰以進行稽核 KV read pricing
kv_get_value / kv_put_value / kv_delete namespace_id, key, value?, ttl? 讀取/寫入/刪除特定金鑰 KV op pricing
r2_list_buckets / r2_list_objects bucket?, prefix? R2 儲存清單 R2 read ops
r2_get_object / r2_put_object bucket, key, body? 讀取/寫入 R2 物件 R2 op pricing
dns_list_records zone_id: str 區域記錄清點 free
dns_create_record / update_record / delete_record zone_id, record params 區域記錄變更 — 需確認 free
radar_get_http_timeseries / radar_get_attacks timeframe, region filters 全球網路健康狀態背景資訊 free
analytics_engine_query sql: str 自訂 Workers Analytics Engine 查詢 analytics engine read ops

成本與限制

運行它的成本

API 配額
依方案的 Workers/D1/KV/R2 用量限制適用;MCP 呼叫計入你的一般使用量
每次呼叫 Token 數
典型用量為 200-2000 tokens;日誌追蹤可能非常大 — 務必加上過濾條件
費用
MCP 本身免費;你的 Cloudflare 服務依正常費率計費
提示
D1 和 KV 依資料列讀取次數和操作次數計費。大量列舉/掃描的費用可能出乎意料地高 — 請使用適當的分頁大小並提早停止。

安全

權限、密鑰、影響範圍

最小權限: Workers:Read D1:Read KV:Read
憑證儲存: OAuth 金鑰由你的 MCP 客戶端管理;環境變數中不存放長期有效的 API 金鑰
資料出站: 所有呼叫均傳送至 Cloudflare API;OAuth 流程經由 dash.cloudflare.com
切勿授予: Account:Admin unless absolutely needed Zone:DNS:Edit on live zones without a staging test first

故障排查

常見錯誤與修復

OAuth flow didn't complete

你的 MCP 客戶端可能不支援 OAuth 重新導向。請查閱其說明文件(Claude Desktop、Cursor 等各有不同的支援方式)。嘗試從客戶端介面重新連線遠端 MCP。

Workers tail disconnects after a minute

追蹤連線有時間限制。請重新啟動追蹤,或若需查詢較長的時間範圍,改用 Logpush 並透過 Analytics Engine 查詢。

D1 query returns 'Too many rows read'

D1 依方案限制每次查詢的掃描資料列數。請加上能利用索引的 WHERE 條件,或使用 LIMIT 進行分頁查詢。

permission denied on a DNS tool

OAuth 授權時未核准 Zone:DNS:Edit 範圍。請重新連線 MCP 並核准該額外的授權範圍。

替代方案

Cloudflare 對比其他方案

替代方案何時用它替代權衡
AWS MCP (awslabs)你使用的是 AWS,而非 Cloudflare不同的雲端平台;無法直接替換
Vercel MCP你的部署目標是 Vercel(edge functions、KV、blobs)類似的遠端 MCP 模式;功能範圍較窄
wrangler CLI directly via shell你需要完整的 wrangler 功能(設定檔編輯、密鑰管理),而非僅限 MCP 所提供的操作沒有 AI 代理的操作體驗;若腳本撰寫錯誤,影響範圍更大

更多

資源

📖 閱讀 GitHub 上的官方 README

🐙 查看未解決的 issue

🔍 瀏覽全部 400+ MCP 伺服器和 Skills