| 단계 | 하는 일 | 주기 |
|---|---|---|
| collect | 공식 레지스트리 전수 + GitHub 검색 + mcpmoa 공개 API | — |
| filter | 한국 관련성(한글·.go.kr·기관명) → 후보 좁히기 | — |
| enrich | README에서 엔드포인트·패키지·기관 도메인 추출 | — |
| classify | 분야·데이터제공형 판정(LLM, 결과는 classification.json에 고정) | — |
| measure | tools/list 실호출 — 가동·도구수·지연·설명·주석 | 매주 |
| answer | 분야별 실제 질문을 서버에 던져 답하게 한다(Haiku) | 매월 |
| grade | 그 답을 원문과 대조해 채점한다(Opus) → 순위 | 매월 |
가동은 매주, 순위는 매월 1일에 다시 잰다. 서버가 안 바뀌면 채점 결과도 안 바뀌는데 매주 재호출하는 것은 새 정보가 아니라 남의 서버에 지우는 부하다.
두드릴 때는 tools/list를 보내고, 200이 온 서버에 한해 간격을 두고 2회 더 불러 웜을 잰다(콜드 1 + 웜 2). User-Agent로 우리를 밝힌다.
200이 안 온 서버는 그렇지 않다. 재시도는 연결 실패·5xx일 때만 1회이고, 4xx는 한 번 부른 결과가 그대로 명단에 오른다. 종전에 이 자리에 “3회”라고만 적어 두었는데, 실패한 서버에는 사실이 아니었다 — fresh-eyes 검수가 잡아 고쳤다(2026-08-29).
가동 지표는 돌리면 같은 값이 나온다 — 원자료가 measured.json에 있다. 순위는 그렇지 않다 — 채점이 모델 판단이라 같은 입력에도 흔들린다. 얼마나 흔들리는지를 우리가 직접 재서 variance/에 공개해 두었다. 우리가 1위인 자리일수록 이 두 문장을 함께 읽어 달라.
“응답 없음”은 그 서버의 판정이 아니라 우리 호출의 결과다. 우리 클라이언트는 아래를 못 한다 — 코드로 확인한 것만 적는다. 이 중 하나에 걸린 서버는 살아 있는데 우리 명단에 올라 있을 수 있다.
initialize 핸드셰이크를 하지 않는다. 세션을 열지 않고 tools/list를 바로 보낸다 — Streamable HTTP 규격을 지키는 서버가 여기에 HTTP 400을 주는 것은 정상 동작이다고칠 것은 이 목록이 아니라 우리 두드리개다 — 다음 회차 과제로 올려 두었다. 그 전까지 아래 숫자는 이 한계를 포함한 값으로 읽어야 한다.
이 사이트의 모든 값에는 잰 날이 붙는다 — 문서를 뽑은 날이 아니다. 가동 지표는 2026-08-24, 축(오픈소스·셀프호스팅)은 2026-08-24, 패키지 축은 2026-08-24에 쟀고, 이 페이지 자체는 2026-08-29에 생성됐다. 한때 우리는 “마지막 측정”에 문서를 뽑은 날을 찍고 있었다. 그 자리는 지금 원자료에 측정일이 없으면 생성이 실패하도록 막혀 있다.