Docker MCP 툴킷
Docker MCP 툴킷
Docker MCP Toolkit은 Docker Desktop에 통합된 관리 인터페이스로, 컨테이너화된 MCP 서버를 프로필에 설정·관리·실행하고 AI 에이전트에 연결할 수 있게 해 줘요. 보안 기본값, 쉬운 설정, 그리고 성장하는 LLM 기반 클라이언트 생태계 지원을 통해 도구 사용의 마찰을 없애 줘요. MCP 도구 탐색에서 로컬 실행까지 가장 빠른 경로를 제공해요.
출처: 문서
본문
가용성: Beta
참고: 이 페이지는 Docker Desktop 4.62 이상의 MCP Toolkit 인터페이스를 설명해요. 이전 버전은 다른 UI를 사용해요. 이 안내를 그대로 따라 하려면 업그레이드하세요.
주요 기능
- 크로스-LLM 호환성(Cross-LLM compatibility): Claude, Cursor 등 다른 MCP 클라이언트와 함께 동작해요.
- 통합 도구 탐색(Integrated tool discovery): Docker Desktop에서 바로 Docker MCP 카탈로그의 MCP 서버를 탐색하고 실행해요.
- 제로 수동 설정(Zero manual setup): 의존성 관리, 런타임 설정, 세팅이 필요 없어요.
- 프로필 기반 구성(Profile-based organization): 프로젝트나 환경별로 별도의 서버 모음을 만들어요.
- MCP 서버를 프로필로 구성하고, 클라이언트가 각 프로필의 서버에 접근할 수 있게 하는 게이트웨이 역할을 해요.
팁: MCP Toolkit에는 Dynamic MCP가 포함되어 있어, AI 에이전트가 대화 중에 수동 구성 없이 MCP 서버를 주문형으로 탐색·추가·구성할 수 있어요. 게이트웨이에 연결하면 에이전트가 카탈로그를 검색하고 필요할 때 도구를 추가할 수 있어요.
MCP Toolkit의 동작 방식
MCP는 MCP 클라이언트와 MCP 서버라는 두 가지 핵심 개념을 도입해요.
MCP 클라이언트 는 일반적으로 Claude Desktop 앱 같은 LLM 기반 애플리케이션에 내장되어 있어요. 리소스나 작업을 요청해요.
MCP 서버 는 클라이언트가 요청한 작업을 수행하기 위해 필요한 도구, 언어, 프로세스를 사용해 실행돼요.
Docker는 MCP 서버를 포함한 애플리케이션의 개발, 패키징, 배포를 표준화해요. MCP 서버를 컨테이너로 패키징함으로써 Docker는 격리와 환경 차이 문제를 제거해요. 의존성을 관리하거나 런타임을 구성하지 않고도 컨테이너를 바로 실행할 수 있어요.
MCP 서버에 따라 제공하는 도구가 서버와 같은 컨테이너에서 실행되거나, 더 나은 격리를 위해 전용 컨테이너에서 실행될 수 있어요.
MCP Toolkit은 서버를 프로필로 구성해요. 프로필은 서버와 그 설정으로 이루어진 이름 붙여진 모음이에요. 이렇게 하면 프로젝트나 환경별로 다른 서버 구성을 유지할 수 있어요. 클라이언트를 연결할 때 어떤 프로필을 사용할지 지정해요.
보안
Docker MCP Toolkit은 수동적·능동적 조치를 결합해 공격 표면을 줄이고 안전한 런타임 동작을 보장해요.
수동적 보안(Passive security)
수동적 보안은 MCP 서버 코드가 Docker 이미지로 패키징되는 빌드 시점에 적용되는 조치를 말해요.
- 이미지 서명과 증명(Image signing and attestation): MCP 카탈로그의
mcp/아래 모든 MCP 서버 이미지는 Docker가 빌드하고, 출처와 무결성을 검증하기 위해 디지털 서명해요. 각 이미지에는 완전한 투명성을 위한 SBOM(소프트웨어 자재 명세서)이 포함돼요.
능동적 보안(Active security)
능동적 보안은 도구 호출 전후의 런타임에 리소스와 접근 제한을 통해 적용되는 보안 조치를 말해요.
- CPU 할당(CPU allocation): MCP 도구는 자체 컨테이너에서 실행돼요. 1 CPU로 제한되어 컴퓨팅 리소스의 잠재적 오용 영향을 제한해요.
- 메모리 할당(Memory allocation): MCP 도구용 컨테이너는 2GB로 제한돼요.
- 파일시스템 접근(Filesystem access): 기본적으로 MCP 서버는 호스트 파일시스템에 접근할 수 없어요. 사용자가 파일 마운트를 허용할 서버를 명시적으로 선택해요.
- 도구 요청 가로채기(Interception of tool requests): 비밀(secret) 같은 민감한 정보를 담은 도구로 오가는 요청은 차단돼요.
OAuth 인증
일부 MCP 서버는 GitHub, Notion, Linear 같은 외부 서비스에 접근하려면 인증이 필요해요. MCP Toolkit은 OAuth 인증을 자동으로 처리해 줘요. 브라우저로 접근을 승인하면 Toolkit이 자격 증명을 안전하게 관리해요. 각 서비스마다 API 토큰을 수동으로 만들거나 인증을 구성할 필요가 없어요.
OAuth로 서버 승인하기
- Docker Desktop에서 MCP Toolkit으로 이동해 Catalog 탭을 선택합니다.
- OAuth가 필요한 MCP 서버를 찾아 추가합니다.
- 서버의 Configuration 탭에서 OAuth 인증 방법을 선택합니다. 링크를 따라 OAuth 권한 부여를 시작합니다.
- 브라우저에서 서비스의 인증 페이지가 열립니다. 화면의 안내에 따라 인증을 완료합니다.
- 인증이 끝나면 Docker Desktop으로 돌아옵니다.
- OAuth 탭에서 승인된 모든 서비스를 볼 수 있어요. 접근을 취소하려면 연결을 끊을 서비스 옆의 Revoke를 선택합니다.
사용 예시
예시: Claude Desktop을 클라이언트로 사용
Claude Desktop이 설치되어 있고 GitHub MCP 서버와 Puppeteer MCP 서버를 사용하고 싶다고 해 볼게요. Claude Desktop에 서버를 설치할 필요는 없어요. MCP Toolkit의 프로필에 이 2개의 MCP 서버를 추가하고 Claude Desktop을 클라이언트로 연결하면 돼요:
- MCP Toolkit 메뉴에서 Catalog 탭을 선택하고 Puppeteer 서버를 찾아 프로필에 추가합니다.
- GitHub Official 서버에 대해서도 반복합니다.
- Clients 탭에서 Claude Desktop 옆의 Connect를 선택합니다. 실행 중인 Claude Desktop이 있다면 다시 시작하면 이제 MCP Toolkit의 모든 서버에 접근할 수 있어요.
- Claude Desktop 안에서 Sonnet 3.5 모델로 다음 프롬프트를 제출해 테스트해 보세요:
Take a screenshot of docs.docker.com and then invert the colors
예시: Visual Studio Code를 클라이언트로 사용
Visual Studio Code에서 설치된 모든 MCP 서버와 상호작용할 수 있어요.
MCP Toolkit을 활성화하려면:
- 전체적으로 활성화(Enable globally)
- 특정 프로젝트에 대해 활성화(Enable for a given project)
Visual Studio Code의 사용자 mcp.json에 다음을 넣어 주세요:
"mcp": {
"servers": {
"MCP_DOCKER": {
"command": "docker",
"args": [
"mcp",
"gateway",
"run",
"--profile",
"my_profile"
],
"type": "stdio"
}
}
}
터미널에서 프로젝트 폴더로 이동한 뒤 실행해요:
docker mcp client connect vscode --profile my_profile
참고: 이 명령은 현재 디렉터리에 프로필에 VSCode를 연결하는
.vscode/mcp.json파일을 만들어요. 사용자별 파일이므로 저장소에 커밋되지 않도록.gitignore파일에 추가하세요.
echo ".vscode/mcp.json" >> .gitignore
Visual Studio Code에서 새 Chat을 열고 Agent 모드를 선택해요. 사용 가능한 MCP 도구도 확인할 수 있어요.
Agent 모드에 대한 자세한 내용은 Visual Studio Code 문서를 참고해 주세요.
더 보기
- CLI로 MCP Toolkit 사용하기
- MCP 카탈로그
- MCP Gateway