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กรองตามชื่อ branchstring
deletedแสดง environment ที่ถูกลบแล้วbooleanfalse
jsonพิมพ์ผลลัพธ์ JSON แบบเต็มbooleanfalse
nameกรองตามชื่อแอปพลิเคชันstring
org-nameกรองตามชื่อองค์กร หากคุณเป็นสมาชิกหลายองค์กรstringองค์กรเริ่มต้นของคุณ
pageหมายเลขหน้าที่ต้องการint1
page-sizeขนาดหน้าที่ต้องการint20
pull-request-numberกรองตามหมายเลข pull requeststring
repo-nameกรองตามชื่อ repostring

ตัวอย่าง:

  • แสดงรายการ environment ทั้งหมดที่รัน repo flask-backend บน branch main:
shipyard get environments --repo-name flask-backend --branch main
  • แสดงรายการ environment ที่ถูกลบทั้งหมด:
shipyard get environments --deleted

ดูรายละเอียดของ environment เฉพาะด้วย UUID

shipyard get environment {environment_uuid}

แฟล็กที่ใช้ได้:

ชื่อคำอธิบายประเภทค่าเริ่มต้น
jsonพิมพ์ผลลัพธ์ JSON แบบเต็มbooleanfalse
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ติดตามผลลัพธ์ logsbooleanfalse
tailจำนวนบรรทัด logs ล่าสุดที่จะแสดงint3000

ทำงานกับ 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 ล่าสุดของ environment
  • revive_environment - กู้คืน environment ที่ถูกลบ

การจัดการบริการ (2 เครื่องมือ)

  • get_services - แสดงรายการบริการใน environment
  • get_logs - ดู logs จากบริการ

การจัดการ Volume (5 เครื่องมือ)

  • get_volumes - แสดงรายการ volumes ใน environment
  • reset_volume - รีเซ็ต volume กลับสู่สถานะเริ่มต้น
  • get_snapshots - แสดงรายการ volume snapshots
  • create_snapshot - สร้าง volume snapshot
  • load_snapshot - โหลด volume snapshot

การจัดการองค์กร (3 เครื่องมือ)

  • get_orgs - แสดงรายการองค์กรทั้งหมด
  • get_org - ดูองค์กรเริ่มต้นปัจจุบัน
  • set_org - ตั้งค่าองค์กรเริ่มต้น

เครื่องมือที่จำกัด

เครื่องมือเหล่านี้ส่งคืนข้อความช่วยเหลือที่แนะนำให้ผู้ใช้ใช้คำสั่ง CLI แทน:

  • exec_service - ดำเนินการคำสั่งในคอนเทนเนอร์บริการ
  • port_forward - Port forward บริการไปยังเครื่อง local
  • telepresence_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" }