어떻게 재나

단계하는 일주기
collect공식 레지스트리 전수 + GitHub 검색 + mcpmoa 공개 API
filter한국 관련성(한글·.go.kr·기관명) → 후보 좁히기
enrichREADME에서 엔드포인트·패키지·기관 도메인 추출
classify분야·데이터제공형 판정(LLM, 결과는 classification.json에 고정)
measuretools/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위인 자리일수록 이 두 문장을 함께 읽어 달라.

우리 두드리개가 못 하는 것

“응답 없음”은 그 서버의 판정이 아니라 우리 호출의 결과다. 우리 클라이언트는 아래를 못 한다 — 코드로 확인한 것만 적는다. 이 중 하나에 걸린 서버는 살아 있는데 우리 명단에 올라 있을 수 있다.

고칠 것은 이 목록이 아니라 우리 두드리개다 — 다음 회차 과제로 올려 두었다. 그 전까지 아래 숫자는 이 한계를 포함한 값으로 읽어야 한다.

믿으면 안 되는 부분

날짜를 어떻게 적나

이 사이트의 모든 값에는 잰 날이 붙는다 — 문서를 뽑은 날이 아니다. 가동 지표는 2026-08-24, 축(오픈소스·셀프호스팅)은 2026-08-24, 패키지 축은 2026-08-24에 쟀고, 이 페이지 자체는 2026-08-29에 생성됐다. 한때 우리는 “마지막 측정”에 문서를 뽑은 날을 찍고 있었다. 그 자리는 지금 원자료에 측정일이 없으면 생성이 실패하도록 막혀 있다.