Install
npm install && npm run build && npm start누구에게 맞나
모델이 Docker Hub API로 이미지 콘텐츠를 발견하고, 개인 액세스 토큰을 붙인 뒤 저장소를 관리해야 하는 사람. 로컬에 Docker가 설치되어 있고 Node.js 22+가 있으며, 「토큰은 선택 사항이지만 HTTP로 HUB_PAT_TOKEN을 실으면 그 진입점에 닿는 사람이 해당 신원으로 저장소를 만들고 수정할 수 있다」는 전제를 받아들일 수 있는 운영자에게 맞다. 웹 디렉터리만 보려는 사람, 또는 소스의 보안 설명을 읽지 않은 채 HTTP 포트를 네트워크에 노출할 계획인 사람에게는 맞지 않다. 공식 페이지: https://github.com/docker/hub-mcp
3분 만에 첫 시도
공식 경로 하나만 따른다. 저장소 루트에서 빌드한 뒤 기본 stdio로 시작한다. 처음에는 http로 바꾸지 않는다.
전제 조건: Docker가 설치되어 있고 Node.js 22+가 있다. 개인 액세스 토큰은 선택 사항이다. 첫 시도에서는 토큰을 HTTP 전송에 묶지 않는다.
설치와 시작 위치: 공식 저장소 루트를 열고 다음을 실행한다.
npm install
npm run build
npm start
소스 기본 전송은 stdio이며 npm start -- [--transport=http|stdio] [--port=3000] [--host=127.0.0.1]도 허용한다. 처음에는 기본값을 유지하면 된다.
저위험 동작: MCP 클라이언트가 stdio 프로세스에 연결된 뒤 콘텐츠 발견 방향의 호출만 한다. 발췌에는 intelligent content discovery와 repository management만 적혀 있고 구체적 도구 이름이나 매개변수는 없다. 따라서 조회 명령을 지어내지 않는다. 클라이언트가 나열한 도구를 기준으로, 생성이나 수정이 아니라 발견/조회처럼 보이는 이름을 우선한다.
성공 신호: 기본 stdio에서 npm start가 계속 실행되고 클라이언트가 도구를 나열할 수 있다. 빌드가 없거나 Node 버전이 부족해 바로 종료되지 않는다. 프로세스가 바로 끝나면 먼저 Node.js 22+와 npm run build 완료 여부를 확인한다.
사용 사례
사례 1: 공개 콘텐츠 발견. 소스의 「interfaces with Docker Hub APIs」와 「intelligent content discovery」에 해당한다. 기본 stdio에서 토큰을 강제하지 않은 전제로 클라이언트가 발견류 호출을 한 번 시작한다. 증거에 도구 이름, 필터 매개변수, 반환 필드가 없으므로 호출이 Docker Hub API에 도달했는지, 클라이언트가 결과 또는 명확한 API 오류를 반환했는지만 확인한다. 특정 검색 문법이 있다고 가정하지 않는다.
사례 2: 부작용이 있는 저장소 관리. 소스는 http 전송이 운영자의 HUB_PAT_TOKEN으로 매 도구 호출을 보낸다고 명시하며, 그 HTTP 진입점에 닿는 사람은 creating and modifying repositories를 할 수 있다. 저장소를 관리해야 한다면 시작 전에 로컬에서 프로세스에 토큰을 제공한다. 소스 예시는 HUB_PAT_TOKEN=... npm start -- [--username=...]이다. 클라이언트가 자신의 프로세스에 연결되어 있고 HTTP가 여전히 127.0.0.1에만 바인딩된 것을 확인한 뒤에 생성 또는 수정을 시작한다. 확인 지점: Docker Hub의 해당 저장소에 예상 변경이 나타난다. 증거에 저장소 관리 도구의 매개변수 표는 없다. 빠진 부분은 「저장소를 생성/수정할 능력이 있다」에서 멈춘다.
사용 경계
HTTP는 기본적으로 127.0.0.1에 바인딩되며 인증이 필요하다. 소스는 네트워크에 노출하기 전에 Securing the HTTP transport를 보라고 요구한다. 강화되지 않은 HTTP를 공유 진입점으로 쓰지 않는다.
운영자 토큰이 실린 HTTP를 다른 사람이 건드리면 상대는 그 Docker Hub 신원으로 저장소를 만들고 수정할 수 있다. 읽기 전용 안내도 위험이 0은 아니다. 프로세스는 Docker Hub API에 접근하고 제공한 토큰대로 동작한다.
전제에서 토큰은 선택 사항이지만, 발췌는 인증되지 않았을 때 어떤 비공개 콘텐츠를 볼 수 있는지 밝히지 않는다. 비공개 저장소를 반드시 읽을 수 있다고 가정하지 않는다.
증거에 클라이언트 목록도 완전한 MCP 도구 목록도 없다. 다른 Hub 플러그인의 명령으로 메우지 않는다. Docker와 Node.js 22+가 필요하며, 하나가 없어도 발췌에 나오지 않은 설치 방식으로 바꾸지 않는다.