맞춤형 MCP 카탈로그와 프로필: 기업 MCP 도입 촉진
출처: Docker Blog
우리는 Model Context Protocol (MCP) 서버를 관리하기 위한 Custom Catalogs와 Profiles의 일반 제공(General Availability)을 발표하게 되어 기쁩니다. 이 두 가지 보완 기능은 팀이 AI 툴링을 패키징, 배포 및 관리하는 방식을 근본적으로 바꿉니다.
Custom MCP Catalogs는 조직이 승인된 MCP 서버 컬렉션을 선별하고 배포할 수 있게 해줍니다. MCP Profiles는 개별 개발자가 자신의 MCP 도구와 설정을 프로젝트와 팀 간에 손쉽게 구축, 실행 및 공유할 수 있도록 합니다.
이 글에서는 우리의 이전 접근 방식을 기반으로 직접 Custom Catalog를 만드는 방법을 단계별로 살펴보고, Profiles라는 새로운 원시 개념을 소개합니다. Profiles는 현재 실용적인 사용 사례들을 해결하면서, 향후 확장을 위한 기반을 제공합니다.
Docker로 Custom Catalog 만들기
조직이 MCP를 도입하면서 우리는 일관되게 같은 요구를 듣게 됩니다. 팀은 내부에서 만든 서버를 포함해 신뢰할 수 있는 MCP 서버 목록을 선별할 방법이 필요합니다.
이 요구를 해결하기 위해 Custom Catalogs를 만들었습니다. 모든 팀원이 공개 인터넷에서 MCP 서버를 찾아다니는 대신, 조직은 승인된 서버를 정의한 카탈로그를 게시하고 배포할 수 있습니다. 이를 통해 개발자는 조직 경계 내에서 중앙화된 방식으로 신뢰할 수 있는 MCP 서버를 발견하고 사용할 수 있습니다.
Custom Catalogs는 Docker의 MCP Catalog, 커뮤니티 소스, 그리고 내부에서 개발한 맞춤형 MCP 서버를 모두 참조할 수 있어, 유연성, 제어성, 신뢰성을 하나의 경험으로 결합합니다. 여기서는 Custom Catalog를 만드는 방법을 보여드리겠습니다.
단계별: Custom MCP Catalog 구축 및 공유
이 예시에서는 Docker MCP Catalog에 있는 서버와 CLI를 통해 직접 만든 MCP 서버를 포함하는 Custom Catalog를 생성합니다. 그런 다음 Docker Desktop을 사용해 카탈로그를 가져오는 방법을 보여드립니다.
보여드릴 모든 기능은 CLI를 통해 실행할 수 있으며, 사용자 중심 기능의 일부는 Docker Desktop에서도 사용할 수 있습니다.
여기서는 명령어에 개인 Docker Hub ID roberthouse224를 사용하지만, 실제 상황에 맞게(예: 이미지 푸시) 정보를 교체해 주세요.
Step 1: 나만의 MCP 서버 만들고 Docker Hub에 푸시하기
우리는 roll-dice라는 레퍼런스 서버를 만들었습니다(GitHub Repository). 이는 stdio를 통해 통신하고 Docker 이미지로 빌드할 수 있는 일반 MCP 서버입니다. 이미지는 이미 빌드되어 Docker Hub로 푸시되었습니다.
서버를 설명하는 메타데이터(이미지 위치 등)를 만들고 mcp-dice.yaml 파일에 저장하면 카탈로그 생성 시 사용할 수 있습니다.
name: roll-dice
title: Roll Dice
type: server
image: roberthouse224/mcp-dice@latest
description: An mcp server that can roll dice
Step 2: Docker MCP Catalog 서버와 직접 만든 서버를 모두 포함하는 카탈로그 만들기
이제 Docker MCP Catalog에 있는 서버와 직접 만든 MCP 서버를 포함하는 Custom Catalog를 만들 수 있습니다.
docker mcp catalog create roberthouse224/our-catalog \
--title "Our Catalog" \
--server catalog://mcp/docker-mcp-catalog/playwright \
--server catalog://mcp/docker-mcp-catalog/github-official \
--server catalog://mcp/docker-mcp-catalog/context7 \
--server catalog://mcp/docker-mcp-catalog/atlassian \
--server catalog://mcp/docker-mcp-catalog/notion \
--server catalog://mcp/docker-mcp-catalog/markitdown \
--server file://./mcp-dice.yaml
Step 3: Custom Catalog에 포함된 MCP 서버 확인하기
이제 카탈로그를 리스트하고 방금 만든 카탈로그를 확인할 수 있습니다.
docker mcp catalog list
카탈로그의 내용을 확인하려면:
docker mcp catalog show roberthouse224/our-catalog --format yaml
Step 4: 카탈로그 공유하기
현재 우리의 Custom Catalog는 로컬 머신에만 존재합니다. 하지만 여기서 강력한 점은 불변(immutable) OCI 아티팩트 형태로 신뢰할 수 있는 MCP 서버들을 담고 있어 손쉽게 공유할 수 있다는 것입니다.
예시에서는 Docker Hub에 카탈로그를 푸시합니다. 이제 조직 네임스페이스에 접근 권한이 있는 사람이라면 누구나 카탈로그를 사용할 수 있습니다.
docker mcp catalog push roberthouse224/our-catalog
Custom MCP Catalog 사용하기
Custom Catalog를 공유했으니, 동료들은 Docker Desktop(또는 docker mcp catalog pull CLI 명령)에서 이를 가져올 수 있습니다.
Docker Desktop에서 “Import catalog”를 선택하고, 대화 상자에 OCI 레퍼런스를 입력하면 카탈로그를 가져올 수 있습니다.

그림 1: OCI 레퍼런스로부터 Custom Catalog 가져오기
카탈로그가 이제 탐색 가능해졌습니다. 카탈로그를 더블 클릭하면 포함된 모든 서버를 확인할 수 있습니다. 우리가 추가한 “Roll Dice”라는 커스텀 MCP 서버가 보일 것입니다.

그림 2: Docker Desktop 앱 내의 Custom MCP Catalog, 새로 추가된 “Roll Dice” 서버 포함
이 카탈로그를 비공개로 만들려면, 컨테이너 이미지에 대한 접근 권한을 관리하듯이 레포지토리 접근 관리(manage access to the repository)만 하면 됩니다. 별도의 인프라를 구축하거나 새로운 시스템을 배워야 할 필요가 없습니다.
이는 Jim Clark가 그의 글 **Private MCP Catalogs and the Path to Composable Enterprise AI**에서 설명한 내용과 정확히 일치합니다.
이 간단한 패턴은 더 복잡한 사용 사례에도 확장할 수 있습니다. 예를 들어 Docker Hub 대신 사설 컨테이너 레지스트리를 사용하거나, 예시와 같이 컨테이너화된 서버 대신 직접 호스팅하는 스트리밍 가능한 HTTP MCP 서버에 연결할 수 있습니다.
이제 신뢰할 수 있는 MCP 서버가 담긴 공유 가능한 Custom Catalog가 준비되었으니, 개인이 이 카탈로그를 활용해 워크플로우에 어떻게 적용할 수 있는지 살펴보겠습니다.
Profiles를 사용해 MCP 워크플로우 만들고 공유하기
MCP Profiles를 사용하면 개발자는 워크플로우를 효율적으로 조직하고, 다양한 사용 사례에 맞는 서버 컬렉션 및 설정을 별도로 유지할 수 있습니다. Profiles는 팀 간에 공유될 수 있어 서버 설정에 대한 협업을 가능하게 하고, 동일 프로젝트나 컨텍스트에서 작업하는 팀 간에 일관된 구성을 보장합니다.
Profiles 간 전환
기본적으로 Profile은 MCP 서버들의 이름이 지정된 그룹이며, 에이전트 세션에 연결될 수 있습니다. 이를 통해 작업 방식에 따라 서로 다른 Profiles를 정의하기가 쉬워집니다.
예시를 통해 실제 동작을 확인해 보겠습니다.
먼저 coding이라는 Profile과 planning이라는 Profile을 생성합니다. Custom Catalog를 탐색하고 원하는 MCP 서버(예: Playwright, GitHub, Context7)를 선택한 뒤 “Add to” 드롭다운에서 “New profile”을 선택합니다.

그림 3: 새로운 Profile에 추가할 MCP 서버 선택
Profile 이름을 입력하고 연결할 클라이언트를 선택한 뒤 “Create”를 클릭합니다.

그림 4: Docker Desktop에서 coding이라는 새 MCP Profile 생성
Profiles 탭에서 방금 만든 Profile을 확인할 수 있습니다. 클라이언트가 연결되어 있고 도구들을 바로 사용할 수 있습니다.

그림 5: 클라이언트에 연결된 Profile 예시
다음으로 planning이라는 Profile을 만들고, 계획에 관련된 서버들(예: Atlassian, Markitdown, Notion)을 추가합니다.
“our-catalog”(아직 선택하지 않았다면)로 돌아가 계획에 필요한 서버들을 선택하고 “Add to” → “New p