Shipyard MCP Server

공식

Shipyard CLI는 에이전트가 Shipyard 환경을 직접 관리할 수 있도록 MCP 서버를 제공합니다: 로그 가져오기, 브랜치 비교, 테스트 실행, 환경 중지/시작 등을 수행합니다.

문서

Shipyard CLI

Shipyard 플랫폼에서 임시 환경을 관리하기 위한 도구입니다.

설치

  • Linux 및 macOS

    curl https://www.shipyard.sh/install.sh | bash
    
  • Windows 릴리스 페이지로 이동하여 Windows용 실행 파일을 다운로드하세요.

  • Homebrew

    brew tap shipyard/tap
    brew install shipyard
    

로그인

CLI를 초기화하려면 shipyard login을 실행하세요. 그러면 브라우저에서 Shipyard에 로그인하라는 메시지가 표시됩니다. CLI는 로컬 구성에 API 토큰을 저장합니다. 이제 명령을 실행할 준비가 되었습니다.

또는 수동으로 토큰 설정하기

Shipyard API 토큰을 SHIPYARD_API_TOKEN 환경 변수의 값으로 설정하세요.

프로필 페이지에서 토큰을 얻을 수 있습니다.

조직에 API 액세스를 활성화하려면 [email protected]로 문의하세요. 다른 질문이 있으시면 언제든지 커뮤니티 Slack에 참여하세요.

shipyard set token

또는 기본적으로 $HOME/.shipyard/config.yaml에 저장된 구성 파일을 사용할 수 있습니다. CLI를 처음 실행하면 편집할 수 있는 기본 빈 구성이 생성됩니다.

모든 명령에 --config {path} 플래그를 추가하여 기본이 아닌 구성 경로를 지정할 수도 있습니다.

구성에 구성 값을 추가하고 파일이 YAML 구문을 따르는지 확인하세요. 예를 들어:

api_token: <your-token>
org: <your-non-default-org>

환경 변수의 값은 구성의 해당 값을 재정의합니다.

기본 사용법

소속된 모든 조직 가져오기

shipyard get orgs

전역 기본 조직 설정하기

shipyard set org {org-name}

현재 구성된 조직 가져오기

shipyard get org

모든 환경 나열하기

shipyard get environments

사용 가능한 플래그:

이름설명유형기본값
branch브랜치 이름으로 필터링string
deleted삭제된 환경 반환booleanfalse
json전체 JSON 출력 인쇄booleanfalse
name애플리케이션 이름으로 필터링string
org-name여러 조직에 속한 경우 조직 이름으로 필터링string기본 조직
page요청된 페이지 번호int1
page-size요청된 페이지 크기int20
pull-request-number풀 리퀘스트 번호로 필터링string
repo-name리포지토리 이름으로 필터링string

예시:

  • main 브랜치에서 flask-backend 리포지토리를 실행하는 모든 환경 나열:
shipyard get environments --repo-name flask-backend --branch main
  • 삭제된 모든 환경 나열:
shipyard get environments --deleted

UUID로 특정 환경의 세부 정보 가져오기

shipyard get environment {environment_uuid}

사용 가능한 플래그:

이름설명유형기본값
json전체 JSON 출력 인쇄booleanfalse
org-name여러 조직에 속한 경우 조직 이름으로 필터링string기본 조직

실행 중인 환경 중지하기

shipyard stop environment {environment_uuid}

중지된 환경 다시 시작하기

shipyard restart environment {environment_uuid}

환경의 진행 중인 빌드 취소하기

shipyard cancel environment {environment_uuid}

환경 다시 빌드하기

shipyard rebuild environment {environment_uuid}

삭제된 환경 복구하기

shipyard revive environment {environment_uuid}

환경의 모든 서비스 및 노출된 포트 가져오기

shipyard get services --env {environment_uuid}

실행 중인 환경의 서비스에 Exec하기

실행 중인 환경의 지정된 서비스에서 인수와 플래그를 사용하여 모든 명령을 실행합니다. 이중 슬래시 뒤에 명령 인수를 전달하세요.

shipyard exec --env {environment_uuid} --service {service_name} -- bash

실행 중인 환경의 서비스 포트 포트 포워딩하기

shipyard port-forward --env {environment_uuid} --service {service_name} --ports {local_port}:{service_container_port}

실행 중인 환경의 서비스 로그 가져오기

shipyard logs --env {environment_uuid} --service {service_name}

환경 방문하기

shipyard visit {environment_uuid}

사용 가능한 플래그:

이름설명유형기본값
follow로그 출력을 팔로우booleanfalse
tail표시할 최근 로그 줄 수int3000

볼륨 작업

환경의 모든 볼륨 나열하기

shipyard get volumes --env {environment_uuid}

환경의 모든 볼륨 스냅샷 나열하기

shipyard get snapshots --env {environment_uuid}

환경의 볼륨 재설정하기

shipyard reset volume --env {environment_uuid}

환경에 스냅샷 생성하기

shipyard create snapshot --env {environment_uuid}

환경에 볼륨 스냅샷 로드하기

shipyard load snapshot --env {environment_uuid} --sequence-number {n}

환경의 볼륨에 파일 업로드하기

shipyard upload volume --env {environment_uuid} --volume {volume} --file {filepath.bz2}

텔레프레즌스에 연결하기

shipyard telepresence connect --env {environment_uuid}

그러면 네임스페이스의 모든 파드와 직접 통신할 수 있습니다. 서비스와 통신하려면 네임스페이스 호스트네임을 사용해야 할 수 있으며, 이는 telepresence status의 Namespace 필드에서 얻을 수 있습니다. 예를 들어, redis와 통신하려면 redis.shipyard-app-build-{uuid}를 사용합니다.

코드에서 실행 파일 빌드하기:

다음 명령을 실행하여 실행 파일을 만들 수 있습니다:

make

이 새 실행 파일을 실행하려면:

./shipyard

자동 완성 활성화

Bash

이 스크립트는 bash-completion 패키지에 의존합니다. 아직 설치되지 않은 경우 OS의 패키지 관리자를 통해 설치할 수 있습니다. 현재 셸 세션에서 완성을 로드하려면:

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

환경에서 셸 완성이 아직 활성화되지 않은 경우 활성화해야 합니다. 다음을 한 번 실행할 수 있습니다:

echo "autoload -U compinit; compinit" >> ~/.zshrc

현재 셸 세션에서 완성을 로드하려면:

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

이 설정을 적용하려면 새 셸을 시작해야 합니다.

Fish

현재 셸 세션에서 완성을 로드하려면:

$ shipyard completion fish | source

각 세션에 대해 완성을 로드하려면 한 번 실행하세요:

shipyard completion fish > ~/.config/fish/completions/shipyard.fish

PowerShell

현재 셸 세션에서 완성을 로드하려면:

shipyard completion powershell | Out-String | Invoke-Expression

모든 새 세션에 대해 완성을 로드하려면 다음을 실행하세요:

shipyard completion powershell > shipyard.ps1

그리고 PowerShell 프로필에서 이 파일을 소싱하세요.

모델 컨텍스트 프로토콜 (MCP) 통합

Shipyard CLI는 AI 어시스턴트 통합을 위한 MCP 서버를 제공합니다. 이를 통해 Claude와 같은 AI 어시스턴트가 Shipyard 환경을 직접 관리할 수 있습니다.

지원되는 MCP 도구

환경 관리 (7개 도구)

  • get_environments - 필터링하여 환경 나열
  • get_environment - 특정 환경 세부 정보 가져오기
  • stop_environment - 실행 중인 환경 중지
  • restart_environment - 중지된 환경 다시 시작
  • rebuild_environment - 최신 커밋으로 다시 빌드
  • cancel_environment - 환경의 최신 빌드 취소
  • revive_environment - 삭제된 환경 복구

서비스 관리 (2개 도구)

  • get_services - 환경의 서비스 나열
  • get_logs - 서비스에서 로그 가져오기

볼륨 관리 (5개 도구)

  • get_volumes - 환경의 볼륨 나열
  • reset_volume - 볼륨을 초기 상태로 재설정
  • get_snapshots - 볼륨 스냅샷 나열
  • create_snapshot - 볼륨 스냅샷 생성
  • load_snapshot - 볼륨 스냅샷 로드

조직 관리 (3개 도구)

  • get_orgs - 모든 조직 나열
  • get_org - 현재 기본 조직 가져오기
  • set_org - 기본 조직 설정

제한된 도구

이 도구들은 사용자에게 CLI 명령을 대신 사용하도록 안내하는 도움말 텍스트를 반환합니다:

  • exec_service - 서비스 컨테이너에서 명령 실행
  • port_forward - 로컬 머신으로 서비스 포트 포워딩
  • telepresence_connect - 텔레프레즌스에 연결

Claude에 추가하기

API 토큰과 조직 이름 사용:

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