MCP 레지스트리 애그리게이터
MCP 레지스트리 애그리게이터 (MCP Registry Aggregators)
애그리게이터는 MCP 레지스트리의 다운스트림 소비자로, 추가 가치를 제공해요. 예를 들어 사용자 평점과 보안 스캔을 제공하는 서버 마켓플레이스가 그렇죠. 이 글은 MCP 레지스트리 REST API를 소비해 자체 데이터 저장소를 채우는 애그리게이터가 알아야 할 내용을 다룹니다.
💡 MCP 레지스트리는 현재 프리뷰 단계예요. 일반 공개 전에 파괴적 변경이나 데이터 리셋이 있을 수 있습니다. 이슈가 있으면 GitHub에 보고해 주세요.
MCP 레지스트리는 애그리게이터가 자체 데이터 저장소를 채우는 데 쓸 수 있는 미인증 읽기 전용 REST API를 제공해요. 애그리게이터는 정기적이지만 드물게(예: 한 시간에 한 번) 데이터를 스크랩하고, 그 데이터를 자체 저장소에 영속화할 것으로 예상됩니다. MCP 레지스트리는 업타임이나 데이터 내구성 보장을 제공하지 않아요.
MCP 레지스트리 REST API 소비
MCP 레지스트리 REST API의 기본 URL은 https://registry.modelcontextprotocol.io입니다. 다음 엔드포인트를 지원해요.
GET /v0.1/servers— 모든 서버 나열.GET /v0.1/servers/{serverName}/versions— 서버의 모든 버전 나열.GET /v0.1/servers/{serverName}/versions/{version}— 서버의 특정 버전 가져오기. 특별 버전latest로 서버의 최신 버전을 가져올 수 있어요.
⚠️
serverName·version같은 URL 경로 파라미터는 반드시 URL 인코딩해야 해요. 예를 들어io.modelcontextprotocol/everything은io.modelcontextprotocol%2Feverything으로 인코딩해야 합니다.
애그리게이터는 대부분 GET /v0.1/servers 엔드포인트를 스크랩할 거예요.
페이지네이션
GET /v0.1/servers 엔드포인트는 커서 기반 페이지네이션을 지원해요.
예를 들어 첫 페이지는 limit 쿼리 파라미터로 가져올 수 있어요.
curl "https://registry.modelcontextprotocol.io/v0.1/servers?limit=100"
{
"servers": [
/* ... */
],
"metadata": {
"count": 100,
"nextCursor": "com.example/my-server:1.0.0",
},
}
그다음 페이지는 nextCursor 값을 cursor 쿼리 파라미터로 넘겨 가져올 수 있어요.
curl "https://registry.modelcontextprotocol.io/v0.1/servers?limit=100&cursor=com.example/my-server:1.0.0"
지정 시각 이후 필터링
GET /v0.1/servers 엔드포인트는 특정 타임스탬프 이후 업데이트된 서버를 필터링하는 것을 지원해요.
예를 들어 2025-10-23 이후 업데이트된 서버는 RFC 3339 날짜-시간 형식의 updated_since 쿼리 파라미터로 가져올 수 있어요.
curl "https://registry.modelcontextprotocol.io/v0.1/servers?updated_since=2025-10-23T00:00:00.000Z"
서버 상태
서버 메타데이터는 일반적으로 불변이지만, status 필드는 예외로 "deprecated"나 "deleted"로 업데이트될 수 있어요. 애그리게이터는 각 서버 status의 사본을 최신으로 유지하는 것을 권장합니다.
"deleted" 상태는 보통 서버가 관대한 조정 정책을 위반했음을 나타내며, 서버가 스팸, 맬웨어, 또는 불법일 수 있음을 시사해요. 애그리게이터는 이 서버들을 인덱스에서 제거하는 것을 선호할 수 있어요.
서브레지스트리로 동작
서브레지스트리는 MCP 레지스트리가 정의한 OpenAPI 스펙도 구현하는 애그리게이터예요. 이것으로 MCP 호스트 애플리케이션 같은 클라이언트가 표준화된 인터페이스로 서버 메타데이터를 소비할 수 있어요.
서브레지스트리 OpenAPI 스펙을 통해 서브레지스트리는 _meta 필드로 커스텀 메타데이터를 주입할 수 있어요. 예를 들어 서브레지스트리는 사용자 평점, 다운로드 수, 보안 스캔 결과를 주입할 수 있어요.
{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.username/email-integration-mcp",
"title": "Email Integration",
"description": "Send emails and manage email accounts",
"version": "1.0.0",
"packages": [
{
"registryType": "npm",
"identifier": "@username/email-integration-mcp",
"version": "1.0.0",
"transport": {
"type": "stdio"
}
}
],
"_meta": {
"com.example.subregistry/custom": {
"user_rating": 4.5,
"download_count": 12345,
"security_scan": {
"last_scanned": "2025-10-23T12:00:00Z",
"vulnerabilities_found": 0
}
}
}
}
커스텀 메타데이터는 서브레지스트리를 반영하는 키(위 예제의 "com.example.subregistry/custom" 같은) 아래 두는 것을 권장해요.
더 알아보기 (Learn more)
- MCP 레지스트리 — 레지스트리 소개와 생태계
- 조정 정책 — 무엇이 제거되는지
- 게시한 MCP 서버 버전 관리 — 애그리게이터 권장 버전 비교 규칙