CircleCI

chính thức

Cho phép AI Agent sửa lỗi build từ CircleCI.

Bạn có thể làm gì với Circle CI MCP?

  • Kiểm tra trạng thái pipeline mới nhất — Yêu cầu trạng thái của pipeline gần nhất trên một nhánh bằng cách sử dụng get_latest_pipeline_status.
  • Truy xuất nhật ký lỗi build — Lấy nhật ký lỗi chi tiết từng bước từ một job hoặc pipeline bị lỗi với get_build_failure_logs.
  • Xác định các bài kiểm tra không ổn định (flaky tests) — Phân tích lịch sử thực thi kiểm tra để làm nổi bật các bài kiểm tra không ổn định trong một dự án thông qua find_flaky_tests.
  • Xác thực cấu hình CircleCI — Xác thực tệp .circleci/config.yml của bạn về lỗi cú pháp và ngữ nghĩa bằng cách sử dụng config_helper.
  • Tìm tài nguyên tính toán chưa được sử dụng hết — Phân tích dữ liệu sử dụng để phát hiện các job có mức sử dụng CPU/RAM thấp thông qua find_underused_resource_classes.
  • Kích hoạt một lần chạy pipeline — Khởi chạy một pipeline mới cho một dự án bằng cách sử dụng run_pipeline.

Tài liệu

[!IMPORTANT] Kho lưu trữ này đã bị loại bỏ. Máy chủ CircleCI MCP hiện được tích hợp sẵn trong CircleCI CLI. Truy cập cli.circleci.com để bắt đầu.

Máy chủ CircleCI MCP

License: Apache 2.0 CircleCI npm

Giao thức Ngữ cảnh Mô hình (MCP) là một giao thức mới, được chuẩn hóa để quản lý ngữ cảnh giữa các mô hình ngôn ngữ lớn (LLM) và các hệ thống bên ngoài. Trong kho lưu trữ này, chúng tôi cung cấp một Máy chủ MCP cho CircleCI.

Sử dụng Cursor, Windsurf, Copilot, Claude hoặc bất kỳ ứng dụng khách tương thích MCP nào để tương tác với CircleCI bằng ngôn ngữ tự nhiên — mà không cần rời khỏi IDE của bạn.

Công cụ

Công cụMô tả
analyze_diffPhân tích các khác biệt git dựa trên các quy tắc con trỏ để tìm vi phạm
config_helperXác thực và nhận hướng dẫn cho cấu hình CircleCI của bạn
create_prompt_templateTạo các mẫu lời nhắc có cấu trúc cho các ứng dụng AI
download_usage_api_dataTải xuống dữ liệu sử dụng từ API Sử dụng CircleCI
find_flaky_testsXác định các bài kiểm tra không ổn định bằng cách phân tích lịch sử thực thi kiểm tra
find_underused_resource_classesTìm các công việc có tài nguyên tính toán chưa được sử dụng đúng mức
get_build_failure_logsTruy xuất nhật ký lỗi chi tiết từ các bản dựng CircleCI
get_job_test_resultsTruy xuất siêu dữ liệu và kết quả kiểm tra cho các công việc CircleCI
get_latest_pipeline_statusLấy trạng thái của pipeline mới nhất cho một nhánh
list_artifactsLiệt kê các tạo phẩm được tạo ra bởi một công việc CircleCI
list_component_versionsLiệt kê tất cả các phiên bản cho một thành phần CircleCI
list_followed_projectsLiệt kê tất cả các dự án CircleCI bạn đang theo dõi
recommend_prompt_template_testsTạo các trường hợp kiểm thử cho các mẫu lời nhắc
rerun_workflowChạy lại một quy trình làm việc từ đầu hoặc từ công việc bị lỗi
run_evaluation_testsChạy các bài kiểm tra đánh giá trên một pipeline CircleCI
run_pipelineKích hoạt một pipeline để chạy
run_rollback_pipelineKích hoạt khôi phục cho một dự án

Cài đặt

Triển khai nhóm / tập trung: Để chạy một máy chủ từ xa dùng chung cho tổ chức của bạn (Kubernetes, Docker, v.v.) với mã thông báo CircleCI cho từng nhà phát triển hoặc dùng chung, hãy xem Máy chủ MCP Từ xa Tự quản lý.

Cursor

Điều kiện tiên quyết:

Sử dụng NPX trong Máy chủ MCP cục bộ

Thêm phần sau vào cấu hình Cursor MCP của bạn:

{
  "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 là tùy chọn — chỉ bắt buộc đối với khách hàng tại chỗ. MAX_MCP_OUTPUT_LENGTH là tùy chọn — độ dài đầu ra tối đa cho các phản hồi MCP (mặc định: 50000).

Sử dụng Docker trong Máy chủ MCP cục bộ

Thêm phần sau vào cấu hình Cursor MCP của bạn:

{
  "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"
      }
    }
  }
}

Sử dụng Máy chủ MCP Từ xa Tự quản lý

Xem Máy chủ MCP Từ xa Tự quản lý. Sử dụng cấu hình ứng dụng khách cho từng người dùng và thêm nó vào cấu hình Cursor MCP của bạn (Cursor Settings → MCP).

VS Code

Điều kiện tiên quyết:

Sử dụng NPX trong Máy chủ MCP cục bộ

Thêm phần sau vào .vscode/mcp.json trong dự án của bạn:

{
  "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}"
      }
    }
  }
}

💡 Các đầu vào được nhắc khi khởi động máy chủ lần đầu, sau đó được VS Code lưu trữ an toàn.

Sử dụng Docker trong Máy chủ MCP cục bộ

Thêm phần sau vào .vscode/mcp.json trong dự án của bạn:

{
  "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}"
      }
    }
  }
}

Sử dụng Máy chủ MCP Từ xa Tự quản lý

Xem Máy chủ MCP Từ xa Tự quản lý. Sử dụng cấu hình ứng dụng khách cho từng người dùng trong .vscode/mcp.json.

Claude Desktop

Điều kiện tiên quyết:

Sử dụng NPX trong Máy chủ MCP cục bộ

Thêm phần sau vào claude_desktop_config.json của bạn:

{
  "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"
      }
    }
  }
}

Sử dụng Docker trong Máy chủ MCP cục bộ

Thêm phần sau vào claude_desktop_config.json của bạn:

{
  "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"
      }
    }
  }
}

Sử dụng Máy chủ MCP Từ xa Tự quản lý

Xem Máy chủ MCP Từ xa Tự quản lý. Tạo một tập lệnh bao bọc như được hiển thị trong Ứng dụng khách Claude Desktop và CLI, sau đó trỏ claude_desktop_config.json của bạn vào đó.

Để tìm hoặc tạo tệp cấu hình của bạn, hãy mở cài đặt Claude Desktop, nhấp vào Developer ở thanh bên trái, sau đó nhấp vào Edit Config. Tệp cấu hình nằm ở:

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

Để biết thêm thông tin: https://modelcontextprotocol.io/quickstart/user

Claude Code

Điều kiện tiên quyết:

Sử dụng NPX trong Máy chủ MCP cục bộ

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

Sử dụng Docker trong Máy chủ MCP cục bộ

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

Sử dụng Máy chủ MCP Từ xa Tự quản lý

Xem Máy chủ MCP Từ xa Tự quản lý và thiết lập ứng dụng khách Claude Code ở đó.

Windsurf

Điều kiện tiên quyết:

Sử dụng NPX trong Máy chủ MCP cục bộ

Thêm phần sau vào mcp_config.json Windsurf của bạn:

{
  "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"
      }
    }
  }
}

Sử dụng Docker trong Máy chủ MCP cục bộ

Thêm phần sau vào mcp_config.json Windsurf của bạn:

{
  "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"
      }
    }
  }
}

Sử dụng Máy chủ MCP Từ xa Tự quản lý

Xem Máy chủ MCP Từ xa Tự quản lý. Sử dụng cấu hình ứng dụng khách cho từng người dùng trong mcp_config.json Windsurf của bạn.

Để biết thêm thông tin: https://docs.windsurf.com/windsurf/mcp

Amazon Q Developer CLI

Điều kiện tiên quyết:

Cấu hình ứng dụng khách MCP trong Amazon Q Developer được lưu trữ ở định dạng JSON trong một tệp có tên mcp.json. Hai cấp độ cấu hình được hỗ trợ:

  • Toàn cục: ~/.aws/amazonq/mcp.json — áp dụng cho tất cả không gian làm việc
  • Không gian làm việc: .amazonq/mcp.json — cụ thể cho không gian làm việc hiện tại

Nếu cả hai tệp tồn tại, nội dung của chúng được hợp nhất. Trong trường hợp xung đột, cấu hình không gian làm việc được ưu tiên.

Sử dụng NPX trong Máy chủ MCP cục bộ

Chỉnh sửa ~/.aws/amazonq/mcp.json hoặc tạo .amazonq/mcp.json với nội dung sau:

{
  "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
    }
  }
}

Sử dụng Máy chủ MCP Từ xa Tự quản lý

Xem Máy chủ MCP Từ xa Tự quản lý. Sử dụng tập lệnh bao bọc như được hiển thị trong Ứng dụng khách Claude Desktop và CLI, sau đó đăng ký nó với q mcp add.

Amazon Q Developer trong IDE

Điều kiện tiên quyết:

Sử dụng NPX trong Máy chủ MCP cục bộ

Chỉnh sửa ~/.aws/amazonq/mcp.json hoặc tạo .amazonq/mcp.json với nội dung sau:

{
  "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
    }
  }
}

Sử dụng Máy chủ MCP Từ xa Tự quản lý

Xem Máy chủ MCP Từ xa Tự quản lý. Sử dụng tập lệnh bao bọc như được hiển thị trong Ứng dụng khách Claude Desktop và CLI, sau đó thêm nó qua giao diện người dùng cấu hình MCP:

  1. Truy cập giao diện người dùng cấu hình MCP
  2. Chọn biểu tượng +
  3. Chọn phạm vi: toàn cục hoặc cục bộ
  4. Nhập tên (ví dụ: circleci-remote-mcp)
  5. Chọn giao thức truyền tải: stdio
  6. Nhập đường dẫn lệnh đến tập lệnh của bạn
  7. Nhấp vào Save
Smithery

Để cài đặt Máy chủ CircleCI MCP cho Claude Desktop tự động qua Smithery:

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

Máy chủ MCP Từ xa Tự quản lý

Chạy máy chủ MCP tập trung (ví dụ trên Kubernetes hoặc Docker) để nhóm của bạn chia sẻ một triển khai. Chọn cách các nhà phát triển xác thực:

Chọn chế độ triển khai

Chế độKhi nào sử dụngThiết lập máy chủThiết lập ứng dụng kháchDấu vết kiểm toán CircleCI
Mã thông báo từng người dùng (khuyến nghị)Các nhóm có Mã thông báo API Cá nhân được hỗ trợ bởi SSOREQUIRE_REQUEST_TOKEN=true, không có PAT máy chủMỗi nhà phát triển chuyển tiếp PAT của họTheo từng nhà phát triển
Mã thông báo dùng chung (tạm thời)Triển khai nhanh, danh tính dịch vụ duy nhất được chấp nhậnCIRCLECI_TOKEN trên máy chủ, REQUIRE_REQUEST_TOKEN=false (từ chối rõ ràng)Không cần tiêu đề xác thựcDanh tính dùng chung duy nhất

Bảo mật: Xác thực yêu cầu được bật theo mặc định ở chế độ từ xa. Chế độ mã thông báo dùng chung vô hiệu hóa nó (REQUIRE_REQUEST_TOKEN=false), khiến mọi người gọi có thể hành động như danh tính CIRCLECI_TOKEN của máy chủ mà không cần thông tin xác thực. Chỉ bật nó trên mạng mà bạn hoàn toàn tin tưởng và ưu tiên mã thông báo từng người dùng nếu không. Kết thúc TLS tại một ingress cung cấp mã hóa, không phải xác thực.

1. Triển khai máy chủ

Cả hai chế độ đều sử dụng chế độ HTTP từ xa (start=remote). Xuất bản cổng 8000 (hoặc cổng bạn chọn).

Mã thông báo từng người dùng (khuyến nghị) — được truy cập qua mcp-remote từ localhost:

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

Mã thông báo từng người dùng (khuyến nghị) — được truy cập qua mcp-remote từ tên máy chủ công khai:

docker run --rm -p 8000:8000 \
  -e start=remote \
  -e port=8000 \
  -e REQUIRE_REQUEST_TOKEN=true \
  -e MCP_ALLOWED_HOSTS=my-mcp.example.com \
  circleci/mcp-server-circleci

Mã thông báo dùng chung (tạm thời) — được truy cập qua mcp-remote từ tên máy chủ công khai:

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

Biến môi trường:

BiếnMô tả
start=remoteKhởi động máy chủ HTTP+SSE MCP thay vì stdio
portCổng lắng nghe bên trong container (mặc định: 8000)
REQUIRE_REQUEST_TOKENTừ chối các yêu cầu không có tiêu đề Authorization: Bearer hoặc Circle-Token. Mặc định là bắt buộc; đặt REQUIRE_REQUEST_TOKEN=false để cho phép các yêu cầu không xác thực (chế độ mã thông báo dùng chung)
CIRCLECI_TOKENPAT dự phòng dùng chung cho tất cả các yêu cầu khi tiêu đề từng người dùng không được gửi
CIRCLECI_BASE_URLTùy chọn — chỉ bắt buộc đối với khách hàng tại chỗ (mặc định: https://circleci.com)
DISABLE_TELEMETRY=trueTừ chối xuất số liệu sử dụng
MCP_ALLOWED_HOSTSDanh sách được phân tách bằng dấu phẩy các giá trị tiêu đề Host bổ sung để cho phép (ví dụ: my-mcp.example.com,my-mcp.example.com:443). Tên máy chủ loopback luôn được phép. Bắt buộc đối với bất kỳ triển khai không loopback nào.
MCP_ALLOWED_ORIGINSDanh sách được phân tách bằng dấu phẩy các giá trị tiêu đề Origin bổ sung để cho phép (ví dụ: https://my-app.example.com). Nguồn gốc loopback luôn được phép. Chỉ cần khi trình duyệt trực tiếp truy cập máy chủ này (không qua mcp-remote).
MCP_BIND_HOSTGiao diện mạng để liên kết (mặc định: 0.0.0.0). Đặt thành 127.0.0.1 để giới hạn chỉ loopback (không tương thích với ánh xạ cổng Docker -p).

Bảo vệ DNS-rebinding: Phương thức vận chuyển từ xa xác thực tiêu đề Host trên mọi yêu cầu /mcp. Theo mặc định, chỉ các địa chỉ loopback (localhost, 127.0.0.1, [::1]) được chấp nhận. Các triển khai công khai phải đặt MCP_ALLOWED_HOSTS thành tên máy chủ mà máy khách sử dụng, nếu không tất cả các yêu cầu /mcp sẽ nhận được 403 Forbidden. Điểm cuối kiểm tra tình trạng /ping không bị bảo vệ để các đầu dò cân bằng tải tiếp tục hoạt động bất kể Host.

Tiêu đề Origin (do trình duyệt gửi) cũng được xác thực khi có mặt. Các máy khách không phải trình duyệt như mcp-remote không bao giờ gửi Origin, vì vậy chúng không bị ảnh hưởng bởi kiểm tra này.

Đứng sau proxy ngược: Nếu proxy của bạn ghi lại Host thành địa chỉ backend (mặc định của nginx), hãy thêm proxy_set_header Host $host; để truyền tên máy chủ gốc qua, sau đó đặt MCP_ALLOWED_HOSTS thành tên máy chủ công khai đó. Ngoài ra, hãy đặt MCP_ALLOWED_HOSTS thành bất kỳ tên máy chủ nào mà proxy chuyển tiếp.

Máy chủ chấp nhận token theo từng yêu cầu thông qua:

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

Nếu máy khách gửi token tiêu đề, nó sẽ được ưu tiên hơn CIRCLECI_TOKEN trên máy chủ.

Các số liệu đo lường từ xa được ghi lại trong một yêu cầu sẽ được xuất bằng cùng token với yêu cầu đó.

2. Cấu hình máy khách

Hầu hết các máy khách MCP chỉ hỗ trợ các tiến trình cục bộ (stdio). Sử dụng mcp-remote, một cầu nối stdio-to-HTTP của bên thứ ba, để kết nối chúng với máy chủ từ xa của bạn.

Sơ đồ URL: Sử dụng http://localhost:8000/mcp với --allow-http để kiểm thử cục bộ. Trong môi trường production, hãy kết thúc TLS tại ingress/load balancer của bạn và sử dụng https://your-host/mcp mà không có --allow-http.

Windows: Tránh khoảng trắng xung quanh dấu hai chấm trong các giá trị --header. Đặt toàn bộ giá trị Bearer <token> vào một biến môi trường.

Bảo mật: Các ví dụ sử dụng npx để thuận tiện. Đối với production hoặc triển khai nhóm, hãy ghim một phiên bản cụ thể trong cấu hình MCP của bạn (ví dụ: mcp-remote@0.1.38 thay vì mcp-remote). Không sử dụng các phiên bản dưới 0.1.16 (CVE-2025-6514).

Cấu hình máy khách: token theo người dùng

Mỗi nhà phát triển chuyển tiếp Token API Cá nhân CircleCI của riêng họ trên mọi yêu cầu:

{
  "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}"
      }
    }
  }
}

Thay thế http://localhost:8000/mcp bằng URL máy chủ của nhóm bạn. Cursor và VS Code hỗ trợ lời nhắc ${input:...}; các máy khách khác có thể đặt AUTH_HEADER trực tiếp.

Cấu hình máy khách: token dùng chung

Khi máy chủ đã đặt CIRCLECI_TOKEN và được khởi động với REQUIRE_REQUEST_TOKEN=false (xác thực yêu cầu được bật theo mặc định và phải được tắt một cách rõ ràng), máy khách không cần gửi token:

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

Máy khách Claude Desktop và CLI

Tạo một tập lệnh bao bọc (ví dụ: 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}"

Làm cho nó có thể thực thi (chmod +x circleci-remote-mcp.sh), sau đó tham chiếu nó từ cấu hình MCP của bạn:

{
  "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}"

Bỏ qua --headerAUTH_HEADER khi sử dụng máy chủ token dùng chung.

3. Xác minh triển khai

# 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"}}}'

Demo

Xem nó hoạt động

Ví dụ: "Tìm pipeline thất bại mới nhất trên nhánh của tôi và lấy nhật ký" — xem wiki để biết thêm ví dụ.

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

Chi tiết Công cụ

analyze_diff

Phân tích các khác biệt git dựa trên các quy tắc con trỏ để xác định vi phạm quy tắc.

Cung cấp:

  • Nội dung khác biệt Git (ví dụ: git diff --cached, git diff HEAD)
  • Quy tắc kho lưu trữ từ .cursorrules hoặc .cursor/rules

Trả về báo cáo vi phạm chi tiết với điểm tin cậy và giải thích.

Hữu ích cho:

  • Kiểm tra chất lượng mã trước khi commit
  • Đảm bảo tính nhất quán với tiêu chuẩn mã hóa của nhóm
  • Phát hiện vi phạm quy tắc trước khi xem xét mã
config_helper

Hỗ trợ các tác vụ cấu hình CircleCI bằng cách cung cấp hướng dẫn và xác thực.

  • Xác thực .circleci/config.yml của bạn để tìm lỗi cú pháp và ngữ nghĩa
  • Cung cấp kết quả xác thực chi tiết và đề xuất cấu hình
  • Ví dụ: "Xác thực cấu hình CircleCI của tôi"
create_prompt_template

Tạo các mẫu lời nhắc có cấu trúc cho các ứng dụng hỗ trợ AI dựa trên yêu cầu tính năng.

  • Chuyển đổi yêu cầu của người dùng thành các mẫu lời nhắc được tối ưu hóa
  • Trả về một mẫu có cấu trúc và một lược đồ ngữ cảnh xác định các tham số đầu vào cần thiết
  • Ví dụ: "Tạo một mẫu lời nhắc để tạo truyện trước khi đi ngủ theo độ tuổi và chủ đề"
download_usage_api_data

Tải xuống dữ liệu sử dụng từ API Sử dụng CircleCI cho một tổ chức nhất định. Chấp nhận đầu vào ngày linh hoạt (ví dụ: "Tháng 3 năm 2025" hoặc "tháng trước"). Tính năng chỉ dành cho Cloud.

Tùy chọn 1: Bắt đầu một công việc xuất mới bằng cách cung cấp:

  • orgId, startDate, endDate (tối đa 32 ngày), outputDir

Tùy chọn 2: Kiểm tra/tải xuống một công việc xuất hiện có bằng cách cung cấp:

  • orgId, jobId, outputDir

Trả về một tệp CSV với dữ liệu sử dụng CircleCI cho khung thời gian đã chỉ định.

[!LƯU Ý] Dữ liệu sử dụng có thể được đưa vào công cụ find_underused_resource_classes để phân tích tối ưu hóa chi phí.

find_flaky_tests

Xác định các bài kiểm tra không ổn định trong dự án CircleCI của bạn bằng cách phân tích lịch sử thực thi kiểm tra. Tận dụng tính năng phát hiện kiểm tra không ổn định trong CircleCI.

Công cụ này có thể được sử dụng theo ba cách:

  1. Sử dụng Project Slug (Khuyến nghị):

    • Trước tiên, sử dụng list_followed_projects để lấy các dự án của bạn, sau đó:
    • Ví dụ: "Lấy các bài kiểm tra không ổn định cho my-project"
  2. Sử dụng URL Dự án CircleCI:

  3. Sử dụng Ngữ cảnh Dự án Cục bộ:

    • Hoạt động từ không gian làm việc cục bộ của bạn bằng cách cung cấp thư mục gốc không gian làm việc và URL git remote
    • Ví dụ: "Tìm các bài kiểm tra không ổn định trong dự án hiện tại của tôi"

Chế độ đầu ra:

  • Văn bản (mặc định): Trả về chi tiết kiểm tra không ổn định ở định dạng văn bản
  • Tệp (yêu cầu biến môi trường FILE_OUTPUT_DIRECTORY): Tạo một thư mục với chi tiết kiểm tra không ổn định
find_underused_resource_classes

Phân tích tệp CSV dữ liệu sử dụng CircleCI để tìm các công việc có mức sử dụng CPU/RAM trung bình hoặc tối đa dưới ngưỡng nhất định (mặc định: 40%).

Cung cấp tệp CSV thu được từ download_usage_api_data.

Trả về danh sách markdown các công việc ít được sử dụng được tổ chức theo dự án và quy trình làm việc — hữu ích cho việc xác định cơ hội tối ưu hóa chi phí.

get_build_failure_logs

Truy xuất nhật ký lỗi chi tiết từ các bản dựng CircleCI. Công cụ này có thể được sử dụng theo ba cách:

  1. Sử dụng Project Slug và Nhánh (Khuyến nghị):

    • Trước tiên, sử dụng list_followed_projects để lấy các dự án của bạn, sau đó:
    • Ví dụ: "Lấy lỗi bản dựng cho my-project trên nhánh main"
  2. Sử dụng URL CircleCI:

  3. Sử dụng Ngữ cảnh Dự án Cục bộ:

    • Hoạt động từ không gian làm việc cục bộ của bạn bằng cách cung cấp thư mục gốc không gian làm việc, URL git remote và tên nhánh
    • Ví dụ: "Tìm pipeline thất bại mới nhất trên nhánh hiện tại của tôi"

Công cụ trả về nhật ký được định dạng bao gồm:

  • Tên công việc
  • Chi tiết thực thi từng bước
  • Thông báo lỗi và ngữ cảnh
get_job_test_results

Truy xuất siêu dữ liệu kiểm tra cho các công việc CircleCI, cho phép bạn phân tích kết quả kiểm tra mà không cần rời khỏi IDE. Công cụ này có thể được sử dụng theo ba cách:

  1. Sử dụng Project Slug và Nhánh (Khuyến nghị):

    • Ví dụ: "Lấy kết quả kiểm tra cho my-project trên nhánh main"
  2. Sử dụng URL CircleCI:

    • URL Công việc: https://app.circleci.com/pipelines/github/org/repo/123/workflows/abc-def/jobs/789
    • URL Quy trình làm việc: https://app.circleci.com/pipelines/github/org/repo/123/workflows/abc-def
    • URL Pipeline: https://app.circleci.com/pipelines/github/org/repo/123
  3. Sử dụng Ngữ cảnh Dự án Cục bộ:

    • Hoạt động từ không gian làm việc cục bộ của bạn bằng cách cung cấp thư mục gốc không gian làm việc, URL git remote và tên nhánh

Công cụ trả về:

  • Tóm tắt tất cả các bài kiểm tra (tổng số, thành công, thất bại)
  • Thông tin chi tiết về các bài kiểm tra thất bại: tên, lớp, tệp, thông báo lỗi, thời lượng
  • Danh sách các bài kiểm tra thành công với thời gian
  • Lọc theo kết quả kiểm tra

[!LƯU Ý] Siêu dữ liệu kiểm tra phải được cấu hình trong cấu hình CircleCI của bạn. Xem Thu thập Dữ liệu Kiểm tra để biết hướng dẫn thiết lập.

get_latest_pipeline_status

Truy xuất trạng thái của pipeline mới nhất cho một nhánh nhất định. Công cụ này có thể được sử dụng theo ba cách:

  1. Sử dụng Project Slug và Nhánh (Khuyến nghị):

    • Ví dụ: "Lấy trạng thái của pipeline mới nhất cho my-project trên nhánh main"
  2. Sử dụng URL Dự án CircleCI:

  3. Sử dụng Ngữ cảnh Dự án Cục bộ:

    • Hoạt động từ không gian làm việc cục bộ của bạn bằng cách cung cấp thư mục gốc không gian làm việc, URL git remote và tên nhánh

Ví dụ đầu ra:

---
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

Truy xuất danh sách các tạo phẩm được tạo ra bởi một công việc CircleCI. Công cụ này có thể được sử dụng theo ba cách:

  1. Sử dụng Project Slug và Nhánh (Khuyến nghị):

    • Trước tiên, sử dụng list_followed_projects để lấy các dự án của bạn, sau đó:
    • Ví dụ: "Liệt kê các tạo phẩm cho my-project trên nhánh main"
  2. Sử dụng URL CircleCI:

    • URL Công việc: https://app.circleci.com/pipelines/gh/organization/project/123/workflows/abc-def/jobs/789
    • URL Quy trình làm việc: https://app.circleci.com/pipelines/gh/organization/project/123/workflows/abc-def
    • URL Pipeline: https://app.circleci.com/pipelines/gh/organization/project/123
  3. Sử dụng Ngữ cảnh Dự án Cục bộ:

    • Hoạt động từ không gian làm việc cục bộ của bạn bằng cách cung cấp thư mục gốc không gian làm việc, URL git remote và tên nhánh

Hữu ích cho:

  • Tìm URL tải xuống cho các tạo phẩm bản dựng (tệp nhị phân, báo cáo, nhật ký)
  • Kiểm tra những tạo phẩm nào đã được tạo ra bởi một lần chạy pipeline
list_component_versions

Liệt kê tất cả các phiên bản cho một thành phần CircleCI cụ thể trong một môi trường. Bao gồm trạng thái triển khai, thông tin commit và dấu thời gian.

Công cụ sẽ nhắc bạn chọn thành phần và môi trường nếu không được cung cấp.

Hữu ích cho:

  • Xác định phiên bản nào hiện đang hoạt động
  • Chọn phiên bản mục tiêu cho các hoạt động khôi phục
  • Lấy chi tiết triển khai (pipeline, quy trình làm việc, công việc)
list_followed_projects

Liệt kê tất cả các dự án mà người dùng đang theo dõi trên CircleCI.

  • Hiển thị tất cả các dự án bạn có quyền truy cập với projectSlug của chúng
  • Ví dụ: "Liệt kê các dự án CircleCI của tôi"

Ví dụ đầu ra:

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

[!LƯU Ý] projectSlug (không phải tên dự án) là bắt buộc đối với nhiều công cụ CircleCI khác.

recommend_prompt_template_tests

Tạo các trường hợp kiểm thử cho các mẫu lời nhắc để đảm bảo chúng tạo ra kết quả mong đợi.

  • Tạo các kịch bản kiểm thử đa dạng dựa trên mẫu prompt và lược đồ ngữ cảnh của bạn
  • Trả về một mảng các ca kiểm thử được đề xuất với nhiều tổ hợp tham số khác nhau
  • Ví dụ: "Tạo các bài kiểm thử cho mẫu prompt truyện kể trước khi đi ngủ của tôi"
rerun_workflow

Chạy lại một workflow từ đầu hoặc từ job bị lỗi.

Trả về ID của workflow mới được tạo và một liên kết để theo dõi nó.

run_evaluation_tests

Chạy các bài kiểm thử đánh giá (còn được gọi là "Prompt Tests") trên một pipeline CircleCI. Tạo một cấu hình CircleCI phù hợp và kích hoạt một pipeline sử dụng cấu hình đó.

Công cụ này có thể được sử dụng theo ba cách:

  1. Sử dụng Project Slug và Branch (Khuyến nghị):

    • Trước tiên, sử dụng list_followed_projects để lấy danh sách dự án của bạn, sau đó:
    • Ví dụ: "Chạy các bài kiểm thử đánh giá cho my-project trên nhánh main"
  2. Sử dụng URL CircleCI:

  3. Sử dụng Ngữ cảnh Dự án Cục bộ:

    • Hoạt động từ không gian làm việc cục bộ của bạn bằng cách cung cấp thư mục gốc của không gian làm việc, URL git remote và tên nhánh

Công cụ chấp nhận các tệp mẫu prompt và trả về một URL để theo dõi pipeline đã được kích hoạt.

[!LƯU Ý] Nếu dự án có nhiều định nghĩa pipeline, công cụ sẽ trả về danh sách các pipeline khả dụng để bạn lựa chọn.

run_pipeline

Kích hoạt một pipeline để chạy. Công cụ này có thể được sử dụng theo ba cách:

  1. Sử dụng Project Slug và Branch (Khuyến nghị):

    • Ví dụ: "Chạy pipeline cho my-project trên nhánh main"
  2. Sử dụng URL CircleCI:

  3. Sử dụng Ngữ cảnh Dự án Cục bộ:

    • Hoạt động từ không gian làm việc cục bộ của bạn bằng cách cung cấp thư mục gốc của không gian làm việc, URL git remote và tên nhánh

Công cụ trả về một liên kết để theo dõi quá trình thực thi pipeline.

run_rollback_pipeline

Kích hoạt rollback cho một dự án CircleCI. Công cụ sẽ tương tác hướng dẫn bạn qua các bước:

  1. Chọn Dự án — liệt kê các dự án đã theo dõi để bạn chọn
  2. Chọn Môi trường — liệt kê các môi trường khả dụng (tự động chọn nếu chỉ có một)
  3. Chọn Thành phần — liệt kê các thành phần khả dụng (tự động chọn nếu chỉ có một)
  4. Chọn Phiên bản — hiển thị các phiên bản khả dụng; bạn chọn mục tiêu để rollback
  5. Phát hiện Chế độ Rollback — kiểm tra xem pipeline rollback đã được cấu hình chưa
  6. Thực thi Rollback — hai tùy chọn:
    • Pipeline Rollback: kích hoạt pipeline rollback
    • Chạy lại Workflow: chạy lại một workflow trước đó bằng ID workflow của nó
  7. Xác nhận — tóm tắt và xác nhận trước khi thực thi

Khắc phục sự cố

Các bản sửa lỗi nhanh

Các vấn đề phổ biến nhất:

  1. Xóa bộ nhớ đệm gói:

    npx clear-npx-cache
    npm cache clean --force
    
  2. Ép buộc phiên bản mới nhất: Thêm @latest vào cấu hình của bạn:

    "args": ["-y", "@circleci/mcp-server-circleci@latest"]
    
  3. Khởi động lại hoàn toàn IDE của bạn (không chỉ tải lại cửa sổ)

Vấn đề Xác thực
  • Lỗi token không hợp lệ: Xác minh CIRCLECI_TOKEN của bạn trong Personal API Tokens
  • Lỗi quyền: Đảm bảo token có quyền đọc đối với các dự án của bạn
  • Biến môi trường không tải: Kiểm tra với echo $CIRCLECI_TOKEN (Mac/Linux) hoặc echo %CIRCLECI_TOKEN% (Windows)
Vấn đề Kết nối và Mạng
  • URL Cơ sở: Xác nhận CIRCLECI_BASE_URLhttps://circleci.com
  • Mạng công ty: Cấu hình cài đặt proxy npm nếu đứng sau tường lửa
  • Tường lửa chặn: Kiểm tra xem phần mềm bảo mật có chặn tải xuống gói không
Yêu cầu Hệ thống
  • Phiên bản Node.js: Đảm bảo >= 18.0.0 với node --version
  • Cập nhật Node.js: Cân nhắc LTS mới nhất nếu gặp vấn đề tương thích
  • Trình quản lý gói: Xác minh npm/pnpm đang hoạt động: npm --version
Vấn đề Cụ thể cho IDE
  • Vị trí tệp cấu hình: Kiểm tra kỹ đường dẫn cho hệ điều hành của bạn
  • Lỗi cú pháp: Xác thực cú pháp JSON trong tệp cấu hình của bạn
  • Nhật ký console: Kiểm tra console nhà phát triển của IDE để tìm lỗi cụ thể
  • Thử một IDE khác: Kiểm tra trong một trình soạn thảo được hỗ trợ khác để cô lập vấn đề
Vấn đề Tiến trình

Tiến trình treo — hủy các tiến trình MCP hiện có:

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

# Windows:
taskkill /f /im node.exe

Xung đột cổng: Khởi động lại IDE của bạn nếu kết nối dường như bị chặn.

Gỡ lỗi Nâng cao
  • Kiểm tra gói trực tiếp: npx @circleci/mcp-server-circleci@latest --help
  • Ghi nhật ký chi tiết: DEBUG=* npx @circleci/mcp-server-circleci@latest
  • Phương án thay thế Docker: Thử cài đặt Docker nếu npx liên tục thất bại

Vẫn cần trợ giúp?

  1. Kiểm tra GitHub Issues để tìm các vấn đề tương tự
  2. Bao gồm hệ điều hành, phiên bản Node và IDE của bạn khi báo cáo sự cố
  3. Chia sẻ các thông báo lỗi liên quan từ console IDE

Đo lường từ xa

Máy chủ hỗ trợ các số liệu OpenTelemetry để theo dõi việc sử dụng công cụ. Các số liệu được xuất trừ khi bạn đặt DISABLE_TELEMETRY=true. Trên các triển khai từ xa, số liệu sử dụng cùng token với yêu cầu (PAT theo người dùng hoặc PAT máy chủ dùng chung).

Số liệuMô tả
circleci.mcp.tool.invocationsSố lần gọi công cụ
circleci.mcp.tool.duration_msThời gian thực thi tính bằng ms
circleci.mcp.tool.errorsSố lần lỗi

Phát triển

Bắt đầu

  1. Sao chép kho lưu trữ:

    git clone https://github.com/CircleCI-Public/mcp-server-circleci.git
    cd mcp-server-circleci
    
  2. Cài đặt các phụ thuộc:

    pnpm install
    
  3. Xây dựng dự án:

    pnpm build
    

Xây dựng Docker Container

Bạn có thể xây dựng Docker container cục bộ bằng cách sử dụng:

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

Điều này sẽ tạo một Docker image được gắn thẻ là circleci:mcp-server-circleci mà bạn có thể sử dụng với bất kỳ máy khách MCP nào.

Chế độ stdio cục bộ (nhà phát triển đơn lẻ, token trên máy khách):

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

Chế độ từ xa (máy chủ tập trung cho một nhóm): xem Máy chủ MCP Từ xa Tự quản lý.

Phát triển với MCP Inspector

Cách dễ nhất để lặp lại trên MCP Server là sử dụng MCP inspector. Bạn có thể tìm hiểu thêm về MCP inspector tại https://modelcontextprotocol.io/docs/tools/inspector

  1. Khởi động máy chủ phát triển:

    pnpm watch # Keep this running in one terminal
    
  2. Trong một terminal riêng biệt, khởi chạy inspector:

    pnpm inspector
    
  3. Cấu hình môi trường:

    • Thêm CIRCLECI_TOKEN của bạn vào phần Biến Môi trường trong giao diện người dùng inspector
    • Token cần có quyền đọc đối với các dự án CircleCI của bạn
    • Tùy chọn đặt URL Cơ sở CircleCI của bạn (mặc định là https://circleci.com)

Kiểm thử

  • Chạy bộ kiểm thử:

    pnpm test
    
  • Chạy kiểm thử ở chế độ theo dõi trong quá trình phát triển:

    pnpm test:watch
    

Để biết hướng dẫn đóng góp chi tiết hơn, hãy xem CONTRIBUTING.md