CircleCI
ทางการเปิดให้ AI Agents สามารถแก้ไขปัญหาการสร้างที่ล้มเหลวจาก CircleCI ได้
คุณทำอะไรได้บ้างด้วย CircleCI MCP?
- ตรวจสอบการกำหนดค่า — ขอให้ผู้ช่วยตรวจสอบ
.circleci/config.ymlและรับคำแนะนำเกี่ยวกับข้อผิดพลาดด้านไวยากรณ์และความหมายผ่านconfig_helper - วินิจฉัยการบิลด์ที่ล้มเหลว — ดึงบันทึกข้อผิดพลาดโดยละเอียดจากการบิลด์ของ CircleCI ด้วย
get_build_failure_logs - ค้นหาการทดสอบที่ไม่เสถียร — ระบุการทดสอบที่ไม่เสถียรโดยวิเคราะห์ประวัติการทำงานของการทดสอบสำหรับโปรเจกต์ด้วย
find_flaky_tests - ตรวจสอบสถานะไปป์ไลน์ — ดูสถานะของไปป์ไลน์ล่าสุดสำหรับสาขาด้วย
get_latest_pipeline_status - เรียกใช้เวิร์กโฟลว์อีกครั้ง — เรียกใช้เวิร์กโฟลว์อีกครั้งตั้งแต่ต้นหรือเริ่มจากงานที่ล้มเหลวด้วย
rerun_workflow - ทริกเกอร์ไปป์ไลน์ — เรียกใช้ไปป์ไลน์หรือทริกเกอร์การย้อนกลับโปรเจกต์ด้วย
run_pipelineและrun_rollback_pipeline
เอกสาร
[!IMPORTANT] แพ็กเกจนี้เลิกใช้งานแล้ว โปรดย้ายไปใช้ตัวอื่น
@circleci/mcp-server-circleciจะไม่มีการพัฒนาฟีเจอร์เพิ่มเติมอีกต่อไป โปรดใช้ MCP server ที่โฮสต์ไว้ หรือ CircleCI CLI MCP แทน — ดู ภาพรวม CircleCI MCPที่เก็บนี้จะถูกเก็บถาวร เวอร์ชันที่มีอยู่ยังคงติดตั้งได้จาก npm แต่ไม่แนะนำให้เรียกใช้เซิร์ฟเวอร์ที่ไม่มีการดูแลและเก็บ CircleCI Personal API Token ไว้
หากคุณใช้ self-managed remote transport (
start=remote) ให้ย้ายก่อน: เซิร์ฟเวอร์ที่โฮสต์ไว้เป็นตัวแทนโดยตรง และช่วยให้ไม่ต้องดูแลบริการที่เปิดรับการเชื่อมต่อผ่านเครือข่ายเพื่อส่งต่อโทเค็นขององค์กร
CircleCI MCP Server
Model Context Protocol (MCP) คือ โปรโตคอลมาตรฐานใหม่ สำหรับจัดการบริบทระหว่างโมเดลภาษาขนาดใหญ่ (LLM) กับระบบภายนอก ที่เก็บนี้มี MCP Server สำหรับ CircleCI
ใช้ Cursor, Windsurf, Copilot, Claude หรือไคลเอ็นต์อื่นที่รองรับ MCP เพื่อโต้ตอบกับ CircleCI ด้วยภาษาธรรมชาติ — โดยไม่ต้องออกจาก IDE
เครื่องมือ
| เครื่องมือ | คำอธิบาย |
|---|---|
config_helper | ตรวจสอบและรับคำแนะนำสำหรับการกำหนดค่า CircleCI |
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 ทั้งหมดที่คุณติดตาม |
rerun_workflow | เรียกใช้เวิร์กโฟลว์อีกครั้งตั้งแต่ต้นหรือจากงานที่ล้มเหลว |
run_pipeline | สั่งให้ไปป์ไลน์เริ่มทำงาน |
run_rollback_pipeline | เริ่มการย้อนกลับสำหรับโปรเจกต์ |
การติดตั้ง
การติดตั้งใช้งานสำหรับทีมหรือส่วนกลาง: หากต้องการเรียกใช้เซิร์ฟเวอร์ระยะไกลที่ใช้ร่วมกันหนึ่งตัวสำหรับองค์กรของคุณ (Kubernetes, Docker ฯลฯ) โดยใช้ CircleCI token แยกตามนักพัฒนาหรือใช้ร่วมกัน โปรดดู Self-Managed Remote MCP Server
Cursor
ข้อกำหนดเบื้องต้น:
- CircleCI Personal API token (เรียนรู้เพิ่มเติม)
- NPX: Node.js
^22.23.4 || ^24.22.1 || >=26.12.1และ pnpm - Docker: Docker
ใช้ NPX ใน MCP Server ภายในเครื่อง
เพิ่มรายการต่อไปนี้ใน Cursor MCP config ของคุณ:
{
"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เป็นตัวเลือก — จำเป็นสำหรับลูกค้า on-prem เท่านั้นMAX_MCP_OUTPUT_LENGTHเป็นตัวเลือก — ความยาวเอาต์พุตสูงสุดสำหรับการตอบกลับของ MCP (ค่าเริ่มต้น: 50000)
ใช้ Docker ใน MCP Server ภายในเครื่อง
เพิ่มรายการต่อไปนี้ใน Cursor MCP config ของคุณ:
{
"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"
}
}
}
}
ใช้ Self-Managed Remote MCP Server
ดู Self-Managed Remote MCP Server ใช้ การกำหนดค่าไคลเอ็นต์รายผู้ใช้ แล้วเพิ่มลงใน Cursor MCP config ของคุณ (Cursor Settings → MCP)
VS Code
ข้อกำหนดเบื้องต้น:
- CircleCI Personal API token (เรียนรู้เพิ่มเติม)
- NPX: Node.js
^22.23.4 || ^24.22.1 || >=26.12.1และ pnpm - Docker: Docker
ใช้ NPX ใน MCP Server ภายในเครื่อง
เพิ่มรายการต่อไปนี้ใน .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 จะจัดเก็บข้อมูลดังกล่าวอย่างปลอดภัย
ใช้ Docker ใน MCP Server ภายในเครื่อง
เพิ่มรายการต่อไปนี้ใน .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}"
}
}
}
}
ใช้ Self-Managed Remote MCP Server
ดู Self-Managed Remote MCP Server ใช้ การกำหนดค่าไคลเอ็นต์รายผู้ใช้ ใน .vscode/mcp.json
Claude Desktop
ข้อกำหนดเบื้องต้น:
- CircleCI Personal API token (เรียนรู้เพิ่มเติม)
- NPX: Node.js
^22.23.4 || ^24.22.1 || >=26.12.1และ pnpm - Docker: Docker
ใช้ NPX ใน MCP Server ภายในเครื่อง
เพิ่มรายการต่อไปนี้ใน 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"
}
}
}
}
ใช้ Docker ใน MCP Server ภายในเครื่อง
เพิ่มรายการต่อไปนี้ใน 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"
}
}
}
}
ใช้ Self-Managed Remote MCP Server
ดู Self-Managed Remote MCP Server สร้างสคริปต์ wrapper ตามที่แสดงใน ไคลเอ็นต์ Claude Desktop และ CLI จากนั้นกำหนด claude_desktop_config.json ให้ชี้ไปยังสคริปต์ดังกล่าว
หากต้องการค้นหาหรือสร้างไฟล์ config ให้เปิดการตั้งค่า Claude Desktop คลิก Developer ในแถบด้านข้างซ้าย แล้วคลิก Edit Config ไฟล์ config อยู่ที่:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
ดูข้อมูลเพิ่มเติม: https://modelcontextprotocol.io/quickstart/user
Claude Code
ข้อกำหนดเบื้องต้น:
- CircleCI Personal API token (เรียนรู้เพิ่มเติม)
- NPX: Node.js
^22.23.4 || ^24.22.1 || >=26.12.1และ pnpm - Docker: Docker
ใช้ NPX ใน MCP Server ภายในเครื่อง
claude mcp add circleci-mcp-server -e CIRCLECI_TOKEN=your-circleci-token -- npx -y @circleci/mcp-server-circleci@latest
ใช้ Docker ใน MCP Server ภายในเครื่อง
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
ใช้ Self-Managed Remote MCP Server
ดู Self-Managed Remote MCP Server และการตั้งค่าไคลเอ็นต์ Claude Code ที่นั่น
Windsurf
ข้อกำหนดเบื้องต้น:
- CircleCI Personal API token (เรียนรู้เพิ่มเติม)
- NPX: Node.js
^22.23.4 || ^24.22.1 || >=26.12.1และ pnpm - Docker: Docker
ใช้ NPX ใน MCP Server ภายในเครื่อง
เพิ่มรายการต่อไปนี้ใน 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"
}
}
}
}
ใช้ Docker ใน MCP Server ภายในเครื่อง
เพิ่มรายการต่อไปนี้ใน 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"
}
}
}
}
ใช้ Self-Managed Remote MCP Server
ดู Self-Managed Remote MCP Server ใช้ การกำหนดค่าไคลเอ็นต์รายผู้ใช้ ใน Windsurf mcp_config.json ของคุณ
ดูข้อมูลเพิ่มเติม: https://docs.windsurf.com/windsurf/mcp
Amazon Q Developer CLI
ข้อกำหนดเบื้องต้น:
- CircleCI Personal API token (เรียนรู้เพิ่มเติม)
- NPX: Node.js
^22.23.4 || ^24.22.1 || >=26.12.1และ pnpm
การกำหนดค่าไคลเอ็นต์ MCP ใน Amazon Q Developer จัดเก็บในรูปแบบ JSON ในไฟล์ชื่อ mcp.json รองรับการกำหนดค่าสองระดับ:
- ส่วนกลาง:
~/.aws/amazonq/mcp.json— ใช้กับทุก workspace - Workspace:
.amazonq/mcp.json— ใช้เฉพาะกับ workspace ปัจจุบัน
หากมีไฟล์ทั้งสอง ไฟล์จะถูกรวมเนื้อหาเข้าด้วยกัน ในกรณีที่ขัดแย้งกัน config ของ workspace จะมีลำดับความสำคัญสูงกว่า
ใช้ NPX ใน MCP Server ภายในเครื่อง
แก้ไข ~/.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
}
}
}
ใช้ Self-Managed Remote MCP Server
ดู Self-Managed Remote MCP Server ใช้สคริปต์ wrapper ตามที่แสดงใน ไคลเอ็นต์ Claude Desktop และ CLI จากนั้นลงทะเบียนสคริปต์ด้วย q mcp add
Amazon Q Developer in the IDE
ข้อกำหนดเบื้องต้น:
- CircleCI Personal API token (เรียนรู้เพิ่มเติม)
- NPX: Node.js
^22.23.4 || ^24.22.1 || >=26.12.1และ pnpm
ใช้ NPX ใน MCP Server ภายในเครื่อง
แก้ไข ~/.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
}
}
}
ใช้ Self-Managed Remote MCP Server
ดู Self-Managed Remote MCP Server ใช้สคริปต์ wrapper ตามที่แสดงใน ไคลเอ็นต์ Claude Desktop และ CLI จากนั้นเพิ่มผ่าน UI การกำหนดค่า MCP:
- เปิด UI การกำหนดค่า MCP
- เลือกสัญลักษณ์ +
- เลือกขอบเขต: global หรือ local
- ป้อนชื่อ (เช่น
circleci-remote-mcp) - เลือกโปรโตคอลการขนส่ง: stdio
- ป้อนพาธคำสั่งไปยังสคริปต์ของคุณ
- คลิก Save
Smithery
หากต้องการติดตั้ง CircleCI MCP Server สำหรับ Claude Desktop โดยอัตโนมัติผ่าน Smithery:
npx -y @smithery/cli install @CircleCI-Public/mcp-server-circleci --client claude
Self-Managed Remote MCP Server
เรียกใช้ MCP server จากส่วนกลาง (เช่น บน Kubernetes หรือ Docker) เพื่อให้ทีมใช้การติดตั้งใช้งานเดียวกัน เลือกวิธีที่นักพัฒนาจะใช้ยืนยันตัวตน:
เลือกโหมดการติดตั้งใช้งาน
| โหมด | ใช้เมื่อใด | การตั้งค่าเซิร์ฟเวอร์ | การตั้งค่าไคลเอ็นต์ | บันทึกการตรวจสอบ CircleCI |
|---|---|---|---|---|
| โทเค็นรายผู้ใช้ (แนะนำ) | ทีมที่ใช้ Personal API Token ซึ่งเชื่อมโยงกับ SSO | REQUIRE_REQUEST_TOKEN=true โดยไม่ต้องใช้ PAT ของเซิร์ฟเวอร์ | นักพัฒนาแต่ละคนส่งต่อ PAT ของตน | แยกตามนักพัฒนา |
| โทเค็นที่ใช้ร่วมกัน (ชั่วคราว) | ต้องการเริ่มใช้อย่างรวดเร็ว และยอมรับการใช้ข้อมูลประจำตัวบริการเดียว | CIRCLECI_TOKEN บนเซิร์ฟเวอร์, REQUIRE_REQUEST_TOKEN=false (เลือกไม่ใช้โดยชัดแจ้ง) | ไม่จำเป็นต้องมีส่วนหัวการยืนยันตัวตน | ข้อมูลประจำตัวที่ใช้ร่วมกันรายการเดียว |
ความปลอดภัย: การยืนยันตัวตนคำขอ เปิดใช้งานเป็นค่าเริ่มต้น ในโหมดระยะไกล โหมดโทเค็นที่ใช้ร่วมกันจะปิดการยืนยันตัวตน (
REQUIRE_REQUEST_TOKEN=false) ทำให้ผู้เรียกทุกคนสามารถดำเนินการในนามข้อมูลประจำตัวCIRCLECI_TOKENของเซิร์ฟเวอร์ได้โดยไม่ต้องใช้ข้อมูลรับรอง — รวมถึงการสั่งให้ไปป์ไลน์ทำงานด้วย config ใดก็ได้ เปิดใช้โหมดนี้เฉพาะบนเครือข่ายที่คุณเชื่อถืออย่างเต็มที่ และควรเลือกใช้โทเค็นรายผู้ใช้ในกรณีอื่น การยุติ TLS ที่ ingress ช่วยเข้ารหัสข้อมูล แต่ไม่ได้ยืนยันตัวตนเนื่องจากการตั้งค่าดังกล่าวไม่ปลอดภัยเมื่อเปิดให้เข้าถึงจากสาธารณะ เซิร์ฟเวอร์จะ ปฏิเสธการเริ่มทำงาน เมื่อใช้
REQUIRE_REQUEST_TOKEN=falseร่วมกับ bind address ที่ไม่ใช่ loopback เว้นแต่คุณจะยอมรับความเสี่ยงอย่างชัดเจนด้วยMCP_ALLOW_UNAUTHENTICATED_NETWORK_ACCESS=trueการตรวจสอบHost/Originไม่ใช่ สิ่งทดแทนการยืนยันตัวตน — ดู การป้องกัน DNS rebinding ด้านล่าง
1. ติดตั้งใช้งานเซิร์ฟเวอร์
ทั้งสองโหมดใช้โหมด HTTP ระยะไกล (start=remote) เปิดพอร์ต 8000 (หรือพอร์ตที่คุณเลือก)
โทเค็นรายผู้ใช้ (แนะนำ) — เข้าถึงผ่าน mcp-remote จาก localhost:
docker run --rm -p 8000:8000 \
-e start=remote \
-e port=8000 \
-e REQUIRE_REQUEST_TOKEN=true \
circleci/mcp-server-circleci
โทเค็นรายผู้ใช้ (แนะนำ) — เข้าถึงผ่าน mcp-remote จากชื่อโฮสต์สาธารณะ:
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
โทเค็นที่ใช้ร่วมกัน (ชั่วคราว) — เข้าถึงผ่าน mcp-remote จากชื่อโฮสต์สาธารณะ:
เนื่องจากโหมดนี้ให้บริการ PAT ขององค์กรแก่ผู้เรียกทุกคนโดยไม่ต้องใช้ข้อมูลรับรอง จึงต้อง เรียกใช้เฉพาะในตำแหน่งที่พอร์ตที่เผยแพร่ไม่สามารถเข้าถึงได้จากเครือข่ายที่ไม่น่าเชื่อถือ และคุณ ต้องยืนยันการยอมรับความเสี่ยงอย่างชัดเจน มิฉะนั้นเซิร์ฟเวอร์จะปฏิเสธการเริ่มทำงาน:
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_ALLOW_UNAUTHENTICATED_NETWORK_ACCESS=true \
-e MCP_ALLOWED_HOSTS=my-mcp.example.com \
circleci/mcp-server-circleci
ควรตั้งค่าการยืนยันตัวตนไว้หน้าพอร์ตแทน — เช่น ingress ที่ กำหนดให้ใช้ SSO, mTLS หรือ API key — หรือเปลี่ยนไปใช้โทเค็นรายผู้ใช้ด้านบน
ตัวแปรสภาพแวดล้อม:
| ตัวแปร | คำอธิบาย |
|---|---|
start=remote | เริ่มเซิร์ฟเวอร์ MCP แบบ HTTP+SSE แทน stdio |
port | พอร์ตที่รับฟังภายในคอนเทนเนอร์ (ค่าเริ่มต้น: 8000) |
REQUIRE_REQUEST_TOKEN | ปฏิเสธคำขอที่ไม่มีส่วนหัว Authorization: Bearer หรือ Circle-Token โดยค่าเริ่มต้นจะบังคับใช้ หากต้องการอนุญาตคำขอที่ไม่ผ่านการยืนยันตัวตน (โหมดโทเค็นที่ใช้ร่วมกัน) ให้ตั้งค่า REQUIRE_REQUEST_TOKEN=false |
CIRCLECI_TOKEN | PAT สำรองที่ใช้ร่วมกันสำหรับคำขอทั้งหมด เมื่อไม่มีการส่งส่วนหัวแยกตามผู้ใช้ |
CIRCLECI_BASE_URL | ไม่บังคับ — จำเป็นเฉพาะสำหรับ on-prem (ค่าเริ่มต้น: https://circleci.com) |
DISABLE_TELEMETRY=true | เลือกไม่ส่งออกเมตริกการใช้งาน |
MCP_ALLOWED_HOSTS | รายการค่าของส่วนหัว Host เพิ่มเติมที่คั่นด้วยจุลภาคและอนุญาต (เช่น my-mcp.example.com,my-mcp.example.com:443) ชื่อโฮสต์แบบ loopback จะได้รับอนุญาตเสมอ จำเป็นสำหรับการติดตั้งใช้งานที่ไม่ใช่ loopback |
MCP_ALLOWED_ORIGINS | รายการค่าของ Origin เพิ่มเติมที่คั่นด้วยจุลภาคและอนุญาต (เช่น https://my-app.example.com) origin แบบ loopback จะได้รับอนุญาตเสมอ จำเป็นเฉพาะเมื่อเบราว์เซอร์เชื่อมต่อกับเซิร์ฟเวอร์นี้โดยตรง (ไม่ผ่าน mcp-remote) |
MCP_BIND_HOST | อินเทอร์เฟซเครือข่ายที่จะ bind (ค่าเริ่มต้น: 0.0.0.0) ตั้งค่าเป็น 127.0.0.1 เพื่อจำกัดให้ใช้ได้เฉพาะ loopback (ใช้ร่วมกับการแมปพอร์ต Docker -p ไม่ได้) |
MCP_ALLOW_UNAUTHENTICATED_NETWORK_ACCESS | จำเป็น (=true) เพื่อเริ่มต้นด้วย REQUIRE_REQUEST_TOKEN=false เมื่อ bind กับที่อยู่ที่ไม่ใช่ loopback เป็นการยอมรับว่าเพียร์ใดก็ตามที่เข้าถึงพอร์ตได้จะทำหน้าที่เป็นตัวตน CIRCLECI_TOKEN ของเซิร์ฟเวอร์โดยไม่มีข้อมูลรับรอง ไม่มีผลเมื่อบังคับใช้โทเค็นคำขอ |
MCP_FILE_OUTPUT_ROOTS | รายการไดเรกทอรีเพิ่มเติมที่คั่นด้วยจุลภาค ซึ่งเครื่องมืออ่าน/เขียนไฟล์สามารถใช้ได้ (เช่น /srv/reports,/data/exports) ไดเรกทอรีทำงาน ไดเรกทอรี home และไดเรกทอรี temp จะได้รับอนุญาตเสมอ ดูหมายเหตุด้านล่าง |
ตำแหน่งเอาต์พุตไฟล์ (ใช้กับทั้งการขนส่งแบบ stdio และแบบ remote): เครื่องมือที่รับพาธระบบไฟล์ —
get_build_failure_logs(outputDir),download_usage_api_data(outputDir) และfind_underused_resource_classes(csvFilePath) — จะอ่านและเขียนได้เฉพาะภายในไดเรกทอรีทำงานของเซิร์ฟเวอร์ ไดเรกทอรี home ของผู้ใช้ และไดเรกทอรี temp ของระบบเท่านั้น ภายในรากเหล่านี้ ไดเรกทอรีการกำหนดค่าที่ซ่อนอยู่ (~/.ssh,~/.aws,~/.config,.git, …),node_modulesและไดเรกทอรี launch-agent จะถูกปฏิเสธ เช่นเดียวกับ symlink ที่ชี้ออกนอกเส้นทางรากที่อนุญาต ไดเรกทอรีระบบ (/etc,/usr,/bin,/System,/Library,%SystemRoot%, …) จะถูกปฏิเสธโดยไม่มีข้อยกเว้นและไม่สามารถเปิดใช้งานใหม่ได้ ระบบจะไม่เขียนไฟล์เอาต์พุตผ่าน symlinkหาก checkout ของคุณอยู่นอกเส้นทางรากเหล่านั้น —
/workspaceในคอนเทนเนอร์,/srv,/opt, วอลุ่มรอง เช่น/Volumes/work— ให้ตั้งค่าMCP_FILE_OUTPUT_ROOTSเป็นไดเรกทอรีนั้น มิฉะนั้นพาธเหล่านั้นจะถูกปฏิเสธ สำหรับเซิร์ฟเวอร์ stdio โดยปกติไดเรกทอรีทำงานจะเป็นรากของโปรเจกต์อยู่แล้ว จึงไม่ต้องกำหนดค่าใดๆ เรื่องนี้สำคัญที่สุดสำหรับการขนส่งแบบ remote ซึ่งพาธมาจากไคลเอ็นต์เครือข่าย ไม่ใช่ผู้ใช้ในเครื่อง
การป้องกัน DNS rebinding (ไม่ใช่การยืนยันตัวตน): การขนส่งแบบ remote จะตรวจสอบส่วนหัว
Hostในทุกคำขอ/mcpโดยค่าเริ่มต้นจะยอมรับเฉพาะที่อยู่ loopback (localhost,127.0.0.1,[::1]) เท่านั้น การติดตั้งใช้งานสาธารณะต้องตั้งค่าMCP_ALLOWED_HOSTSเป็นชื่อโฮสต์ที่ไคลเอ็นต์ใช้ มิฉะนั้นคำขอ/mcpทั้งหมดจะได้รับ403 Forbiddenส่วนปลายทางตรวจสอบสถานะ/pingจะไม่ถูกป้องกัน เพื่อให้การตรวจสอบของ load balancer ยังคงทำงานได้ไม่ว่าHostจะเป็นค่าใดระบบจะตรวจสอบส่วนหัว
Origin(ที่เบราว์เซอร์ส่งมา) ด้วยเมื่อมีการส่ง ไคลเอ็นต์ที่ไม่ใช่เบราว์เซอร์ เช่นmcp-remoteจะไม่ส่งOriginจึงไม่ได้รับผลกระทบจากการตรวจสอบนี้การตรวจสอบนี้ไม่ใช่การควบคุมการเข้าถึงและห้ามใช้แทนการควบคุมดังกล่าว ผู้เรียกเป็นผู้กำหนดส่วนหัวทั้งสอง ดังนั้นไคลเอ็นต์ที่ไม่ใช่เบราว์เซอร์ใดๆ — curl, สคริปต์, raw socket — สามารถส่ง
Hostที่อนุญาตและละOriginเพื่อให้ผ่านการตรวจสอบได้ จุดประสงค์เดียวของการตรวจสอบนี้คือป้องกันไม่ให้ เบราว์เซอร์ ถูกชี้ไปยังเซิร์ฟเวอร์โดย DNS ที่ผู้โจมตีควบคุม ซึ่งเป็นภัยคุกคามจาก DNS rebinding การยืนยันตัวตนผู้เรียกเป็นหน้าที่ของREQUIRE_REQUEST_TOKEN(หรือพร็อกซีที่ยืนยันตัวตนซึ่งอยู่หน้า port) การบังคับใช้ส่วนหัวOriginจะทำให้ไคลเอ็นต์ CLI ที่ถูกต้องทั้งหมดใช้งานไม่ได้ โดยไม่สามารถหยุดผู้โจมตีได้เลยเมื่ออยู่หลัง reverse proxy: หากพร็อกซีของคุณเขียน
Hostใหม่เป็นที่อยู่ backend (ค่าเริ่มต้นของ nginx) ให้เพิ่มproxy_set_header Host $host;เพื่อส่งชื่อโฮสต์เดิมต่อไป จากนั้นตั้งค่าMCP_ALLOWED_HOSTSเป็นชื่อโฮสต์สาธารณะนั้น หรืออีกทางหนึ่ง ให้ตั้งค่าMCP_ALLOWED_HOSTSเป็นชื่อโฮสต์ที่พร็อกซีส่งต่อจริง
เซิร์ฟเวอร์รองรับโทเค็นแยกตามคำขอผ่าน:
Authorization: Bearer <circleci-pat>Circle-Token: <circleci-pat>
หากไคลเอ็นต์ส่งโทเค็นในส่วนหัว โทเค็นนั้นจะมีลำดับความสำคัญเหนือ CIRCLECI_TOKEN บนเซิร์ฟเวอร์
เมตริก telemetry ที่บันทึกระหว่างคำขอจะถูกส่งออกโดยใช้โทเค็นเดียวกับคำขอนั้น
2. กำหนดค่าไคลเอ็นต์
ไคลเอ็นต์ MCP ส่วนใหญ่รองรับเฉพาะโปรเซสในเครื่อง (stdio) ใช้ mcp-remote ซึ่งเป็นบริดจ์ stdio-to-HTTP ของบุคคลที่สาม เพื่อเชื่อมต่อไคลเอ็นต์เหล่านั้นกับเซิร์ฟเวอร์ remote ของคุณ
รูปแบบ URL: ใช้
http://localhost:8000/mcpกับ--allow-httpสำหรับการทดสอบในเครื่อง ในระบบ production ให้ยุติ TLS ที่ ingress/load balancer แล้วใช้https://your-host/mcpโดยไม่มี--allow-http
Windows: หลีกเลี่ยงการเว้นวรรคหน้าหรือหลังเครื่องหมายโคลอนในค่า
--headerให้ใส่ค่าBearer <token>ทั้งหมดไว้ในตัวแปรสภาพแวดล้อม
ความปลอดภัย: ตัวอย่างใช้
npxเพื่อความสะดวก สำหรับการใช้งาน production หรือการติดตั้งให้ทีม ให้ระบุเวอร์ชันที่เจาะจงใน config MCP (เช่นmcp-remote@0.1.38แทนmcp-remote) ห้ามใช้เวอร์ชันที่ต่ำกว่า0.1.16(CVE-2025-6514)
การกำหนดค่าไคลเอ็นต์: โทเค็นแยกตามผู้ใช้
นักพัฒนาแต่ละคนจะส่งต่อ CircleCI Personal API Token ของตนเองในทุกคำขอ:
{
"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 (การยืนยันตัวตนคำขอเปิดใช้งานโดยค่าเริ่มต้นและต้องปิดใช้งานอย่างชัดเจน อีกทั้งการ bind ที่ไม่ใช่ loopback ยังต้องใช้ MCP_ALLOW_UNAUTHENTICATED_NETWORK_ACCESS=true) ไคลเอ็นต์ไม่จำเป็นต้องส่งโทเค็น:
{
"mcpServers": {
"circleci-mcp-server-remote": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://localhost:8000/mcp",
"--allow-http"
]
}
}
}
ไคลเอ็นต์ Claude Desktop และ CLI
สร้างสคริปต์ wrapper (เช่น 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) จากนั้นอ้างอิงสคริปต์จาก config 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}"
ละ --header และ AUTH_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"}}}'
สาธิต
ชมการทำงาน
ตัวอย่าง: "ค้นหา pipeline ล่าสุดที่ล้มเหลวบน branch ของฉัน แล้วดึง logs" — ดูตัวอย่างเพิ่มเติมได้ที่ wiki
https://github.com/user-attachments/assets/3c765985-8827-442a-a8dc-5069e01edb74
รายละเอียดเครื่องมือ
config_helper
ช่วยทำงานเกี่ยวกับการกำหนดค่า CircleCI โดยให้คำแนะนำและตรวจสอบความถูกต้อง
- ตรวจสอบ
.circleci/config.ymlของคุณเพื่อหาข้อผิดพลาดด้านไวยากรณ์และความหมาย - แสดงผลการตรวจสอบโดยละเอียดและคำแนะนำในการกำหนดค่า
- ตัวอย่าง: "ตรวจสอบ config ของ CircleCI ของฉัน"
download_usage_api_data
ดาวน์โหลดข้อมูลการใช้งานจาก CircleCI Usage API สำหรับองค์กรที่ระบุ รองรับการป้อนวันที่ได้หลายรูปแบบ (เช่น "มีนาคม 2025" หรือ "เดือนที่แล้ว") ฟีเจอร์นี้ใช้ได้เฉพาะ Cloud
ตัวเลือกที่ 1: เริ่มงานส่งออกใหม่โดยระบุ:
orgId,startDate,endDate(สูงสุด 32 วัน),outputDir
ตัวเลือกที่ 2: ตรวจสอบ/ดาวน์โหลดงานส่งออกที่มีอยู่โดยระบุ:
orgId,jobId,outputDir
ส่งคืนไฟล์ CSV ที่มีข้อมูลการใช้งาน CircleCI สำหรับช่วงเวลาที่ระบุ
[!NOTE] สามารถป้อนข้อมูลการใช้งานให้เครื่องมือ
find_underused_resource_classesเพื่อวิเคราะห์การปรับลดต้นทุนได้
find_flaky_tests
ระบุการทดสอบที่ไม่เสถียรในโปรเจกต์ CircleCI ของคุณโดยวิเคราะห์ประวัติการทำงานของการทดสอบ ใช้ ฟีเจอร์ตรวจจับการทดสอบที่ไม่เสถียร ใน CircleCI
ใช้เครื่องมือนี้ได้สามวิธี:
-
ใช้ Project Slug (แนะนำ):
- ใช้
list_followed_projectsเพื่อดูโปรเจกต์ของคุณก่อน จากนั้น: - ตัวอย่าง: "ค้นหาการทดสอบที่ไม่เสถียรสำหรับ my-project"
- ใช้
-
ใช้ URL โปรเจกต์ CircleCI:
- ตัวอย่าง: "ค้นหาการทดสอบที่ไม่เสถียรใน https://app.circleci.com/pipelines/github/org/repo"
-
ใช้บริบทโปรเจกต์ในเครื่อง:
- ใช้งานจาก workspace ในเครื่องได้โดยระบุรากของ workspace และ URL git remote
- ตัวอย่าง: "ค้นหาการทดสอบที่ไม่เสถียรในโปรเจกต์ปัจจุบันของฉัน"
โหมดเอาต์พุต:
- ข้อความ (ค่าเริ่มต้น): ส่งคืนรายละเอียดการทดสอบที่ไม่เสถียรในรูปแบบข้อความ
- ไฟล์ (ต้องใช้ตัวแปรสภาพแวดล้อม
FILE_OUTPUT_DIRECTORY): สร้างไดเรกทอรีที่มีรายละเอียดการทดสอบที่ไม่เสถียร
find_underused_resource_classes
วิเคราะห์ไฟล์ CSV ข้อมูลการใช้งาน CircleCI เพื่อค้นหา job ที่มีการใช้งาน CPU/RAM เฉลี่ยหรือสูงสุดต่ำกว่าเกณฑ์ที่กำหนด (ค่าเริ่มต้น: 40%)
ระบุไฟล์ CSV ที่ได้จาก download_usage_api_data
ส่งคืนรายการ Markdown ของ job ที่ใช้งานทรัพยากรต่ำกว่าที่ควร โดยจัดกลุ่มตามโปรเจกต์และ workflow ซึ่งมีประโยชน์ในการค้นหาโอกาสลดต้นทุน
get_build_failure_logs
ดึง logs รายละเอียดของความล้มเหลวจาก build ของ CircleCI ใช้เครื่องมือนี้ได้สามวิธี:
-
ใช้ Project Slug และ Branch (แนะนำ):
- ใช้
list_followed_projectsเพื่อดูโปรเจกต์ของคุณก่อน จากนั้น: - ตัวอย่าง: "ดึง build ที่ล้มเหลวของ my-project บน branch main"
- ใช้
-
ใช้ URL ของ CircleCI:
- ระบุ URL ของ job หรือ pipeline ที่ล้มเหลวได้โดยตรง
- ตัวอย่าง: "ดึง logs จาก https://app.circleci.com/pipelines/github/org/repo/123"
-
ใช้บริบทโปรเจกต์ในเครื่อง:
- ใช้งานจาก workspace ในเครื่องได้โดยระบุรากของ workspace, URL git remote และชื่อ branch
- ตัวอย่าง: "ค้นหา pipeline ล่าสุดที่ล้มเหลวบน branch ปัจจุบันของฉัน"
เครื่องมือจะแสดง logs ในรูปแบบที่จัดไว้ ซึ่งประกอบด้วย:
- ชื่อ job
- รายละเอียดการทำงานทีละขั้นตอน
- ข้อความแสดงความล้มเหลวและบริบท
get_job_test_results
ดึงข้อมูลเมตาของการทดสอบสำหรับ job ของ CircleCI ช่วยให้คุณวิเคราะห์ผลการทดสอบได้โดยไม่ต้องออกจาก IDE ใช้เครื่องมือนี้ได้สามวิธี:
-
ใช้ Project Slug และ Branch (แนะนำ):
- ตัวอย่าง: "ดูผลการทดสอบของ my-project บน branch main"
-
ใช้ URL ของ CircleCI:
- URL ของ job:
https://app.circleci.com/pipelines/github/org/repo/123/workflows/abc-def/jobs/789 - URL ของ workflow:
https://app.circleci.com/pipelines/github/org/repo/123/workflows/abc-def - URL ของ pipeline:
https://app.circleci.com/pipelines/github/org/repo/123
- URL ของ job:
-
ใช้บริบทโปรเจกต์ในเครื่อง:
- ใช้งานจาก workspace ในเครื่องได้โดยระบุรากของ workspace, URL git remote และชื่อ branch
เครื่องมือจะแสดงข้อมูลต่อไปนี้:
- สรุปการทดสอบทั้งหมด (จำนวนทั้งหมด สำเร็จ และล้มเหลว)
- ข้อมูลโดยละเอียดของการทดสอบที่ล้มเหลว: ชื่อ คลาส ไฟล์ ข้อความแสดงข้อผิดพลาด และระยะเวลา
- รายการการทดสอบที่สำเร็จพร้อมเวลา
- กรองตามผลการทดสอบ
[!NOTE] ต้องกำหนดค่าเมตาของการทดสอบใน config ของ CircleCI ดู รวบรวมข้อมูลการทดสอบ สำหรับคำแนะนำในการตั้งค่า
get_latest_pipeline_status
ดึงสถานะของ pipeline ล่าสุดสำหรับ branch ที่ระบุ เครื่องมือนี้ใช้ได้ 3 วิธี:
-
ใช้ Project Slug และ Branch (แนะนำ):
- ตัวอย่าง: "Get the status of the latest pipeline for my-project on the main branch"
-
ใช้ CircleCI Project URL:
- ตัวอย่าง: "Get the status of the latest pipeline for https://app.circleci.com/pipelines/github/org/repo"
-
ใช้บริบทโปรเจกต์ในเครื่อง:
- ใช้งานจาก workspace ในเครื่องของคุณ โดยระบุ workspace root, git remote URL และชื่อ branch
ตัวอย่างผลลัพธ์:
---
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
ดึงรายการ artifacts ที่สร้างโดย CircleCI job เครื่องมือนี้ใช้ได้ 3 วิธี:
-
ใช้ Project Slug และ Branch (แนะนำ):
- ใช้
list_followed_projectsก่อนเพื่อดูโปรเจกต์ของคุณ จากนั้น: - ตัวอย่าง: "List artifacts for my-project on the main branch"
- ใช้
-
ใช้ CircleCI URL:
- Job URL:
https://app.circleci.com/pipelines/gh/organization/project/123/workflows/abc-def/jobs/789 - Workflow URL:
https://app.circleci.com/pipelines/gh/organization/project/123/workflows/abc-def - Pipeline URL:
https://app.circleci.com/pipelines/gh/organization/project/123
- Job URL:
-
ใช้บริบทโปรเจกต์ในเครื่อง:
- ใช้งานจาก workspace ในเครื่องของคุณ โดยระบุ workspace root, git remote URL และชื่อ branch
มีประโยชน์สำหรับ:
- ค้นหา URL สำหรับดาวน์โหลด build artifacts (ไบนารี รายงาน บันทึก)
- ตรวจสอบว่า pipeline run สร้าง artifacts ใดบ้าง
list_component_versions
แสดงรายการเวอร์ชันทั้งหมดของ CircleCI component ที่ระบุใน environment โดยมีสถานะการ deploy ข้อมูล commit และ timestamp
เครื่องมือจะแจ้งให้คุณเลือก component และ environment หากไม่ได้ระบุไว้
มีประโยชน์สำหรับ:
- ระบุว่าเวอร์ชันใดกำลังใช้งานอยู่
- เลือกเวอร์ชันเป้าหมายสำหรับการ rollback
- ดูรายละเอียดการ deploy (pipeline, workflow, job)
list_followed_projects
แสดงรายการโปรเจกต์ทั้งหมดที่ผู้ใช้ติดตามบน CircleCI
- แสดงโปรเจกต์ทั้งหมดที่คุณมีสิทธิ์เข้าถึง พร้อม
projectSlug - ตัวอย่าง: "List my CircleCI projects"
ตัวอย่างผลลัพธ์:
Projects followed:
1. my-project (projectSlug: gh/organization/my-project)
2. another-project (projectSlug: gh/organization/another-project)
[!NOTE] ต้องใช้
projectSlug(ไม่ใช่ชื่อโปรเจกต์) สำหรับเครื่องมือ CircleCI อื่นๆ อีกหลายรายการ
rerun_workflow
รัน workflow ซ้ำตั้งแต่เริ่มต้นหรือจาก job ที่ล้มเหลว
ส่งคืน ID ของ workflow ที่สร้างขึ้นใหม่และลิงก์สำหรับติดตาม
run_pipeline
สั่งให้ pipeline ทำงาน เครื่องมือนี้ใช้ได้ 3 วิธี:
-
ใช้ Project Slug และ Branch (แนะนำ):
- ตัวอย่าง: "Run the pipeline for my-project on the main branch"
-
ใช้ CircleCI URL:
- Pipeline URL, Workflow URL, Job URL หรือ Project URL พร้อม branch
- ตัวอย่าง: "Run the pipeline for https://app.circleci.com/pipelines/github/org/repo/123"
-
ใช้บริบทโปรเจกต์ในเครื่อง:
- ใช้งานจาก workspace ในเครื่องของคุณ โดยระบุ workspace root, git remote URL และชื่อ branch
เครื่องมือจะแสดงลิงก์สำหรับติดตามการทำงานของ pipeline
run_rollback_pipeline
สั่ง rollback สำหรับโปรเจกต์ CircleCI เครื่องมือจะแนะนำขั้นตอนแบบโต้ตอบดังนี้:
- เลือกโปรเจกต์ — แสดงรายการโปรเจกต์ที่ติดตามเพื่อให้คุณเลือก
- เลือก Environment — แสดงรายการ environment ที่พร้อมใช้งาน (เลือกให้อัตโนมัติหากมีเพียงรายการเดียว)
- เลือก Component — แสดงรายการ component ที่พร้อมใช้งาน (เลือกให้อัตโนมัติหากมีเพียงรายการเดียว)
- เลือกเวอร์ชัน — แสดงเวอร์ชันที่พร้อมใช้งานให้เลือกเป็นเป้าหมายสำหรับ rollback
- ตรวจหาโหมด Rollback — ตรวจสอบว่ามีการกำหนดค่า rollback pipeline ไว้หรือไม่
- ดำเนินการ Rollback — มีสองตัวเลือก:
- Pipeline Rollback: สั่งให้ rollback pipeline ทำงาน
- Workflow Rerun: รัน workflow ก่อนหน้าซ้ำโดยใช้ workflow ID
- ยืนยัน — สรุปรายการและขอการยืนยันก่อนดำเนินการ
การแก้ไขปัญหา
วิธีแก้ไขด่วน
ปัญหาที่พบบ่อยที่สุด:
-
ล้างแคชของแพ็กเกจ:
npx clear-npx-cache npm cache clean --force -
บังคับใช้เวอร์ชันล่าสุด: เพิ่ม
@latestลงในการกำหนดค่าของคุณ:"args": ["-y", "@circleci/mcp-server-circleci@latest"] -
รีสตาร์ท IDE ทั้งหมด (ไม่ใช่แค่โหลดหน้าต่างใหม่)
ปัญหาการยืนยันตัวตน
- ข้อผิดพลาด token ไม่ถูกต้อง: ตรวจสอบ
CIRCLECI_TOKENของคุณใน Personal API Tokens - ข้อผิดพลาดด้านสิทธิ์: ตรวจสอบว่า token มีสิทธิ์อ่านโปรเจกต์ของคุณ
- โหลด environment variables ไม่ได้: ทดสอบด้วย
echo $CIRCLECI_TOKEN(Mac/Linux) หรือecho %CIRCLECI_TOKEN%(Windows)
ปัญหาการเชื่อมต่อและเครือข่าย
- Base URL: ยืนยันว่า
CIRCLECI_BASE_URLคือhttps://circleci.com - เครือข่ายองค์กร: กำหนดค่า npm proxy หากอยู่หลังไฟร์วอลล์
- ไฟร์วอลล์บล็อก: ตรวจสอบว่าซอฟต์แวร์รักษาความปลอดภัยบล็อกการดาวน์โหลดแพ็กเกจหรือไม่
ข้อกำหนดของระบบ
- เวอร์ชัน Node.js: ตรวจสอบว่าเป็นไปตาม
^22.23.4 || ^24.22.1 || >=26.12.1โดยใช้node --version - อัปเดต Node.js: หากพบปัญหาความเข้ากันได้ ให้พิจารณาใช้ LTS รุ่นล่าสุด
- ตัวจัดการแพ็กเกจ: ตรวจสอบว่า npm/pnpm ทำงานได้:
npm --version
ปัญหาเฉพาะ IDE
- ตำแหน่งไฟล์กำหนดค่า: ตรวจสอบเส้นทางให้ตรงกับ OS ของคุณ
- ข้อผิดพลาดทางไวยากรณ์: ตรวจสอบไวยากรณ์ JSON ในไฟล์กำหนดค่า
- บันทึกคอนโซล: ตรวจสอบคอนโซลสำหรับนักพัฒนาของ IDE เพื่อดูข้อผิดพลาดเฉพาะ
- ลองใช้ IDE อื่น: ทดสอบใน editor อื่นที่รองรับเพื่อแยกหาสาเหตุของปัญหา
ปัญหาเกี่ยวกับโปรเซส
โปรเซสค้าง — ปิดโปรเซส 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: ลองติดตั้งด้วย Docker หาก npx ล้มเหลวอย่างต่อเนื่อง
ยังต้องการความช่วยเหลือหรือไม่?
- ตรวจสอบ GitHub Issues ว่ามีปัญหาคล้ายกันหรือไม่
- ระบุ OS, เวอร์ชัน Node และ IDE เมื่อรายงานปัญหา
- แชร์ข้อความแสดงข้อผิดพลาดที่เกี่ยวข้องจากคอนโซล IDE
Telemetry
เซิร์ฟเวอร์รองรับเมตริก OpenTelemetry สำหรับติดตามการใช้งานเครื่องมือ โดยจะส่งออกเมตริก เว้นแต่คุณจะตั้งค่า DISABLE_TELEMETRY=true สำหรับการติดตั้งใช้งานระยะไกล เมตริกจะใช้ token เดียวกับคำขอ (PAT รายผู้ใช้หรือ PAT ของเซิร์ฟเวอร์ที่ใช้ร่วมกัน)
| Metric | Description |
|---|---|
circleci.mcp.tool.invocations | จำนวนครั้งที่เรียกใช้เครื่องมือ |
circleci.mcp.tool.duration_ms | เวลาในการทำงาน หน่วยเป็น ms |
circleci.mcp.tool.errors | จำนวนข้อผิดพลาด |
การพัฒนา
เริ่มต้นใช้งาน
-
Clone repository:
git clone https://github.com/CircleCI-Public/mcp-server-circleci.git cd mcp-server-circleci -
ติดตั้ง dependencies:
pnpm install -
Build โปรเจกต์:
pnpm build
สร้าง Docker Container
คุณสามารถ build Docker container ในเครื่องได้โดยใช้:
docker build -t circleci:mcp-server-circleci .
การดำเนินการนี้จะสร้าง Docker image ที่ติดแท็กเป็น circleci:mcp-server-circleci ซึ่งคุณสามารถใช้กับ MCP client ใดก็ได้
โหมด stdio ในเครื่อง (นักพัฒนาคนเดียว ใช้ token บน client):
docker run --rm -i \
-e CIRCLECI_TOKEN=your-circleci-token \
-e CIRCLECI_BASE_URL=https://circleci.com \
circleci/mcp-server-circleci
โหมดระยะไกล (เซิร์ฟเวอร์ส่วนกลางสำหรับทีม): ดู Self-Managed Remote MCP Server
พัฒนาด้วย MCP Inspector
วิธีที่ง่ายที่สุดในการพัฒนา MCP Server คือใช้ MCP inspector ดูข้อมูลเพิ่มเติมเกี่ยวกับ MCP inspector ได้ที่ https://modelcontextprotocol.io/docs/tools/inspector
-
เริ่ม development server:
pnpm watch # Keep this running in one terminal -
เปิด inspector ในเทอร์มินัลแยก:
pnpm inspector -
กำหนดค่า environment:
- เพิ่ม
CIRCLECI_TOKENของคุณในส่วน Environment Variables ใน UI ของ inspector - token ต้องมีสิทธิ์อ่านโปรเจกต์ CircleCI ของคุณ
- ตั้งค่า CircleCI Base URL ได้ตามต้องการ (ค่าเริ่มต้นคือ
https://circleci.com)
- เพิ่ม
การทดสอบ
-
รันชุดทดสอบ:
pnpm test -
รันทดสอบในโหมด watch ระหว่างการพัฒนา:
pnpm test:watch
ดูแนวทางการร่วมพัฒนาโดยละเอียดเพิ่มเติมได้ที่ CONTRIBUTING.md