MCP Server
Docker Build MCP Server
A TypeScript server that fully implements the Model Context Protocol (MCP) standard, providing API access to Docker CLI operations like build, run, stop, and image management through compatible AI clients.
0
GitHub Stars
8/23/2025
Last Updated
No Configuration
Please check the documentation below.
README Documentation
Docker Build MCP TypeScript Server
이 프로젝트는 MCP(modelcontextprotocol) 표준을 완벽히 따르는 Docker Build MCP 서버입니다.
주요 특징
- MCP 표준 완벽 지원: Cursor, Claude 등 MCP 클라이언트에서 tool discovery/실행 100% 호환
- 도커 이미지 관리 자동화: build, run, stop, rm, rmi, push 등 도커 CLI의 주요 기능을 API로 제공
- SSE(Server-Sent Events) 및 stdio 모드 지원
- 확장성 높은 구조: 각 도커 명령이 독립적인 tool로 구현되어 유지보수 및 확장 용이
- 실행 명령어 및 결과 로그: 모든 도커 명령 실행 시 콘솔에 명령어와 결과가 출력됨
디렉토리 구조
./
├── dist/ # 빌드 결과물
├── node_modules/ # 의존성 모듈
├── src/
│ ├── config/ # 서버 및 도구 설정
│ ├── models/ # 타입/스키마 정의
│ ├── prompts/ # MCP 프롬프트 핸들러
│ ├── resources/ # 리소스 핸들러
│ ├── tools/ # 도커 관련 MCP 도구 (build, run, stop, rm, rmi 등)
│ ├── utils/ # 유틸리티 함수
│ ├── http-server.ts # HTTP 서버 진입점
│ └── index.ts # MCP 서버 진입점
├── tests/ # 테스트 코드
├── package.json # 프로젝트 메타/스크립트
├── tsconfig.json # 타입스크립트 설정
└── vitest.config.ts # 테스트 설정
주요 기능 및 지원 도구
- docker_build: 여러 파일을 context로 받아 Docker 이미지를 빌드
- docker_run: 원하는 옵션으로 컨테이너 생성 및 실행
- docker_ps: 실행 중/전체 컨테이너 목록 조회 (all 옵션 지원)
- docker_stop, docker_stop_multi: 컨테이너(들) 중지
- docker_rm, docker_rm_multi: 컨테이너(들) 삭제 (삭제 전 자동 중지)
- docker_images: 로컬 이미지 목록 조회
- docker_rmi, docker_rmi_multi: 이미지(들) 삭제
- docker_push: 태그된 이미지를 레지스트리로 푸시
- docker_login: 도커 레지스트리 로그인
- docker-inspect: 컨테이너/이미지 상세 정보 조회
- docker-container-prune, docker-image-prune, docker-network-prune, docker-volume-prune: 불필요한 리소스 일괄 정리
설치 및 실행 방법
- 의존성 설치
npm install
- 개발 서버 실행 (SSE 모드)
ENABLE_UNSAFE_SSE_TRANSPORT=1 npm run dev
- 빌드 및 배포 실행
npm run build
npm start
예시: MCP 툴 사용
- MCP 클라이언트에서 tool discovery를 통해 위 도구들을 자동 인식/실행 가능
- 각 도구는 child_process로 docker CLI를 직접 호출하여 실제 도커 환경과 동일하게 동작
테스트
tests/
디렉토리 내에 각 도구별 테스트 코드 포함- vitest 기반 테스트 지원
기여 및 문의
- 이 프로젝트는 확장/기여를 환영합니다.
- MCP 표준, 도커 자동화, 추가 기능 문의는 언제든 이슈/PR로 남겨주세요.
실제 build/push/run 등은 child_process로 docker CLI를 호출합니다.
🐳 DinD(Docker-in-Docker) 완전 분리형 MCP 서버 실전 배포 가이드
1. 최신 이미지 빌드 및 도커허브 푸시
docker build -t ekdh600/build-mcp:latest .
docker push ekdh600/build-mcp:latest
2. 최신 코드 git 커밋/푸시
cd docker-build-mcp-ts
git add .
git commit -m "docs: DinD 구조 및 쿠버네티스 대응 최신화"
git push
3. DinD 기반 완전 분리형 컨테이너 구동(쿠버네티스 대응)
- 호스트 도커 소켓 마운트 없이, 내부 dockerd만 사용
- 쿠버네티스 환경에서도 동일하게 동작
docker run --privileged --name build-mcp -d -p 3000:3000 ekdh600/build-mcp:latest
- 내부 dockerd가 자동으로 기동되고 MCP 서버가 0.0.0.0:3000에서 listen
- MCP 툴(docker_ps, docker_run 등)은 컨테이너 내부 도커 환경만 제어(호스트와 완전 분리)
- 커서/클라우드/쿠버네티스 환경에서도 동일하게 MCP 서버로 등록하여 사용 가능
4. MCP 툴 실전 사용 예시(커서/클라우드)
- MCP 서버 주소:
http://<호스트IP>:3000
- 커서에서 MCP 서버 등록 후 docker_ps, docker_run 등 사용
- 생성/조회되는 컨테이너는 모두 DinD 내부 환경에만 존재
Quick Actions
Key Features
Model Context Protocol
Secure Communication
Real-time Updates
Open Source