내가 스테이징 환경을 MCP로 교체한 방법

발행: (2025년 12월 14일 오후 06:37 GMT+9)
6 min read
원문: Dev.to

Source: Dev.to

Overview

2025년 어느 시점에 저는 overemployed 상태가 되어 다섯 개의 일을 동시에 하게 되었습니다. 저는 이 사실을 상사들에게 솔직히 말했으며, 그들은 호기심, 재미, 혹은 무관심한 반응을 보였습니다. 저는 몇 달 동안 그 일들을 유지했고, 어느 하나도 해고당하지 않았습니다.

Stacks I Was Working With

  • 백엔드용 GKE + Cloud Run
  • ECS + Fargate + SQS + Lambda + CDKTF + Cloud Build
  • Argo 기반 Kubernetes
  • Next.js + Prisma + PostgreSQL
  • React + Lambda + CDK + Modal

스택과 관계없이 항상 같은 문제가 발생했습니다: 작업을 데모하고 리뷰용으로 공유하는 것이 어려웠습니다. 소프트웨어를 만드는 과정은 복잡하고, 사람들은 하나의 일관된 스택에 딱 맞지 않는 선택을 하며, PR당 임시 환경을 제공하려는 프로젝트조차도 이러한 미리보기를 사용하고 유지보수하기 어렵게 만드는 거친 모서리를 마주했습니다.

저는 기본적으로 사람들에게 제 localhost 링크를 제공하고 싶었습니다. 한때 ngrok을 사용했지만 결국 작동을 멈추었고, 그래서 직접 도구를 만들기 시작했습니다. 그 도구들은 Autodock 으로 성장했으며—AI 코딩 도구에 한 줄의 프롬프트만으로 전체 스테이징 환경을 제공하는 MCP 서버입니다. 자세한 내용이 필요하면 문서가 좋은 자료가 됩니다.

Setup

저는 Claude Code를 주력으로 사용하지만, MCP를 지원하는 어떤 코딩 에이전트에도 동일한 절차를 적용할 수 있습니다.

claude mcp add --transport http autodock https://autodock.io/api/mcp/streamable-http

에이전트 안에서 /mcp를 실행하고 autodock을 선택합니다. 처음이라면 로그인하거나 회원가입을 위해 Enter를 누르면 됩니다.

Launch

Autodock Dev Box는 다양한 개발자 도구가 미리 설치된 상태로 제공됩니다:

  • mise를 통한 언어: node, python, go, rust
  • 인프라: docker, terraform, kubectl, localstack
  • AI 도구: claude-code, aider, ollama
  • playwright를 통한 브라우저
  • 유틸리티: ripgrep, libfaketime, httpie, jq

저는 주로 프로젝트 InboxPilot 로 Autodock을 시연하지만, 어떤 레포도 사용할 수 있습니다.

Claude에 다음을 입력합니다:

> Please launch an autodock dev box for this project

보조자는 다음과 같이 응답합니다:

● autodock - env.launch (MCP)(name: "inboxpilot")
  ⎿  Your Autodock box is ready. Please offer to execute these steps for the user:
     1) Download and save the SSH key (link expires in 10 minutes):
        mkdir -p ~/.autodock/ssh && chmod 700 ~/.autodock/ssh
     … +37 lines
● Your Autodock dev box is ready.

Environment Details:
- Name: inboxpilot
- Slug: chilly-mollusk
- Status: ready
- URL: https://chilly-mollusk.autodock.io
- Auto‑stop: 30 minutes

To SSH directly:
ssh root@chilly-mollusk.autodock.io -i ~/.autodock/ssh/chilly-mollusk.pem

보조자는 이후 다음 단계(코드 동기화, 명령 실행, 포트 노출)를 제안합니다. 저는 프로젝트를 동기화하기로 선택했습니다.

Sync

Autodock은 localhost를 단일 진실의 원천으로 가정합니다. 에이전트는 로컬에서 코딩하지만, 정기적으로 동기화하여 업데이트가 즉시 반영됩니다(예: HMR).

> Could you please sync inboxpilot to the dev box?

보조자 출력(요약):

● autodock - env.sync (MCP)(projectName: "inboxpilot")
  ⎿  Environment: inboxpilot (push: local→remote)
     Project: inboxpilot → /workspace/inboxpilot
     SSH: root@chilly-mollusk.autodock.io:22
● Bash(rsync -avz --delete -e "ssh -i ~/.autodock/ssh/chilly-mollusk.pem -p 22 -o StrictHostKeyChecking=accept-new" ./ \
      root@chilly-mollusk.autodock.io:/workspace/inboxpilot)
  ⎿  sending incremental file list
     created directory /workspace/inboxpilot
     … +113 lines
● Synced successfully.

● Bash(find . -name '.env*' -type f 2>/dev/null | head -20)
  ⎿  ./backend/.env
     ./backend/.env.example
     ./frontend/.env.local
● Bash(grep -h "localhost" ./backend/.env ./frontend/.env.local 2>/dev/null || echo "No localhost references found")
  ⎿  DATABASE_URL=postgresql://postgres:postgres@localhost:5432/inboxpilot
     CLERK_AUTHORIZED_PARTIES=["http://localhost:3000","https://3000--sparkling-vulture.autodock.io"]
     CORS_ORIGINS=["http://localhost:3000","https://3000--sparkling-vulture.autodock.io"]
     SMTP_HOST=localhost

● I see the .env files have references to a previous dev box (sparkling‑vulture). Let me patch them for the new chilly‑mollusk environment and sync.

● Bash(ssh -i ~/.autodock/ssh/chilly-mollusk.pem root@chilly-mollusk.autodock.io \
      "cat > /workspace/inboxpilot/backend/.env  /workspace/inboxpilot/frontend/.env.local << 'EOF'
NEXT_PUBLIC_API_URL=https://8000--chilly-mollusk.autodock.io
EOF")
● Sync complete.

Summary:
- Synced all project files to /workspace/inboxpilot on the dev box
- Patched .env files with updated URLs for chilly‑mollusk
- Next steps:
  * Install dependencies (`npm install` for frontend, `poetry install` for backend)
  * Start services (PostgreSQL, backend API on port 8000, frontend on port 3000)

이제 여기서 개발을 이어가고, 테스트하고, 실시간 URL(예: https://8000--chilly-mollusk.autodock.io)을 리뷰어와 공유할 수 있습니다—모두 로컬 에디터를 떠나지 않고 가능합니다.

Back to Blog

관련 글

더 보기 »