Shipyard MCP Server
ทางการCLI ของ Shipyard มี MCP server สำหรับให้เอเจนต์จัดการสภาพแวดล้อม Shipyard ได้โดยตรง เช่น ดึง logs เปรียบเทียบ branches รัน tests และหยุด/เริ่มสภาพแวดล้อม
เอกสาร
Shipyard CLI
เครื่องมือสำหรับจัดการ Ephemeral Environments บนแพลตฟอร์ม Shipyard
การติดตั้ง
-
Linux และ macOS
curl https://www.shipyard.sh/install.sh | bash -
Windows ไปที่ หน้า releases และดาวน์โหลดไฟล์ปฏิบัติการสำหรับ Windows
-
Homebrew
brew tap shipyard/tap brew install shipyard
การเข้าสู่ระบบ
รัน shipyard login เพื่อเริ่มต้น CLI ซึ่งจะแจ้งให้คุณเข้าสู่ระบบ Shipyard ในเบราว์เซอร์ จากนั้น CLI จะบันทึก API token ของคุณใน config ภายในเครื่อง คุณก็พร้อมที่จะเริ่มรันคำสั่ง
หรือตั้งค่า Token ด้วยตนเอง
ตั้งค่า Shipyard API token ของคุณเป็นค่าของตัวแปรสภาพแวดล้อม SHIPYARD_API_TOKEN
คุณสามารถรับ token ได้โดยไปที่ หน้าโปรไฟล์ของคุณ
คุณสามารถติดต่อเราได้ที่ [email protected] หากคุณต้องการเปิดใช้งานการเข้าถึง API สำหรับองค์กรของคุณ หากมีคำถามอื่น ๆ โปรดเข้าร่วมชุมชน Slack ของเรา
shipyard set token
อีกทางเลือกหนึ่ง คุณสามารถใช้ไฟล์การกำหนดค่าที่เก็บไว้ใน $HOME/.shipyard/config.yaml โดยค่าเริ่มต้น เมื่อคุณรัน CLI เป็นครั้งแรก มันจะสร้าง config เปล่าเริ่มต้นที่คุณสามารถแก้ไขได้
คุณยังสามารถระบุพาธ config ที่ไม่ใช่ค่าเริ่มต้นได้ด้วยแฟล็ก --config {path} ที่เพิ่มเข้าไปในคำสั่งใด ๆ
เพิ่มค่าการกำหนดค่าใด ๆ ใน config ของคุณและตรวจสอบให้แน่ใจว่าไฟล์เป็นไปตามไวยากรณ์ YAML ตัวอย่างเช่น:
api_token: <your-token>
org: <your-non-default-org>
ค่าของตัวแปรสภาพแวดล้อมของคุณจะแทนที่ค่าที่สอดคล้องกันใน config
การใช้งานพื้นฐาน
ดูองค์กรทั้งหมดที่คุณเป็นสมาชิก
shipyard get orgs
ตั้งค่าองค์กรเริ่มต้นทั่วโลก
shipyard set org {org-name}
ดูองค์กรที่กำหนดค่าไว้ในปัจจุบัน
shipyard get org
แสดงรายการ environment ทั้งหมด
shipyard get environments
แฟล็กที่ใช้ได้:
| ชื่อ | คำอธิบาย | ประเภท | ค่าเริ่มต้น |
|---|---|---|---|
| branch | กรองตามชื่อ branch | string | |
| deleted | แสดง environment ที่ถูกลบแล้ว | boolean | false |
| json | พิมพ์ผลลัพธ์ JSON แบบเต็ม | boolean | false |
| name | กรองตามชื่อแอปพลิเคชัน | string | |
| org-name | กรองตามชื่อองค์กร หากคุณเป็นสมาชิกหลายองค์กร | string | องค์กรเริ่มต้นของคุณ |
| page | หมายเลขหน้าที่ต้องการ | int | 1 |
| page-size | ขนาดหน้าที่ต้องการ | int | 20 |
| pull-request-number | กรองตามหมายเลข pull request | string | |
| repo-name | กรองตามชื่อ repo | string |
ตัวอย่าง:
- แสดงรายการ environment ทั้งหมดที่รัน repo
flask-backendบน branchmain:
shipyard get environments --repo-name flask-backend --branch main
- แสดงรายการ environment ที่ถูกลบทั้งหมด:
shipyard get environments --deleted
ดูรายละเอียดของ environment เฉพาะด้วย UUID
shipyard get environment {environment_uuid}
แฟล็กที่ใช้ได้:
| ชื่อ | คำอธิบาย | ประเภท | ค่าเริ่มต้น |
|---|---|---|---|
| json | พิมพ์ผลลัพธ์ JSON แบบเต็ม | boolean | false |
| org-name | กรองตามชื่อองค์กร หากคุณเป็นสมาชิกหลายองค์กร | string | องค์กรเริ่มต้นของคุณ |
หยุด environment ที่กำลังทำงาน
shipyard stop environment {environment_uuid}
เริ่ม environment ที่หยุดแล้วใหม่
shipyard restart environment {environment_uuid}
ยกเลิกการ build ที่กำลังดำเนินอยู่สำหรับ environment
shipyard cancel environment {environment_uuid}
สร้าง environment ใหม่
shipyard rebuild environment {environment_uuid}
กู้คืน environment ที่ถูกลบ
shipyard revive environment {environment_uuid}
ดูบริการทั้งหมดและพอร์ตที่เปิดเผยสำหรับ environment
shipyard get services --env {environment_uuid}
Exec เข้าไปในบริการของ environment ที่กำลังทำงาน
ดำเนินการคำสั่งใด ๆ พร้อมอาร์กิวเมนต์และแฟล็กในบริการที่กำหนดสำหรับ environment ที่กำลังทำงาน ส่งอาร์กิวเมนต์คำสั่งใด ๆ หลังจากเครื่องหมาย double slash
shipyard exec --env {environment_uuid} --service {service_name} -- bash
Port forward พอร์ตของบริการใน environment ที่กำลังทำงาน
shipyard port-forward --env {environment_uuid} --service {service_name} --ports {local_port}:{service_container_port}
ดู logs สำหรับบริการของ environment ที่กำลังทำงาน
shipyard logs --env {environment_uuid} --service {service_name}
เยี่ยมชม environment
shipyard visit {environment_uuid}
แฟล็กที่ใช้ได้:
| ชื่อ | คำอธิบาย | ประเภท | ค่าเริ่มต้น |
|---|---|---|---|
| follow | ติดตามผลลัพธ์ logs | boolean | false |
| tail | จำนวนบรรทัด logs ล่าสุดที่จะแสดง | int | 3000 |
ทำงานกับ volumes
แสดงรายการ volumes ทั้งหมดใน environment
shipyard get volumes --env {environment_uuid}
แสดงรายการ volume snapshots ทั้งหมดใน environment
shipyard get snapshots --env {environment_uuid}
รีเซ็ต volume ใน environment
shipyard reset volume --env {environment_uuid}
สร้าง snapshot ใน environment
shipyard create snapshot --env {environment_uuid}
โหลด volume snapshot ใน environment
shipyard load snapshot --env {environment_uuid} --sequence-number {n}
อัปโหลดไฟล์ไปยัง volume ใน environment
shipyard upload volume --env {environment_uuid} --volume {volume} --file {filepath.bz2}
เชื่อมต่อกับ telepresence
shipyard telepresence connect --env {environment_uuid}
จากจุดนั้น คุณจะสามารถสื่อสารโดยตรงกับ pods ทั้งหมดใน namespace คุณ อาจ ต้องใช้ namespace hostname เพื่อสื่อสารกับบริการ ซึ่งคุณสามารถรับได้ผ่าน telepresence status ภายใต้ฟิลด์ Namespace ตัวอย่างเช่น ในการสื่อสารกับ redis คุณจะใช้ redis.shipyard-app-build-{uuid}
สร้าง executable จากโค้ด:
คุณสามารถสร้าง executable ได้โดยการรันคำสั่งต่อไปนี้:
make
เพื่อรัน executable ใหม่นี้:
./shipyard
เปิดใช้งานการเติมคำอัตโนมัติ
Bash
สคริปต์นี้ขึ้นอยู่กับแพ็คเกจ bash-completion หากยังไม่ได้ติดตั้ง คุณสามารถติดตั้งได้ผ่านตัวจัดการแพ็คเกจของระบบปฏิบัติการของคุณ
เพื่อโหลดการเติมคำในเซสชัน shell ปัจจุบัน:
source <(shipyard completion bash)
เพื่อโหลดการเติมคำสำหรับทุกเซสชันใหม่ ให้ดำเนินการต่อไปนี้หนึ่งครั้ง
บน Linux:
shipyard completion bash > /etc/bash_completion.d/shipyard
บน macOS:
shipyard completion bash > $(brew --prefix)/etc/bash_completion.d/shipyard
Zsh
หากยังไม่ได้เปิดใช้งานการเติมคำของ shell ในสภาพแวดล้อมของคุณ คุณจะต้องเปิดใช้งาน คุณสามารถดำเนินการต่อไปนี้หนึ่งครั้ง:
echo "autoload -U compinit; compinit" >> ~/.zshrc
เพื่อโหลดการเติมคำในเซสชัน shell ปัจจุบัน:
source <(shipyard completion zsh); compdef _shipyard shipyard
เพื่อโหลดการเติมคำสำหรับทุกเซสชันใหม่ ให้ดำเนินการต่อไปนี้หนึ่งครั้ง
บน Linux:
shipyard completion zsh > "${fpath[1]}/_shipyard"
บน macOS:
shipyard completion zsh > $(brew --prefix)/share/zsh/site-functions/_shipyard
คุณจะต้องเริ่ม shell ใหม่เพื่อให้การตั้งค่านี้มีผล
Fish
เพื่อโหลดการเติมคำในเซสชัน shell ปัจจุบัน:
$ shipyard completion fish | source
เพื่อโหลดการเติมคำสำหรับแต่ละเซสชัน ให้ดำเนินการหนึ่งครั้ง:
shipyard completion fish > ~/.config/fish/completions/shipyard.fish
PowerShell
เพื่อโหลดการเติมคำในเซสชัน shell ปัจจุบัน:
shipyard completion powershell | Out-String | Invoke-Expression
เพื่อโหลดการเติมคำสำหรับทุกเซสชันใหม่ ให้รัน:
shipyard completion powershell > shipyard.ps1
และ source ไฟล์นี้จากโปรไฟล์ PowerShell ของคุณ
การรวม Model Context Protocol (MCP)
Shipyard CLI ให้บริการ MCP server สำหรับการรวมผู้ช่วย AI ซึ่งช่วยให้ผู้ช่วย AI อย่าง Claude สามารถจัดการสภาพแวดล้อม Shipyard ได้โดยตรง
เครื่องมือ MCP ที่รองรับ
การจัดการ Environment (7 เครื่องมือ)
get_environments- แสดงรายการ environment พร้อมการกรองget_environment- ดูรายละเอียด environment เฉพาะstop_environment- หยุด environment ที่กำลังทำงานrestart_environment- เริ่ม environment ที่หยุดแล้วใหม่rebuild_environment- สร้างใหม่ด้วย commit ล่าสุดcancel_environment- ยกเลิกการ build ล่าสุดของ environmentrevive_environment- กู้คืน environment ที่ถูกลบ
การจัดการบริการ (2 เครื่องมือ)
get_services- แสดงรายการบริการใน environmentget_logs- ดู logs จากบริการ
การจัดการ Volume (5 เครื่องมือ)
get_volumes- แสดงรายการ volumes ใน environmentreset_volume- รีเซ็ต volume กลับสู่สถานะเริ่มต้นget_snapshots- แสดงรายการ volume snapshotscreate_snapshot- สร้าง volume snapshotload_snapshot- โหลด volume snapshot
การจัดการองค์กร (3 เครื่องมือ)
get_orgs- แสดงรายการองค์กรทั้งหมดget_org- ดูองค์กรเริ่มต้นปัจจุบันset_org- ตั้งค่าองค์กรเริ่มต้น
เครื่องมือที่จำกัด
เครื่องมือเหล่านี้ส่งคืนข้อความช่วยเหลือที่แนะนำให้ผู้ใช้ใช้คำสั่ง CLI แทน:
exec_service- ดำเนินการคำสั่งในคอนเทนเนอร์บริการport_forward- Port forward บริการไปยังเครื่อง localtelepresence_connect- เชื่อมต่อกับ telepresence
การเพิ่มไปยัง Claude
ด้วย API token และชื่อองค์กร:
claude mcp add shipyard --env SHIPYARD_API_TOKEN=your-token-here --env SHIPYARD_ORG=your-org-name -- shipyard mcp serve
หากกำหนดค่าด้วย CLI แล้ว:
claude mcp add shipyard -- shipyard mcp serve
การเพิ่มไปยัง Codex CLI
แก้ไข ~/.codex/config.toml และเพิ่ม:
[mcp_servers.shipyard]
command = "shipyard"
args = ["mcp", "serve"]
env = { "SHIPYARD_API_TOKEN" = "your-token-here", "SHIPYARD_ORG" = "your-org-name" }