
Claude Code를 사용하여 터미널만으로 FastAPI 앱을 배포해 보았다
요약
Claude Code와 KamuiDash의 MCP 서버를 연동하여 터미널 환경에서 FastAPI 앱을 생성부터 배포까지 완료하는 과정을 다룹니다. 브라우저 대시보드 조작 없이 CLI만으로 프로젝트 생성, GitHub 푸시, 운영 환경 배포를 완결할 수 있습니다.
핵심 포인트
- Claude Code와 MCP를 활용한 완전한 CLI 기반 배포 워크플로우 구현
- KamuiDash MCP 서버를 통해 자연어로 프로젝트 및 앱 조작 가능
- GitHub 연동 및 배포 과정을 AI 에이전트가 직접 수행
- 콜드 스타트 없는 빠른 응답 속도의 PaaS 환경 활용
요약
- AI 에이전트(Claude Code)에게 "앱을 만들고, GitHub에 push하고, 배포해줘"라고 부탁하는 것만으로, 브라우저 대시보드를 한 번도 건드리지 않고 FastAPI 앱을 운영 환경에 공개할 수 있었다.
- PaaS인 KamuiDash( https://kamui-platform.com/ja/ )가 제공하는 MCP 서버를 사용했습니다. create_project / create_app / list_deploy_runs / get_app_logs와 같은 조작을 Claude Code에서 자연어로 호출할 수 있다.
- 결과적으로, 도쿄 리전(Tokyo region)의 공개 URL로부터 HTTP 200을 받았으며, 상시 응답 시간은 약 0.13초였다. 무료 플랜에서도 슬립(sleep)하지 않는다(콜드 스타트(Cold start) 없음).
- "만들기 → 올리기 → 확인하기" 루프는 완전히 CLI / Claude Code에서 완결된다. 단, GitHub repo와 KamuiDash를 연동할 때만 브라우저에서 원탭(one-tap) 작업이 필요하다.
왜 "AI 에이전트 × PaaS"인가
- 최근에는 코드를 작성하는 것도, 조사하는 것도 Claude Code에 맡기는 시간이 늘어났다. 반면 배포 주변 작업만은 결국 브라우저에서 대시보드를 열고, 하나씩 클릭하며 설정하는... 식의 수작업이 남기 쉽다.
- 여기서 효과를 발휘하는 것이 MCP (Model Context Protocol)이다. PaaS 측에서 MCP 서버를 준비해 두었다면, AI 에이전트는 "프로젝트 생성", "앱 배포", "로그 확인"과 같은 조작을 도구(tool)로서 직접 호출할 수 있다. KamuiDash는 이 MCP/CLI에 대응하고 있으므로, 이번에는 그것을 사용해 보았다.
준비: CLI 및 MCP 연결
사용 도구: kamui CLI (KamuiDash) / Claude Code / gh (GitHub CLI). 버전 확인 예시:
$ kamui --version
kamui version 0.1.18
$ claude --version
...
KamuiDash의 MCP를 Claude Code에 연결합니다. 토큰을 화면에 노출하지 않고, 파일로 작성하여 Claude Code에 자동으로 등록하는 --register를 사용하는 것이 안전합니다.
$ kamui login # 브라우저에서 GitHub OAuth (1회 수행)
$ kamui mcp setup --register --token-file ~/.kamui/mcp-pat --client claude-code
발행된 Personal Access Token은 필요 없어진 후 kamui tokens delete로 언제든지 무효화할 수 있습니다.
연결 확인:
$ claude mcp list
kamui: https://api.kamui-platform.com/mcp (HTTP) - Connected

만약을 위해, Claude Code를 통해 "현재 로그인 중인 계정의 프로젝트 목록을 보여줘"라고 요청하여, 예상대로의 계정(=배포 대상)에 연결되어 있는지 처음에 확인해 두면 안심할 수 있습니다.
스텝 1: FastAPI 샘플을 Claude Code에게 만들게 하여 GitHub로
Claude Code에게 다음과 같이 요청했습니다.
"최소 기능의 FastAPI 앱을 만들어줘. GET / 는 Hello 메시지와 region: tokyo를 반환해. GET /health 는 status: ok를 반환해. 마지막에 os.environ.get(PORT, 8000)을 읽어 uvicorn으로 실행해. requirements는 fastapi와 uvicorn[standard]로 해줘. git init 하고 gh로 신규 퍼블릭 리포지토리(public repository)를 생성해서 push해줘."
포인트는 KamuiDash의 Python 앱이 python main.py로 실행된다는 점입니다. 따라서 Uvicorn은 main.py 내부에서 환경 변수 PORT를 읽어 실행하도록 작성합니다.
# main.py
import os
from fastapi import FastAPI
...
requirements.txt는 fastapi와 uvicorn[standard] 두 줄뿐입니다. Claude Code가 git init부터 커밋(commit), gh repo create, 푸시(push)까지 실행하여 kamuiplatform/kamuidash-fastapi-demo가 완성되었습니다.
단계 2: MCP를 사용하여 create_project에서 create_app까지
여기서부터가 본격적인 시작입니다.
Claude Code에 다음과 같이 지시했습니다.
"KamuiDash의 MCP로 kamuiplatform/kamuidash-fastapi-demo의 main을 운영 환경에 배포해줘"
다음 작업들을 차례대로 진행해 줍니다.
- create_project (이름 demo / Free / Tokyo)
- create_app (Python / 해당 리포지토리 / setup: pip install -r requirements.txt / start: python main.py / 레플리카 1 / Free)
- list_deploy_runs 및 공개 URL 확인
중간에 리포지토리(repo)와 KamuiDash의 연동이 필요하지만, AI가 어떻게 해야 하는지 알려줍니다.

단계 3: AI에게 배포 상황 확인시키기
빌드 중에는 Claude Code가 상황을 모니터링하도록 합니다. list_deploy_runs로 deploying에서 success로 변하는 과정을 추적하고, 실패하면 get_deploy_run_logs를, 기동 후에는 get_app_logs로 앱 로그를 확인하는 흐름입니다.
모든 것이 MCP를 통해 이루어지므로, 역시 브라우저는 필요하지 않습니다.
몇 분 후, deploy: success / pod: running 상태가 되었고 공개 URL이 발행되었습니다.

결과: 공개 URL 통신 및 응답 시간 측정
도쿄 리전(Tokyo region)의 공개 URL에 대해 루트(/) 경로로 3회 요청을 보내 응답 시간을 측정했습니다.
$ for i in 1 2 3; do curl -s -o /dev/null -w "HTTP %{http_code} total=%{time_total}s\n" https://<app>.kamui-platform.com/ ; done
HTTP 200 total=1.127280s
HTTP 200 total=0.139520s
...
3회 모두 HTTP 200입니다. 첫 번째 요청은 TLS / 연결 확립을 포함하여 약 1.1초, 이후에는 약 0.13초로 안정적이었습니다. KamuiDash는 무료 플랜에서도 앱을 슬립(sleep) 상태로 만들지 않는 설계이므로, "첫 접속 시에만 수십 초를 기다려야 하는" 타입의 콜드 스타트(cold start)가 없습니다. 응답 본문은 GET / 요청 시 Hello 메시지 + region: tokyo를, GET /health 요청 시 status: ok를 반환합니다.

요약
"앱을 만들고", "배포하고", "로그를 보여줘"라는 대화를 던지는 것만으로 FastAPI 앱이 도쿄 리전에서 운영 환경으로 가동되었습니다. Dockerfile도 CI 설정도 작성하지 않았습니다. AI 코딩의 흐름을 끊지 않고 그대로 운영 환경까지 가져갈 수 있는 경험은 상당히 훌륭합니다. KamuiDash는 무료 플랜부터 체험할 수 있으며 콜드 스타트도 없습니다. 손안에서 Vibe Coding을 하며 앱을 빠르게 호스팅하고 싶은 분들은 꼭 한번 사용해 보세요.
KamuiDash: https://kamui-platform.com/ja/
문서 (MCP 설정): https://docs.kamui-platform.com/ja/mcp.html
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기