CircleCI MCP Server

官方

讓 AI 代理能夠修復來自 CircleCI 的建置失敗。

文件

CircleCI MCP 伺服器

License: Apache 2.0 CircleCI npm

模型上下文協定 (Model Context Protocol, MCP) 是一種新的標準化協定,用於管理大型語言模型 (LLM) 與外部系統之間的上下文。在此儲存庫中,我們提供了一個適用於 CircleCI 的 MCP 伺服器。

使用 Cursor、Windsurf、Copilot、Claude 或任何相容 MCP 的客戶端,即可在 IDE 內以自然語言與 CircleCI 互動。

工具

工具說明
analyze_diff分析 git diff 是否違反游標規則
config_helper驗證並取得 CircleCI 設定的指引
create_prompt_template為 AI 應用程式產生結構化提示範本
download_usage_api_data從 CircleCI Usage API 下載使用量資料
find_flaky_tests透過分析測試執行歷史記錄來識別不穩定的測試
find_underused_resource_classes找出運算資源使用率不足的工作
get_build_failure_logs從 CircleCI 建置中擷取詳細的失敗記錄
get_job_test_results擷取 CircleCI 工作的測試中繼資料和結果
get_latest_pipeline_status取得分支最新管線的狀態
list_artifacts列出 CircleCI 工作產生的成品
list_component_versions列出 CircleCI 元件的所有版本
list_followed_projects列出您追蹤的所有 CircleCI 專案
recommend_prompt_template_tests為提示範本產生測試案例
rerun_workflow從頭開始或從失敗的工作重新執行工作流程
run_evaluation_tests對 CircleCI 管線執行評估測試
run_pipeline觸發管線執行
run_rollback_pipeline觸發專案的復原

安裝

團隊 / 集中式部署: 若要為您的組織執行一個共用的遠端伺服器(Kubernetes、Docker 等),並使用個別開發人員或共用的 CircleCI 權杖,請參閱自我管理遠端 MCP 伺服器

Cursor

必要條件:

在本機 MCP 伺服器中使用 NPX

將以下內容新增至您的 Cursor MCP 設定:

{
  "mcpServers": {
    "circleci-mcp-server": {
      "command": "npx",
      "args": ["-y", "@circleci/mcp-server-circleci@latest"],
      "env": {
        "CIRCLECI_TOKEN": "your-circleci-token",
        "CIRCLECI_BASE_URL": "https://circleci.com",
        "MAX_MCP_OUTPUT_LENGTH": "50000"
      }
    }
  }
}

CIRCLECI_BASE_URL 為選用 — 僅限內部部署客戶需要。 MAX_MCP_OUTPUT_LENGTH 為選用 — MCP 回應的最大輸出長度(預設:50000)。

在本機 MCP 伺服器中使用 Docker

將以下內容新增至您的 Cursor MCP 設定:

{
  "mcpServers": {
    "circleci-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "CIRCLECI_TOKEN",
        "-e",
        "CIRCLECI_BASE_URL",
        "-e",
        "MAX_MCP_OUTPUT_LENGTH",
        "circleci/mcp-server-circleci"
      ],
      "env": {
        "CIRCLECI_TOKEN": "your-circleci-token",
        "CIRCLECI_BASE_URL": "https://circleci.com",
        "MAX_MCP_OUTPUT_LENGTH": "50000"
      }
    }
  }
}

使用自我管理遠端 MCP 伺服器

請參閱自我管理遠端 MCP 伺服器。使用個別使用者客戶端設定並將其新增至您的 Cursor MCP 設定(Cursor Settings → MCP)。

VS Code

必要條件:

在本機 MCP 伺服器中使用 NPX

將以下內容新增至您專案中的 .vscode/mcp.json

{
  "inputs": [
    {
      "type": "promptString",
      "id": "circleci-token",
      "description": "CircleCI API Token",
      "password": true
    },
    {
      "type": "promptString",
      "id": "circleci-base-url",
      "description": "CircleCI Base URL",
      "default": "https://circleci.com"
    }
  ],
  "servers": {
    "circleci-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@circleci/mcp-server-circleci@latest"],
      "env": {
        "CIRCLECI_TOKEN": "${input:circleci-token}",
        "CIRCLECI_BASE_URL": "${input:circleci-base-url}"
      }
    }
  }
}

💡 輸入值會在伺服器首次啟動時提示,然後由 VS Code 安全地儲存。

在本機 MCP 伺服器中使用 Docker

將以下內容新增至您專案中的 .vscode/mcp.json

{
  "inputs": [
    {
      "type": "promptString",
      "id": "circleci-token",
      "description": "CircleCI API Token",
      "password": true
    },
    {
      "type": "promptString",
      "id": "circleci-base-url",
      "description": "CircleCI Base URL",
      "default": "https://circleci.com"
    }
  ],
  "servers": {
    "circleci-mcp-server": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "CIRCLECI_TOKEN",
        "-e",
        "CIRCLECI_BASE_URL",
        "circleci/mcp-server-circleci"
      ],
      "env": {
        "CIRCLECI_TOKEN": "${input:circleci-token}",
        "CIRCLECI_BASE_URL": "${input:circleci-base-url}"
      }
    }
  }
}

使用自我管理遠端 MCP 伺服器

請參閱自我管理遠端 MCP 伺服器。在 .vscode/mcp.json 中使用個別使用者客戶端設定

Claude Desktop

必要條件:

在本機 MCP 伺服器中使用 NPX

將以下內容新增至您的 claude_desktop_config.json

{
  "mcpServers": {
    "circleci-mcp-server": {
      "command": "npx",
      "args": ["-y", "@circleci/mcp-server-circleci@latest"],
      "env": {
        "CIRCLECI_TOKEN": "your-circleci-token",
        "CIRCLECI_BASE_URL": "https://circleci.com",
        "MAX_MCP_OUTPUT_LENGTH": "50000"
      }
    }
  }
}

在本機 MCP 伺服器中使用 Docker

將以下內容新增至您的 claude_desktop_config.json

{
  "mcpServers": {
    "circleci-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "CIRCLECI_TOKEN",
        "-e",
        "CIRCLECI_BASE_URL",
        "-e",
        "MAX_MCP_OUTPUT_LENGTH",
        "circleci/mcp-server-circleci"
      ],
      "env": {
        "CIRCLECI_TOKEN": "your-circleci-token",
        "CIRCLECI_BASE_URL": "https://circleci.com",
        "MAX_MCP_OUTPUT_LENGTH": "50000"
      }
    }
  }
}

使用自我管理遠端 MCP 伺服器

請參閱自我管理遠端 MCP 伺服器。依照 Claude Desktop 和 CLI 客戶端中的說明建立包裝指令碼,然後將您的 claude_desktop_config.json 指向它。

若要尋找或建立您的設定檔,請開啟 Claude Desktop 設定,點擊左側邊欄中的 Developer,然後點擊 Edit Config。設定檔位於:

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

更多資訊:https://modelcontextprotocol.io/quickstart/user

Claude Code

必要條件:

在本機 MCP 伺服器中使用 NPX

claude mcp add circleci-mcp-server -e CIRCLECI_TOKEN=your-circleci-token -- npx -y @circleci/mcp-server-circleci@latest

在本機 MCP 伺服器中使用 Docker

claude mcp add circleci-mcp-server -e CIRCLECI_TOKEN=your-circleci-token -e CIRCLECI_BASE_URL=https://circleci.com -- docker run --rm -i -e CIRCLECI_TOKEN -e CIRCLECI_BASE_URL circleci/mcp-server-circleci

使用自我管理遠端 MCP 伺服器

請參閱自我管理遠端 MCP 伺服器和那裡的 Claude Code 客戶端設定。

Windsurf

必要條件:

在本機 MCP 伺服器中使用 NPX

將以下內容新增至您的 Windsurf mcp_config.json

{
  "mcpServers": {
    "circleci-mcp-server": {
      "command": "npx",
      "args": ["-y", "@circleci/mcp-server-circleci@latest"],
      "env": {
        "CIRCLECI_TOKEN": "your-circleci-token",
        "CIRCLECI_BASE_URL": "https://circleci.com",
        "MAX_MCP_OUTPUT_LENGTH": "50000"
      }
    }
  }
}

在本機 MCP 伺服器中使用 Docker

將以下內容新增至您的 Windsurf mcp_config.json

{
  "mcpServers": {
    "circleci-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "CIRCLECI_TOKEN",
        "-e",
        "CIRCLECI_BASE_URL",
        "-e",
        "MAX_MCP_OUTPUT_LENGTH",
        "circleci/mcp-server-circleci"
      ],
      "env": {
        "CIRCLECI_TOKEN": "your-circleci-token",
        "CIRCLECI_BASE_URL": "https://circleci.com",
        "MAX_MCP_OUTPUT_LENGTH": "50000"
      }
    }
  }
}

使用自我管理遠端 MCP 伺服器

請參閱自我管理遠端 MCP 伺服器。在您的 Windsurf mcp_config.json 中使用個別使用者客戶端設定

更多資訊:https://docs.windsurf.com/windsurf/mcp

Amazon Q Developer CLI

必要條件:

Amazon Q Developer 中的 MCP 客戶端設定以 JSON 格式儲存在名為 mcp.json 的檔案中。支援兩個層級的設定:

  • 全域: ~/.aws/amazonq/mcp.json — 適用於所有工作區
  • 工作區: .amazonq/mcp.json — 特定於目前工作區

如果兩個檔案都存在,其內容會合併。若有衝突,以工作區設定為準。

在本機 MCP 伺服器中使用 NPX

編輯 ~/.aws/amazonq/mcp.json 或建立 .amazonq/mcp.json,內容如下:

{
  "mcpServers": {
    "circleci-local": {
      "command": "npx",
      "args": [
        "-y",
        "@circleci/mcp-server-circleci@latest"
      ],
      "env": {
        "CIRCLECI_TOKEN": "YOUR_CIRCLECI_TOKEN",
        "CIRCLECI_BASE_URL": "https://circleci.com",
        "MAX_MCP_OUTPUT_LENGTH": "50000"
      },
      "timeout": 60000
    }
  }
}

使用自我管理遠端 MCP 伺服器

請參閱自我管理遠端 MCP 伺服器。依照 Claude Desktop 和 CLI 客戶端中的說明使用包裝指令碼,然後使用 q mcp add 註冊它。

Amazon Q Developer in the IDE

必要條件:

在本機 MCP 伺服器中使用 NPX

編輯 ~/.aws/amazonq/mcp.json 或建立 .amazonq/mcp.json,內容如下:

{
  "mcpServers": {
    "circleci-local": {
      "command": "npx",
      "args": [
        "-y",
        "@circleci/mcp-server-circleci@latest"
      ],
      "env": {
        "CIRCLECI_TOKEN": "YOUR_CIRCLECI_TOKEN",
        "CIRCLECI_BASE_URL": "https://circleci.com",
        "MAX_MCP_OUTPUT_LENGTH": "50000"
      },
      "timeout": 60000
    }
  }
}

使用自我管理遠端 MCP 伺服器

請參閱自我管理遠端 MCP 伺服器。依照 Claude Desktop 和 CLI 客戶端中的說明使用包裝指令碼,然後透過 MCP 設定 UI 新增它:

  1. 存取 MCP 設定 UI
  2. 選擇 + 符號
  3. 選擇範圍:全域本機
  4. 輸入名稱(例如 circleci-remote-mcp
  5. 選擇傳輸協定:stdio
  6. 輸入指令碼的命令路徑
  7. 點擊 Save
Smithery

要透過 Smithery 自動為 Claude Desktop 安裝 CircleCI MCP 伺服器:

npx -y @smithery/cli install @CircleCI-Public/mcp-server-circleci --client claude

自我管理遠端 MCP 伺服器

集中執行 MCP 伺服器(例如在 Kubernetes 或 Docker 上),讓您的團隊共用一個部署。選擇開發人員的驗證方式:

選擇部署模式

模式使用時機伺服器設定客戶端設定CircleCI 稽核追蹤
個別使用者權杖(建議)使用 SSO 支援的個人 API 權杖的團隊REQUIRE_REQUEST_TOKEN=true,無伺服器 PAT每位開發人員轉送其 PAT個別開發人員
共用權杖(過渡)快速推出,單一服務身分可接受伺服器上的 CIRCLECI_TOKENREQUIRE_REQUEST_TOKEN=false(明確退出)無需驗證標頭單一共用身分

安全性: 在遠端模式下,要求驗證預設為開啟。共用權杖模式會停用它(REQUIRE_REQUEST_TOKEN=false),使每個呼叫者都能以伺服器的 CIRCLECI_TOKEN 身分操作,無需任何憑證。僅在您完全信任的網路上啟用它,否則請優先使用個別使用者權杖。在入口處終止 TLS 可提供加密,而非驗證。

1. 部署伺服器

兩種模式都使用遠端 HTTP 模式(start=remote)。發布連接埠 8000(或您選擇的連接埠)。

個別使用者權杖(建議):

docker run --rm -p 8000:8000 \
  -e start=remote \
  -e port=8000 \
  -e REQUIRE_REQUEST_TOKEN=true \
  circleci/mcp-server-circleci

共用權杖(過渡):

docker run --rm -p 8000:8000 \
  -e start=remote \
  -e port=8000 \
  -e CIRCLECI_TOKEN=your-shared-circleci-pat \
  -e REQUIRE_REQUEST_TOKEN=false \
  circleci/mcp-server-circleci

環境變數:

變數說明
start=remote啟動 HTTP+SSE MCP 伺服器,而非 stdio
port容器內的監聽連接埠(預設:8000
REQUIRE_REQUEST_TOKEN拒絕沒有 Authorization: BearerCircle-Token 標頭的要求。預設為必要;設定 REQUIRE_REQUEST_TOKEN=false 以允許未驗證的要求(共用權杖模式)
CIRCLECI_TOKEN當未傳送個別使用者標頭時,用於所有要求的共用後備 PAT
CIRCLECI_BASE_URL選用 — 僅限內部部署需要(預設:https://circleci.com
DISABLE_TELEMETRY=true退出使用量指標匯出

伺服器透過以下方式接受個別要求權杖:

  • Authorization: Bearer <circleci-pat>
  • Circle-Token: <circleci-pat>

如果客戶端傳送標頭權杖,其優先權高於伺服器上的 CIRCLECI_TOKEN

在要求期間記錄的遙測指標會使用與該要求相同的權杖匯出。

2. 設定客戶端

大多數 MCP 客戶端僅支援本機 (stdio) 程序。使用 mcp-remote,一個第三方的 stdio 轉 HTTP 橋接器,將它們連接到您的遠端伺服器。

URL 架構: 在本機測試時使用 http://localhost:8000/mcp 搭配 --allow-http。在生產環境中,在您的入口/負載平衡器處終止 TLS,並使用不含 --allow-httphttps://your-host/mcp

Windows: 避免在 --header 值的冒號周圍留有空格。將完整的 Bearer <token> 值放入環境變數中。

安全性: 為方便起見,範例使用 npx。對於生產環境或團隊推出,請在您的 MCP 設定中固定特定版本(例如 [email protected] 而非 mcp-remote)。請勿使用低於 0.1.16 的版本(CVE-2025-6514)。

客戶端設定:個別使用者權杖

每位開發人員在每個要求中轉送自己的 CircleCI 個人 API 權杖:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "circleci-token",
      "description": "CircleCI API Token",
      "password": true
    }
  ],
  "mcpServers": {
    "circleci-mcp-server-remote": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "http://localhost:8000/mcp",
        "--allow-http",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "env": {
        "AUTH_HEADER": "Bearer ${input:circleci-token}"
      }
    }
  }
}

http://localhost:8000/mcp 替換為您團隊的伺服器 URL。Cursor 和 VS Code 支援 ${input:...} 提示;其他客戶端可以直接設定 AUTH_HEADER

客戶端設定:共用權杖

當伺服器設定了 CIRCLECI_TOKEN 並以 REQUIRE_REQUEST_TOKEN=false 啟動時(請求驗證預設為開啟,必須明確停用),客戶端無需傳送權杖:

{
  "mcpServers": {
    "circleci-mcp-server-remote": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "http://localhost:8000/mcp",
        "--allow-http"
      ]
    }
  }
}

Claude Desktop 和 CLI 客戶端

建立一個包裝腳本(例如 circleci-remote-mcp.sh):

#!/bin/bash
export AUTH_HEADER="Bearer your-circleci-token"
npx mcp-remote http://localhost:8000/mcp --allow-http --header "Authorization:${AUTH_HEADER}"

將其設為可執行檔(chmod +x circleci-remote-mcp.sh),然後在您的 MCP 設定中引用它:

{
  "mcpServers": {
    "circleci-remote-mcp-server": {
      "command": "/full/path/to/circleci-remote-mcp.sh"
    }
  }
}

Claude Code

claude mcp add circleci-mcp-server \
  -e AUTH_HEADER="Bearer your-circleci-token" \
  -- npx mcp-remote http://localhost:8000/mcp --allow-http --header "Authorization:${AUTH_HEADER}"

使用共用權杖伺服器時,請省略 --headerAUTH_HEADER

3. 驗證部署

# Health check (no auth required)
curl http://localhost:8000/ping

# Should return 401 when REQUIRE_REQUEST_TOKEN=true and no token is sent
curl -s -o /dev/null -w "%{http_code}\n" -X POST http://localhost:8000/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'

# Should return 200 with a valid Bearer token and MCP Accept headers
curl -s -o /dev/null -w "%{http_code}\n" -X POST http://localhost:8000/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Authorization: Bearer your-circleci-pat" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'

示範

觀看實際操作

範例:「找出我分支上最新的失敗管線並取得日誌」 — 更多範例請參閱 wiki

https://github.com/user-attachments/assets/3c765985-8827-442a-a8dc-5069e01edb74

工具詳細資訊

analyze_diff

分析 git 差異對照游標規則,以識別規則違規。

提供:

  • Git 差異內容(例如 git diff --cachedgit diff HEAD
  • 來自 .cursorrules.cursor/rules儲存庫規則

傳回詳細的違規報告,包含信心分數和說明。

適用於:

  • 提交前程式碼品質檢查
  • 確保符合團隊編碼標準
  • 在程式碼審查前捕捉規則違規
config_helper

透過提供指引和驗證,協助處理 CircleCI 設定任務。

  • 驗證您的 .circleci/config.yml 是否有語法和語意錯誤
  • 提供詳細的驗證結果和設定建議
  • 範例:「驗證我的 CircleCI 設定」
create_prompt_template

根據功能需求,為 AI 驅動的應用程式產生結構化提示範本。

  • 將使用者需求轉換為最佳化的提示範本
  • 傳回結構化範本和定義必要輸入參數的內容結構描述
  • 範例:「建立一個按年齡和主題產生睡前故事的提示範本」
download_usage_api_data

從 CircleCI 使用量 API 下載指定組織的使用量資料。接受彈性的日期輸入(例如「2025 年 3 月」或「上個月」)。僅限雲端功能。

選項 1: 透過提供以下內容來啟動新的匯出作業:

  • orgIdstartDateendDate(最多 32 天)、outputDir

選項 2: 透過提供以下內容來檢查/下載現有的匯出作業:

  • orgIdjobIdoutputDir

傳回包含指定時間範圍內 CircleCI 使用量資料的 CSV 檔案。

[!NOTE] 使用量資料可以輸入到 find_underused_resource_classes 工具中進行成本最佳化分析。

find_flaky_tests

透過分析測試執行歷史記錄,識別 CircleCI 專案中的不穩定測試。利用 CircleCI 中的不穩定測試偵測功能

此工具可以三種方式使用:

  1. 使用專案 Slug(建議):

    • 首先使用 list_followed_projects 取得您的專案,然後:
    • 範例:「取得 my-project 的不穩定測試」
  2. 使用 CircleCI 專案 URL:

  3. 使用本機專案內容:

    • 透過提供工作區根目錄和 git 遠端 URL,從本機工作區運作
    • 範例:「在我目前的專案中尋找不穩定測試」

輸出模式:

  • 文字(預設): 以文字格式傳回不穩定測試詳細資訊
  • 檔案(需要 FILE_OUTPUT_DIRECTORY 環境變數):建立包含不穩定測試詳細資訊的目錄
find_underused_resource_classes

分析 CircleCI 使用量資料 CSV 檔案,以找出平均或最大 CPU/RAM 使用量低於指定閾值(預設:40%)的作業。

提供從 download_usage_api_data 取得的 CSV 檔案。

傳回按專案和工作流程整理的未充分利用作業的 Markdown 清單 — 有助於識別成本最佳化機會。

get_build_failure_logs

從 CircleCI 建置中擷取詳細的失敗日誌。此工具可以三種方式使用:

  1. 使用專案 Slug 和分支(建議):

    • 首先使用 list_followed_projects 取得您的專案,然後:
    • 範例:「取得 my-project 在 main 分支上的建置失敗」
  2. 使用 CircleCI URL:

  3. 使用本機專案內容:

    • 透過提供工作區根目錄、git 遠端 URL 和分支名稱,從本機工作區運作
    • 範例:「找出我目前分支上最新的失敗管線」

此工具傳回的格式化日誌包含:

  • 作業名稱
  • 逐步執行詳細資訊
  • 失敗訊息和上下文
get_job_test_results

擷取 CircleCI 作業的測試中繼資料,讓您無需離開 IDE 即可分析測試結果。此工具可以三種方式使用:

  1. 使用專案 Slug 和分支(建議):

    • 範例:「取得 my-project 在 main 分支上的測試結果」
  2. 使用 CircleCI URL:

    • 作業 URL:https://app.circleci.com/pipelines/github/org/repo/123/workflows/abc-def/jobs/789
    • 工作流程 URL:https://app.circleci.com/pipelines/github/org/repo/123/workflows/abc-def
    • 管線 URL:https://app.circleci.com/pipelines/github/org/repo/123
  3. 使用本機專案內容:

    • 透過提供工作區根目錄、git 遠端 URL 和分支名稱,從本機工作區運作

此工具傳回:

  • 所有測試的摘要(總數、成功、失敗)
  • 失敗測試的詳細資訊:名稱、類別、檔案、錯誤訊息、持續時間
  • 成功測試的清單及其時間
  • 按測試結果篩選

[!NOTE] 必須在您的 CircleCI 設定中設定測試中繼資料。請參閱收集測試資料以取得設定說明。

get_latest_pipeline_status

擷取指定分支最新管線的狀態。此工具可以三種方式使用:

  1. 使用專案 Slug 和分支(建議):

    • 範例:「取得 my-project 在 main 分支上最新管線的狀態」
  2. 使用 CircleCI 專案 URL:

  3. 使用本機專案內容:

    • 透過提供工作區根目錄、git 遠端 URL 和分支名稱,從本機工作區運作

輸出範例:

---
Workflow: build
Status: success
Duration: 5 minutes
Created: 4/20/2025, 10:15:30 AM
Stopped: 4/20/2025, 10:20:45 AM
---
Workflow: test
Status: running
Duration: unknown
Created: 4/20/2025, 10:21:00 AM
Stopped: in progress
list_artifacts

擷取 CircleCI 作業產生的成品清單。此工具可以三種方式使用:

  1. 使用專案 Slug 和分支(建議):

    • 首先使用 list_followed_projects 取得您的專案,然後:
    • 範例:「列出 my-project 在 main 分支上的成品」
  2. 使用 CircleCI URL:

    • 作業 URL:https://app.circleci.com/pipelines/gh/organization/project/123/workflows/abc-def/jobs/789
    • 工作流程 URL:https://app.circleci.com/pipelines/gh/organization/project/123/workflows/abc-def
    • 管線 URL:https://app.circleci.com/pipelines/gh/organization/project/123
  3. 使用本機專案內容:

    • 透過提供工作區根目錄、git 遠端 URL 和分支名稱,從本機工作區運作

適用於:

  • 尋找建置成品(二進位檔、報告、日誌)的下載 URL
  • 檢查管線執行產生了哪些成品
list_component_versions

列出環境中特定 CircleCI 元件的所有版本。包含部署狀態、提交資訊和時間戳記。

如果未提供,此工具將提示您選取元件和環境。

適用於:

  • 識別目前上線的版本
  • 選取用於復原操作的目標版本
  • 取得部署詳細資訊(管線、工作流程、作業)
list_followed_projects

列出使用者在 CircleCI 上追蹤的所有專案。

  • 顯示您有權存取的所有專案及其 projectSlug
  • 範例:「列出我的 CircleCI 專案」

輸出範例:

Projects followed:
1. my-project (projectSlug: gh/organization/my-project)
2. another-project (projectSlug: gh/organization/another-project)

[!NOTE] 許多其他 CircleCI 工具都需要 projectSlug(而非專案名稱)。

recommend_prompt_template_tests

為提示範本產生測試案例,以確保其產生預期結果。

  • 根據您的提示範本和內容結構描述建立多樣化的測試情境
  • 傳回包含各種參數組合的建議測試案例陣列
  • 範例:「為我的睡前故事提示範本產生測試」
rerun_workflow

從頭開始或從失敗的作業重新執行工作流程。

傳回新建立的工作流程 ID 和用於監控的連結。

run_evaluation_tests

在 CircleCI 管線上執行評估測試(也稱為「提示測試」)。產生適當的 CircleCI 設定並使用它觸發管線。

此工具可以三種方式使用:

  1. 使用專案 Slug 和分支(建議):

    • 首先使用 list_followed_projects 取得您的專案,然後:
    • 範例:「為 my-project 在 main 分支上執行評估測試」
  2. 使用 CircleCI URL:

  3. 使用本機專案內容:

    • 透過提供工作區根目錄、git 遠端 URL 和分支名稱,從本機工作區運作

此工具接受提示範本檔案,並傳回用於監控已觸發管線的 URL。

[!NOTE] 如果專案有多個管線定義,此工具將傳回可用管線清單供您選擇。

run_pipeline

觸發管線執行。此工具可以三種方式使用:

  1. 使用專案 Slug 和分支(建議):

    • 範例:「為 my-project 在 main 分支上執行管線」
  2. 使用 CircleCI URL:

  3. 使用本機專案內容:

    • 透過提供工作區根目錄、git 遠端 URL 和分支名稱,從本機工作區運作

此工具傳回用於監控管線執行的連結。

run_rollback_pipeline 觸發 CircleCI 專案的回滾。此工具會以互動方式引導您完成以下步驟:
  1. 專案選擇 — 列出您追蹤的專案供您選擇
  2. 環境選擇 — 列出可用的環境(若只有一個則自動選取)
  3. 元件選擇 — 列出可用的元件(若只有一個則自動選取)
  4. 版本選擇 — 顯示可用的版本;您可選擇回滾的目標版本
  5. 回滾模式偵測 — 檢查是否已設定回滾管線
  6. 執行回滾 — 兩種選項:
    • 管線回滾: 觸發回滾管線
    • 工作流程重新執行: 使用工作流程 ID 重新執行先前的工作流程
  7. 確認 — 執行前摘要並確認

疑難排解

快速修復

最常見的問題:

  1. 清除套件快取:

    npx clear-npx-cache
    npm cache clean --force
    
  2. 強制使用最新版本: 在您的設定檔中加入 @latest

    "args": ["-y", "@circleci/mcp-server-circleci@latest"]
    
  3. 完全重新啟動您的 IDE(不僅僅是重新載入視窗)

驗證問題
  • 無效的權杖錯誤:個人 API 權杖 中驗證您的 CIRCLECI_TOKEN
  • 權限錯誤: 確保權杖具有您專案的讀取權限
  • 環境變數未載入: 使用 echo $CIRCLECI_TOKEN(Mac/Linux)或 echo %CIRCLECI_TOKEN%(Windows)進行測試
連線與網路問題
  • 基礎 URL: 確認 CIRCLECI_BASE_URLhttps://circleci.com
  • 企業網路: 若位於防火牆後方,請設定 npm 代理伺服器設定
  • 防火牆封鎖: 檢查安全軟體是否封鎖了套件下載
系統需求
  • Node.js 版本: 使用 node --version 確保版本 >= 18.0.0
  • 更新 Node.js: 若遇到相容性問題,請考慮使用最新的 LTS 版本
  • 套件管理器: 驗證 npm/pnpm 是否正常運作:npm --version
IDE 特定問題
  • 設定檔位置: 仔細檢查您作業系統的對應路徑
  • 語法錯誤: 驗證設定檔中的 JSON 語法
  • 主控台記錄: 檢查 IDE 開發人員主控台中的特定錯誤
  • 嘗試不同的 IDE: 在其他支援的編輯器中測試,以隔離問題
處理程序問題

無回應的處理程序 — 終止現有的 MCP 處理程序:

# Mac/Linux:
pkill -f "mcp-server-circleci"

# Windows:
taskkill /f /im node.exe

連接埠衝突: 若連線似乎被封鎖,請重新啟動您的 IDE。

進階除錯
  • 直接測試套件: npx @circleci/mcp-server-circleci@latest --help
  • 詳細記錄: DEBUG=* npx @circleci/mcp-server-circleci@latest
  • Docker 備用方案: 若 npx 持續失敗,請嘗試 Docker 安裝

仍需協助?

  1. 查看 GitHub Issues 中是否有類似問題
  2. 回報問題時,請附上您的作業系統、Node 版本和 IDE
  3. 分享 IDE 主控台中的相關錯誤訊息

遙測

伺服器支援 OpenTelemetry 指標,用於追蹤工具使用情況。除非您設定了 DISABLE_TELEMETRY=true,否則指標將會匯出。在遠端部署中,指標使用與請求相同的權杖(每位使用者的 PAT 或共用的伺服器 PAT)。

指標說明
circleci.mcp.tool.invocations工具叫用次數
circleci.mcp.tool.duration_ms執行時間(毫秒)
circleci.mcp.tool.errors錯誤次數

開發

入門指南

  1. 複製儲存庫:

    git clone https://github.com/CircleCI-Public/mcp-server-circleci.git
    cd mcp-server-circleci
    
  2. 安裝相依套件:

    pnpm install
    
  3. 建置專案:

    pnpm build
    

建置 Docker 容器

您可以使用以下指令在本機建置 Docker 容器:

docker build -t circleci:mcp-server-circleci .

這將會建立一個標記為 circleci:mcp-server-circleci 的 Docker 映像檔,您可以將其與任何 MCP 客戶端搭配使用。

本機 stdio 模式(單一開發人員,權杖位於客戶端):

docker run --rm -i \
  -e CIRCLECI_TOKEN=your-circleci-token \
  -e CIRCLECI_BASE_URL=https://circleci.com \
  circleci/mcp-server-circleci

遠端模式(團隊的集中式伺服器):請參閱 自我管理的遠端 MCP 伺服器

使用 MCP Inspector 進行開發

迭代開發 MCP 伺服器最簡單的方法是使用 MCP Inspector。您可以在 https://modelcontextprotocol.io/docs/tools/inspector 了解更多關於 MCP Inspector 的資訊。

  1. 啟動開發伺服器:

    pnpm watch # Keep this running in one terminal
    
  2. 在另一個終端機中,啟動 Inspector:

    pnpm inspector
    
  3. 設定環境:

    • 在 Inspector UI 的「環境變數」區段中新增您的 CIRCLECI_TOKEN
    • 該權杖需要您 CircleCI 專案的讀取權限
    • 可選擇性地設定您的 CircleCI 基礎 URL(預設為 https://circleci.com

測試

  • 執行測試套件:

    pnpm test
    
  • 在開發期間以監看模式執行測試:

    pnpm test:watch
    

如需更詳細的貢獻指南,請參閱 CONTRIBUTING.md