README.md 한 장뿐이다. 그런데 그 한 장이 3,820줄·약 1.3MB·56개 카테고리·3,355개 서버 항목으로 불어나 있다(2026-07-31 클론 기준 직접 집계).
punkpeye/awesome-mcp-servers · ★ 약 91.6k · MIT 라이선스(2024, Frank Fiegel/glama.ai 명의) · 사실상 전부 Markdown · 최근 머지 2026-07-29(PR #10893) · 56개 카테고리 · 3,355개 서버 항목 직접 집계 · TrendShift 트렌딩)
awesome-mcp-servers는 MCP(Model Context Protocol) 서버를 카테고리별로 정리해 놓은 마크다운 링크 목록이다. 실행 파일도, 라이브러리도, API도 아니다. 이 레포를 git clone하면 받는 것은 README.md(및 7개 언어 번역본), CONTRIBUTING.md, LICENSE, 그리고 GitHub Actions 워크플로 1개 — 이게 전부다. 그런데 이 README 한 장이 지금 3,820줄 · 약 1.3MB · 56개 카테고리 · 3,355개 서버 항목이라는, 사람이 위에서 아래로 다 읽는 건 사실상 불가능한 규모로 자라 있다.
이 레포는 실제로 작동하는 프로그램이 아니라, 관리인이 있는 대형 게시판에 가깝다. 누구나 자기 가게(=자신이 만든 MCP 서버) 전단을 붙일 수 있다. 다만 아무렇게나 붙이면 안 되고, 정해진 크기의 전단(=owner/repo 표기), 업종 스티커(=이모지 15종 중 최소 1개), GitHub 발급 신분증(=github.com 링크)이 있어야 한다. 게시판을 지키는 로봇이 이 세 가지 형식만 자동으로 확인하고, 사람 관리인에게 "이 전단은 규격 통과/미통과"라고 라벨을 붙여 준다.
그런데 이 로봇은 전단 속 가게가 진짜 영업 중인지, 사장이 믿을 만한지는 검사하지 않는다. 그래서 게시판을 훑어보면 수십만 스타짜리 대기업 공식 매장(Cloudflare, AWS, GitHub 공식 서버) 옆에 어제 막 인쇄한 신장개업 전단(이름 없는 1인 프로젝트, 심지어 암호화폐 결제를 받는 신생 "에이전트 마켓")이 나란히 붙어 있다. 이 문서는 그 게시판을 실제로 헤집어서, 무엇이 어떻게 붙는지·뭘 믿고 뭘 의심해야 하는지 파헤친 기록이다.
sindresorhus/awesome이 원조로 꼽힌다. 대부분 Pull Request로 새 항목을 받는다. 이 레포가 "소프트웨어"가 아니라 "읽을거리"라는 점이, 지금까지의 다른 레포 딥다이브와 접근을 다르게 만드는 이유다 — 볼 것은 소스코드가 아니라 데이터(=엔트리 수천 개)와 그걸 관리하는 규칙이다.수치로 먼저 감을 잡아 보자. 직접 클론한 README.md를 파이썬으로 파싱해 ## Server Implementations부터 ## Frameworks 직전까지를 잘라 센 결과다:
다국어 번역본도 함께 딸려 온다 — README-ko.md, -ja, -zh, -zh_TW, -th, -pt_BR, -fa-ir 7종. 그런데 크기를 재 보면 전부 영어 원본의 일부일 뿐이다. 한국어판은 103,792바이트로 영어판(1,338,460바이트)의 약 7.8%밖에 안 된다 — 즉 번역이 어느 시점에 한 번 되고 그 뒤로 원본 성장을 따라가지 못한 스냅샷이라는 뜻이다(자세한 근거는 s4).
MCP는 Anthropic이 2024년 11월 공개한 개방형 프로토콜로, AI 모델이 로컬·원격 도구와 표준화된 방식으로 대화하게 해 준다(자세한 개념은 s3). 프로토콜이 열리자 곧바로 "누구나 자기 서비스의 MCP 서버를 만들 수 있다"는 상황이 됐고, 2025~2026년 사이 GitHub 전역에 MCP 서버 레포가 폭발적으로 늘었다. 문제는 "만들기"가 쉬워지자 "찾기"가 새 병목이 됐다는 점이다 — 결제 API를 MCP로 쓰고 싶은데 어떤 서버를 믿고 설치해야 할지, 이미 누가 만들어 놨는지조차 알기 어려운 상태.
punkpeye/awesome-mcp-servers는 이 병목에 가장 단순한 해법을 내놨다: 카테고리 + 최소한의 형식 규칙 + PR. 화려한 큐레이션 알고리즘도, 심사위원단도 없다. "GitHub에 있고, 이모지 하나 붙이고, 중복만 아니면" 목록에 실린다. 이 낮은 진입장벽이 정확히 이 레포를 지금 크기로 키운 동력이자, s8에서 다룰 리스크의 근원이기도 하다.
성장이 곧 관리 부채가 되는 구조. 작은 목록일 때는 사람 한 명이 PR을 하나하나 읽고 판단할 수 있다. 그런데 최신 머지 커밋이 PR #10893을 가리킨다 — 즉 이 레포는 지금까지 최소 1만 건 넘는 Pull Request를 처리해 온 것으로 추정된다. 사람이 그 볼륨을 전부 손으로 검수하는 건 물리적으로 불가능하다. 그래서 이 레포의 진짜 이야기는 "MCP 서버가 뭐가 있나"가 아니라 "1만 건짜리 PR 홍수를 어떻게든 자동화로 걸러내려는 시도"다.
레포의 LICENSE 파일을 열어 보면 저작권자가 punkpeye 개인이 아니라 "Frank Fiegel (frank@glama.ai)"로 적혀 있다. Frank Fiegel은 MCP 서버 상용 디렉터리 사이트 glama.ai의 창업자다. 실제로 README 맨 위에는 "glama.ai/mcp/servers 웹 디렉터리"라는 안내가 [!IMPORTANT] 배너로 박혀 있고, 유일한 자동화 워크플로 이름이 대놓고 check-glama.yml이다(s4 참고). 즉 이 어썸 리스트는 순수 커뮤니티 봉사인 동시에, glama.ai라는 상용 서비스로 데이터를 흘려보내는 유입 통로 역할을 겸하고 있다. 나쁘다는 뜻이 아니라 — 오픈소스 어썸 리스트가 어떻게 비즈니스와 얽혀 지속가능성을 확보하는지 보여주는 실사례로 읽는 게 정확하다.
이 레포를 계속 들여다보면 또 하나 보이는 것이 있다 — 이 목록 자체가 AI 업계 유행의 실시간 기록계라는 점이다. 2026년 상반기 이후 "AI 에이전트가 서로에게 마이크로페이먼트로 돈을 주고받는다"는 x402 프로토콜을 내세운 서버가 카테고리 곳곳(특히 Aggregators·Finance·E-Commerce)에 무더기로 등록됐다 — 직접 세어 보니 125개 항목이 "x402"를 언급한다. 새 트렌드가 뜨면 며칠 안에 이 게시판에 흔적이 남는다는 뜻이고, 이건 s8에서 리스크로도 다시 짚는다.
MCP(Model Context Protocol)는 Anthropic이 만든 개방 표준으로, README가 스스로를 이렇게 설명한다: "AI 모델이 표준화된 서버 구현을 통해 로컬·원격 리소스와 안전하게 상호작용하도록 하는 개방형 프로토콜". 쉽게 말해 AI 앱과 외부 도구·데이터를 잇는 공통 커넥터 규격이다. MCP가 없던 시절엔 "Claude를 Slack에 연결"과 "ChatGPT를 Slack에 연결"이 완전히 다른 통합 코드였다면, MCP 이후엔 Slack 쪽이 표준 규격의 "MCP 서버" 하나만 만들면 MCP를 지원하는 어떤 AI 앱에도 그대로 꽂힌다.
README의 Legend(범례) 절이 직접 설명하는 로컬 vs 클라우드 구분도 그대로 인용할 만하다: "MCP 서버가 Chrome 브라우저 제어처럼 로컬에 설치된 소프트웨어와 대화하면 🏠 로컬, 날씨 API처럼 원격 API와 대화하면 ☁️ 클라우드를 쓴다." 즉 이 아이콘은 서버 코드가 어디서 실행되느냐가 아니라 무엇과 통신하느냐 기준이다 — 실습 전에 헷갈리기 쉬운 지점이라 짚어 둔다.
MCP를 만든 Anthropic 스스로가 즐겨 쓰는 비유가 "AI를 위한 USB-C 포트"다. USB-C 이전엔 기기마다 충전기 규격이 달라 어댑터가 난무했듯, MCP 이전엔 AI 앱마다 통합 코드를 따로 짰다. MCP는 그 규격을 하나로 통일해, 포트(=MCP 서버)만 있으면 어떤 AI 앱(=Host)에 꽂아도 동작하게 만든다. 이 레포는 그렇게 만들어진 "포트"들을 모아 놓은 카탈로그인 셈이다.
소스 코드도, 빌드 스크립트도, 테스트도 없다. find . -maxdepth 2 -type f로 나오는 파일이 정확히 11개(번역본 7개 포함)이고, 그중 자동화라고 부를 만한 건 GitHub Actions 워크플로 딱 1개뿐이다. 그래서 이 딥다이브의 "기술 스택 지도"는 여느 소프트웨어 레포와 다르게 짧다 — Markdown(콘텐츠) + GitHub Actions(문지기) + glama.ai(외부 동기화 대상, 레포 밖)가 스택의 전부다.
번역본 크기 차이는 우연이 아니다. 한국어판(103,792B)은 영어판(1,338,460B)의 7.8%, 가장 큰 페르시아어판(305,613B)조차 22.8%에 그친다. 즉 번역본들은 과거 어느 시점에 한 번 통째로 옮겨진 뒤, 그 후 폭증한 원본 신규 항목을 따라잡지 못한 정지된 스냅숏이다 — 다른 언어로 이 목록을 보는 사용자는 지금 원본보다 훨씬 좁은 부분집합만 보고 있다는 뜻이다.
check-glama.yml이 워크플로가 PR이 열리거나(opened) 수정되거나(edited/synchronize) 닫힐 때(closed) 실행된다. 코드를 직접 읽고 재구성한 처리 순서는 이렇다:
이 봇은 PR을 승인하거나 거부하지 않는다. 라벨만 붙이고 최종 판단은 사람에게 넘긴다. PR 수천 건을 유지보수자 한둘이 감당하려면, "본문을 다 읽는다"가 아니라 "라벨 색으로 훑는다"로 인지 부하를 줄여야 하는데 이 구조가 정확히 그 역할을 한다. GitHub Script 액션 하나로 정규식 몇 개 돌리는 수준의 코드(약 280줄)로 이 정도 처리량을 감당하는 건 "완벽한 검증"보다 "실행 가능한 최소 방어선"을 택한 현실적인 엔지니어링이다.
CONTRIBUTING.md는 "카테고리 내 알파벳 순서를 유지하라"고 명시한다. 그런데 실제 Aggregators 카테고리 앞부분 순서는 Correctover → daedalusdevelopmentgroup → forgemeshlabs(2건) → 1mcp-app → 2s-io → 8randonpickart5 → GTCC777 → mcpqueen… 로, 알파벳도 숫자 순서도 아니다. 새 항목이 PR 순서대로 아무 데나 끼워지고 있다는 뜻 — 가이드라인의 "찾기 쉽게 하기 위해"라는 취지가 실제로는 지켜지지 않는다. 특정 서버를 찾으려면 훑어 읽기가 아니라 브라우저 검색(Ctrl+F)을 쓰는 게 맞다.
더 눈에 띄는 건 문서 정합성 자체의 틈이다. README 맨 위 "Server Implementations" 섹션엔 카테고리 53개짜리 손으로 관리하는 목차가 있는데, 실제 ### 헤딩은 56개다. 직접 앵커 이름을 대조해 보니 Aerospace & Astrodynamics, Health & Wellness, "end to end RAG platforms" 3개 카테고리가 실제로는 존재하는데 맨 위 목차에는 빠져 있다. 새 카테고리가 생길 때마다 상단 목차를 같이 고치는 걸 깜빡한 흔적이다.
그리고 이건 원문을 그대로 옮겨야 믿기는 버그인데, E-Commerce 카테고리 헤딩이 통째로 두 번 나온다:
// README.md 1615번째 줄
### 🛒 <a name="e-commerce"></a>E-Commerce
… 24개 항목 …
// README.md 1646번째 줄 — 같은 이름의 앵커가 31줄 뒤에 또 나온다
### 🛒 <a name="e-commerce"></a>E-Commerce
… 항목 1개만 딸려 있음 (고아처럼 떨어져 나간 항목)
마크다운에서 name이 같은 앵커가 두 번 정의된 것 — 대규모 크라우드 PR 병합에서 사람이 못 걸러낸 구조적 실수가 실제로 남아 있다는 증거다. 이런 틈들은 치명적이진 않지만, "카테고리·정렬·목차가 항상 정확하다"고 과신하면 안 된다는 걸 보여준다.
아래 표는 ## Server Implementations부터 ## Frameworks 직전까지를 파이썬으로 파싱해, ### 헤딩마다 - [로 시작하는 최상위 불릿 수를 센 결과다(중복 헤딩인 E-Commerce는 24+1=25로 합산). 상위 20개 카테고리가 전체 항목의 83.6%(2,803개)를 차지하고, 나머지 36개 카테고리에 552개가 흩어져 있다.
| 순위 | 카테고리 | 항목 수 |
|---|---|---|
| 1 | Developer Tools | 441 |
| 2 | Finance & Fintech | 397 |
| 3 | Knowledge & Memory | 282 |
| 4 | Search & Data Extraction | 195 |
| 4 | Security | 195 |
| 6 | Other Tools and Integrations | 178 |
| 7 | Databases | 124 |
| 8 | Communication | 120 |
| 9 | Aggregators | 110 |
| 10 | Cloud Platforms | 105 |
| 11 | Workplace & Productivity | 95 |
| 12 | Browser Automation | 81 |
| 13 | Monitoring | 74 |
| 14 | Coding Agents | 71 |
| 14 | Marketing | 71 |
| 16 | Art & Culture | 64 |
| 17 | Gaming | 57 |
| 18 | Multimedia Process | 53 |
| 19 | Location Services | 45 |
| 19 | Social Media | 45 |
| — | 나머지 36개 카테고리 (Legal·Sports·Real Estate 등) | 552 |
| 합계 | 56개 카테고리 | 3,355개 |
1~3위(Developer Tools·Finance & Fintech·Knowledge & Memory)만으로 전체의 34%다. 특히 Developer Tools는 사실상 "어디에도 안 들어가면 여기" 성격의 잡화 카테고리라 Figma 연동, 디자인 시스템 추출, Mermaid 다이어그램 생성기까지 뒤섞여 있다 — 카테고리 배정이 봇 검사 대상이 아니라 기여자 본인의 주관적 판단에 맡겨져 있다는 방증이다. 반대편 끝에는 Health & Wellness·Industrial & IoT처럼 항목이 딱 1개뿐인 카테고리도 있다 — 누군가 미리 만들어 뒀지만 아직 채워지지 않은 자리다.
Legend(범례) 절이 정의하는 아이콘 체계도 정리해 둔다. 카테고리 지도를 넘어 s6·s7에서 개별 서버를 읽을 때 계속 쓰인다:
| 구분 | 아이콘 | 의미 |
|---|---|---|
| 공식 여부 | 🎖️ | 공식 구현이라는 자체 신고 (제3자 검증 없음 — s8 참고) |
| 언어 | 🐍 📇 🏎️ 🦀 #️⃣ ☕ 🌊 💎 | Python · TypeScript/JS · Go · Rust · C# · Java · C/C++ · Ruby |
| 범위 | ☁️ 🏠 📟 | 클라우드(원격 API와 통신) · 로컬(로컬 SW와 통신) · 임베디드 |
| OS | 🍎 🪟 🐧 | macOS · Windows · Linux |
아래는 각 카테고리에서 실제로 README에 등재돼 있고, 등록 주체(GitHub organization)가 실존 기업·프로젝트임을 바로 확인할 수 있는 항목들이다. 설명은 원문 한 줄을 한국어로 옮긴 것이다.
| 카테고리 | 서버 | 태그 | 뭘 하는가 |
|---|---|---|---|
| Version Control | github/github-mcp-server | 🎖️📇☁️ | GitHub 공식 서버. 저장소·PR·이슈 관리를 도구로 노출 |
| Browser Automation | microsoft/playwright-mcp | (태그 없음) | Microsoft 공식 Playwright 서버. 접근성 스냅샷으로 웹페이지 조작 |
| Browser Automation | browserbase/mcp-server-browserbase | 🎖️📇 | 클라우드에서 브라우저 원격 조작(내비게이션·폼입력·크롤링) |
| Cloud Platforms | cloudflare/mcp-server-cloudflare | 🎖️📇☁️ | Cloudflare Workers·KV·R2·D1 연동 |
| Cloud Platforms | awslabs/mcp | 🎖️☁️ | AWS 서비스·리소스 연동 공식 서버 모음 |
| Databases | supabase-community/supabase-mcp | 🎖️📇☁️ | Supabase 공식. 테이블 관리·설정 조회·데이터 쿼리 |
| Databases | redis/mcp-redis | 🐍🏠 | Redis 공식. 데이터 관리·검색 인터페이스 |
| Monitoring | getsentry/sentry-mcp | 🐍☁️ | Sentry 에러 추적·성능 모니터링 연동 |
| Security | snyk/studio-mcp | 🎖️📇☁️🍎🪟🐧 | Snyk 보안 엔진을 에이전트 워크플로에 내장, 취약점 실시간 수정 |
| Knowledge & Memory | upstash/context7 | 📇☁️ | 최신 코드 문서를 LLM·AI 에디터에 실시간 공급 (실사용률 매우 높음) |
Databases·Knowledge & Memory 카테고리 곳곳엔 modelcontextprotocol/server-postgres 같은 예전 "레퍼런스 서버" 항목이 남아 있는데, 실제 링크는 modelcontextprotocol/servers-archived라는 새 경로를 정확히 가리킨다. 상류 프로젝트가 예전 레퍼런스 서버들을 별도 아카이브 레포로 옮겼는데(s9 참고), 이 목록도 그 이전을 따라간 것 — 3천 개가 넘는 목록치고는 링크 사후관리가 생각보다 꼼꼼하다는 신호다.
이모지 태그가 하나도 없다. README 자체 규칙("각 항목은 허용 이모지를 최소 하나 포함해야 한다")을 어기고 있는데, 심지어 가장 신뢰도 높은 Microsoft 공식 항목에서다. 이유는 s4에서 본 봇의 동작 방식으로 설명된다 — check-glama.yml은 PR로 새로 추가되는 줄만 검사한다. 이 항목은 봇이 생기기 전(또는 diff에 "신규"로 안 잡히는 방식)에 들어와서 검사망을 피해간 것으로 보인다. 즉 지금 이 순간 신규로 형식을 어기면 걸리지만, 이미 들어와 있는 옛 항목은 아무도 소급 검사하지 않는다 — s8에서 이 문제를 더 파고든다.
이 레포 자체는 설치할 게 없다. 할 일은 ① 카테고리에서 서버 하나를 고르고 → ② 그 서버 "자신의" 레포로 넘어가 설치 방법을 확인하고 → ③ 내 MCP 클라이언트(Claude Desktop, Claude Code 등) 설정에 등록하는 3단계다. MCP를 지원하는 클라이언트는 대체로 아래와 비슷한 형태의 설정을 쓴다(클라이언트마다 파일 위치와 세부 키는 다를 수 있다 — 이건 이 레포가 아니라 MCP 클라이언트 쪽의 공통 관례다):
{
"mcpServers": {
"redis": {
"command": "uvx",
"args": ["--from", "redis-mcp-server", "redis-mcp-server"],
"env": { "REDIS_HOST": "127.0.0.1" } // 서버별로 필요한 값이 다름
}
}
}
Claude Code처럼 CLI가 있는 클라이언트는 설정 파일을 직접 안 만지고 명령 한 줄로도 등록할 수 있다. 실제로 이 목록의 한 항목(aidevelopers2/remoteopenclaw-mcp) 설명에 박혀 있는 설치 명령을 그대로 옮기면 이렇다 — 목록 항목의 한 줄 설명 안에 설치 명령까지 적어 두는 경우가 흔하다는 것도 함께 보여준다:
# README에 실제로 적힌 예시 3개 (Aggregators 카테고리)
claude mcp add remoteopenclaw -- npx -y remoteopenclaw
npx -y correctover-mcp-server
pip install ddg-agent-services-mcp
세 줄 다 형태가 다르다는 점이 핵심이다. 하나는 Claude Code 전용 등록 명령, 하나는 npx로 바로 실행하는 Node 패키지, 하나는 pip로 까는 Python 패키지 — 이 레포는 설치 방법을 표준화하지 않는다. 표 안의 태그(🐍/📇/🏎️/🦀 등)가 사실상 유일하게 미리 알 수 있는 "요구사항" 힌트이고, 정확한 설치 절차·환경변수·인증 방식은 결국 해당 서버 자신의 레포 README로 넘어가야 확인된다. 즉 이 레포가 주는 건 "무엇이 있는지"와 "언어/범위 힌트"까지고, "어떻게 설치하는지"는 매번 목적지 레포마다 다시 배워야 한다.
s4에서 본 check-glama.yml을 다시 떠올려 보자. 이 봇이 실제로 검사하는 건 형식 4가지(이모지 존재·이름 표기·GitHub 도메인·URL 중복)뿐이다. 서버가 실제로 동작하는지, 안전한지, 등록자가 그 코드의 진짜 주인인지는 어디에서도 검사하지 않는다. 이 구조에서 실제로 관찰되는 문제들을 근거와 함께 정리한다.
Legend는 🎖️를 "공식 구현"이라고 정의하지만, check-glama.yml의 이모지 검사 로직은 "허용된 이모지 15종 중 하나라도 있는가"만 본다 — 어떤 이모지를 쓰든 검사만 통과하면 그만이라는 뜻이다. 실제로 README에는 🎖️ 태그가 237개 항목에 붙어 있는데, 그중엔 Cloudflare·AWS·GitHub처럼 알려진 조직도 있지만 아무도 들어본 적 없는 1인 프로젝트가 스스로 "공식"이라고 붙인 경우도 섞여 있다. 🎖️는 신뢰의 증거가 아니라 신뢰를 주장하는 문구로 읽어야 한다 — 실제 공식 여부는 GitHub organization이 그 브랜드의 진짜 계정인지 직접 확인해야 한다.
s6에서 본 microsoft/playwright-mcp의 이모지 누락이 정확히 이 문제다. check-glama.yml 코드를 읽어 보면 검사 대상을 newAddedLines(이번 PR에서 베이스 README에 없던, 진짜 새로 추가된 줄)로 명시적으로 한정한다. 즉 봇이 생기기 전에 들어온 항목, 혹은 이후에도 "새 줄"로 인식되지 않는 방식으로 수정된 항목은 영원히 검사받지 않는다. 큐레이션 규칙은 "지금부터"만 적용되고, 이미 쌓인 3천여 개는 각자 그 시절 기준 그대로 남아 있다.
허용된 15종 외의 이모지가 실제로 몇 십 건씩 발견된다 — 직접 스캔한 결과 💬(6건) 🚀(4건) 🛠️(3건) 🎥(3건) 🤖(3건) 🗄️(3건) 🚨(3건) 등 15종·약 39건이 범례에 없는 이모지를 쓰고 있다. 봇이 "규정 외 이모지가 섞여 있으면" 걸러내는 로직이 있는데도 이 정도가 남아 있다는 건, 검사를 우회하는 방법(예: 허용 이모지 하나를 끼워 넣고 규정 외 이모지를 추가로 덧붙이는 식)이 실제로 통한다는 뜻이다.
CONTRIBUTING.md는 "자동화된 에이전트가 PR을 낼 경우, PR 제목 끝에 🤖🤖🤖를 붙이면 병합을 우선 처리(fast-track)한다"고 명시한다 — AI가 대신 만든 PR을 사람이 낸 것보다 더 빨리 처리해 주는 공식 통로가 있다는 뜻이다. 그리고 실제로 최근 몇 달 새 "x402" 마이크로페이먼트를 내세우는 서버가 125개 항목에 등장했고, 그중 상당수가 거의 같은 문구("USDC on Base", "no API key", "x402 micropayments")를 반복하는 템플릿형 설명을 쓰고 있다. 새 유행이 뜨면 며칠 안에 이 리스트에 수십 건이 꽂히는 구조 자체는 흥미롭지만, "최근에 많이 추가됐다"가 "커뮤니티가 검증했다"를 의미하지 않는다는 걸 이만큼 명확하게 보여주는 사례도 드물다.
CONTRIBUTING.md와 봇 댓글 문구를 보면, glama.ai 등록 과정은 "서버가 실제로 기동해서 introspection 요청에 응답하는지"까지 확인한다고 명시돼 있다. 이건 이 레포 자체의 형식 검사보다 한 단계 깊은 기능적 검증이다. 다만 어디까지나 선택 사항이다 — 배지가 없어도 병합 자체는 막히지 않고 댓글로 독려만 한다. 그래서 표(s5·s6)를 다시 보면 3,355개 중 59.0%(1,979개)만 이 배지를 달고 있다 — 나머지 41%는 이 최소한의 기능 검증조차 거치지 않았을 가능성이 있다는 뜻이다.
결론적으로, 이 레포에서 링크를 하나 클릭하기 전에 스스로 확인하면 좋은 것들을 체크리스트로 정리한다:
github.com/cloudflare처럼 브랜드 조직 소유인지, 아니면 브랜드명을 흉내 낸 개인 계정인지)MCP 서버를 찾을 수 있는 곳이 이 레포 하나만은 아니다. 직접 각 저장소의 README를 확인해 온도차를 비교했다.
| 이름 | 성격 | 큐레이션 방식 | 검증 수준 |
|---|---|---|---|
| punkpeye/ awesome-mcp-servers | 커뮤니티 어썸 리스트 | GitHub PR + 형식 검사 봇 | 형식만(이모지·이름·중복·GitHub 여부) |
| modelcontextprotocol/ servers | MCP 프로토콜 관리팀의 공식 레퍼런스 저장소 | 스티어링 그룹이 직접 관리 | 소수 정예라 사실상 전수 관리 |
| MCP Registry (registry.modelcontextprotocol.io) | MCP 공식 게시 레지스트리 | 공식 저장소가 "전체 목록을 찾는다면 여기로"라고 직접 안내 | 이 세션에서 직접 열람하진 않음 — 존재와 안내 문구만 확인 |
| wong2/ awesome-mcp-servers | 커뮤니티 리스트 + 전용 사이트(mcpservers.org) | "PR을 받지 않는다" — 웹사이트 제출 폼으로만 접수 | 비공개 심사(웹 폼 뒤에서 처리) |
| appcypher/ awesome-mcp-servers | 커뮤니티 어썸 리스트 | 표준 어썸 리스트 PR | 명시 안 됨 — 대신 README 맨 위에 보안 경고 섹션을 크게 배치 |
| glama.ai/mcp/servers | 상용 MCP 디렉터리 웹서비스 | 이 레포와 연동 + 자체 등록 | 서버 기동·introspection 응답까지 실제로 확인(기능 검증) |
modelcontextprotocol/servers(공식) README를 직접 열어 보면 스스로 선을 이렇게 긋는다: "이 저장소는 MCP 스티어링 그룹이 유지하는 소수의 레퍼런스 서버만 다룬다. MCP 서버 목록을 찾고 있다면 MCP Registry에서 게시된 서버들을 둘러보라." 실제로 이 공식 저장소가 지금 유지하는 레퍼런스 서버는 Everything·Fetch·Filesystem·Git·Memory·Sequential Thinking·Time 7개뿐이고, 예전에 유지하던 AWS KB·Brave Search·GitHub·GitLab 등은 servers-archived 저장소로 옮겨졌다. 즉 punkpeye 리스트가 "다다익선"이라면, 공식 저장소는 정반대로 "우리는 최소한만 보증한다"는 입장이다.
wong2/awesome-mcp-servers는 아예 다른 길을 택했다 — README 맨 위에 "우리는 PR을 받지 않는다. mcpservers.org/submit에서 제출하라"고 못박아 놓았다. GitHub PR 홍수 자체를 원천 차단하고 별도 웹 심사로 옮긴 셈이다. appcypher/awesome-mcp-servers는 반대로 형식은 똑같은 PR 기반이지만, README 맨 위 "⚠️ Security Warning" 섹션에서 "샌드박스 없이 MCP 서버를 돌리면 호스트 프로세스와 동일한 권한으로 파일·네트워크에 전면 접근할 수 있고, 임의 코드를 실행할 수 있다"고 직접 경고한다 — punkpeye 판의 README에는 이 정도로 눈에 띄는 보안 경고 섹션이 없다는 점이 대비된다.
check-glama.yml은 그 자체로 작고 완결된 자동화 사례다.git clone --depth 1 https://github.com/punkpeye/awesome-mcp-servers.git 후, 이 문서가 쓴 것과 같은 방식으로 ### 헤딩과 - [ 불릿을 파이썬 정규식으로 세어 보자. 지금 이 문서가 낸 숫자(56개 카테고리·3,355개 항목)와 비교해 그 사이 얼마나 늘었는지를 직접 확인할 수 있다 — 이 레포는 계속 자라므로 재현할 때마다 다른 결과가 나오는 게 정상이다.
이 문서가 찾은 규정 외 이모지(💬🚀🛠️ 등)나 이모지 누락 사례(microsoft/playwright-mcp) 말고, 다른 위반 사례를 스스로 찾아보자. 예를 들어 링크 텍스트가 owner/repo 형식이 아닌 항목, 또는 같은 서버가 두 카테고리에 중복 등재된 사례를 grep으로 찾아보는 연습이다.
s6에서 고른 🎖️ 공식 서버(예: redis/mcp-redis, supabase-community/supabase-mcp) 중 하나를 골라 그 서버 자신의 레포 README를 따라 설치하고, Claude Desktop이나 Claude Code에 실제로 등록해 보자. 연결 후 그 서버가 정확히 어떤 Tools/Resources를 노출하는지 AI에게 물어보면(또는 MCP Inspector로) 목록으로 확인할 수 있다.
.github/workflows/check-glama.yml 전체(약 280줄)를 읽고, "내가 이 봇을 개선한다면 무엇을 추가로 검사할까"를 3가지 이상 구체적으로 제안해 보자. 예: 링크 URL에 HTTP HEAD 요청을 보내 생존 여부 확인, 대상 저장소의 최소 스타 수·최근 커밋일 조건, GitHub organization 소유권과 브랜드명 대조. 실제로 GitHub Actions로 프로토타입까지 만들어 보면 더 좋다.
공식 SDK(Python mcp 또는 TypeScript SDK)로 자신이 자주 쓰는 기능(예: 개인 메모 검색)을 노출하는 아주 작은 MCP 서버를 만들어 stdio로 로컬 동작을 확인한다. 그다음 CONTRIBUTING.md의 7단계(포크 → 브랜치 → README 수정 → 커밋 → 푸시 → PR → 리뷰)를 그대로 따라가며, 허용 이모지·owner/repo 표기 같은 형식 규칙을 지켜 실제로 PR을 내 보자. "목록을 읽는 사람"에서 "목록에 항목을 더하는 사람"으로 넘어가는 마지막 단계다.
| 주차 | 주제 | 구체적으로 |
|---|---|---|
| 1주 | MCP 프로토콜 기초 | JSON-RPC 2.0 기본기, Tools/Resources/Prompts 스펙 정독, 공식 SDK로 echo 서버 만들어보기 |
| 2주 | MCP 클라이언트 연결 | Claude Desktop·Claude Code·Cursor 등에 서버 등록, MCP Inspector로 tool 호출 디버깅, stdio vs Streamable HTTP 전송 차이 체감 |
| 3주 | 오픈소스 큐레이션 거버넌스 | awesome-list 운영 패턴(CONTRIBUTING, 라벨 자동화, PR 봇) 공부, check-glama.yml을 자기 프로젝트용으로 축소 이식 |
| 4주 | MCP 보안 | 프롬프트 인젝션·과도한 툴 권한·샌드박싱(VM/컨테이너) 개념, appcypher 버전의 보안 체크리스트를 실제 서버 설치에 적용 |
| 5주(선택) | 디스커버리 생태계 비교 | MCP Registry·glama.ai 같은 "메타 디렉터리"가 왜 필요한지, npm·PyPI·VS Code 확장마켓 등 다른 생태계의 신뢰 문제 해결 방식과 비교 |
check-glama.yml이 이 방식을 쓴다.modelcontextprotocol/servers README가 "전체 서버 목록은 여기서 찾으라"고 직접 가리킨다.awesome-mcp-servers는 MCP 서버 3,355개를 "형식만 맞으면 일단 실어 주는" 자동화로 굴리는 커뮤니티 게시판이며, 여기서 배워야 할 건 서버 목록 자체보다 "그 목록이 무엇을 검증하지 않는지 읽어내는 법"이다. 이 레포는 규모로 압도하지만 그 규모 자체가 신뢰의 증거는 아니다 — 링크 하나를 실제로 설치하기 전에 s8의 체크리스트를 한 번 거치는 습관이, 이 딥다이브에서 가져갈 수 있는 가장 실용적인 결론이다.
README.md(전체 목록) · CONTRIBUTING.md(기여 규칙) · .github/workflows/check-glama.yml(큐레이션 봇 코드) · LICENSE