우리는 어떻게 측정하는가 — 그리고 무엇을 측정하지 않는가
공개된 MCP 서버를 허락을 구하지 않고 탐침합니다. 그것은 우리에게 의무를 지웁니다. 스스로에게 부과한 규칙과 그 이유입니다.
우리가 측정할 수 있도록 누군가가 무언가를 설치해 주지는 않습니다. 우리는 공개된 MCP 엔드포인트에 바깥에서, 여느 클라이언트와 똑같은 방식으로 접속합니다. 생태계 전체를 다룰 수 있는 이유가 그것이고, 조심해야 하는 이유도 같습니다. 측정 대상을 해치는 측정은 측정이 아닙니다.
실제로 하는 일
몇 시간마다 프로토콜 핸드셰이크를 수행하고, 도구 목록을 요청하고, 돌아온 것을 기록합니다. 어떤 버전으로 합의했는지, 얼마나 걸렸는지, 무엇이 실패했는지. 모든 결과는 추가되며 결코 수정되지 않습니다. 어떤 것도 덮어쓰지 않기에, 우리가 틀렸을 때조차 기록은 정직하게 남습니다.
도구를 호출합니다 — 다만 일부만
서버가 응답만 하는지 실제로 동작하는지 알려면 무언가를 호출해야 합니다. 그래서 단 한 번의 스모크 호출을 하며, 어떤 도구가 자격이 있는지에 대해서는 엄격합니다. 읽기 전용이고, 필수 매개변수가 없으며, 이름이 명확한 단어로 시작해야 합니다 — list, get, search, status, info, ping, health, read, describe.
생성, 삭제, 전송, 결제, 수정을 할 수 있는 것에는 절대 손대지 않습니다. 자격을 갖춘 도구가 없으면 추측하는 대신 테스트를 건너뛰었다고 기록합니다. 측정을 위해 시스템을 바꿀 생각은 없습니다.
일부러 속도를 늦춥니다
탐침은 알파벳 순이 아니라 호스트 단위로 흩어서 진행합니다. 한 사업자가 갑작스러운 부하를 받지 않도록 하기 위해서입니다. 호스트당 동시 요청은 최대 두 건, 그 사이 간격은 최소 0.5초입니다. 수천 개의 서버가 소수의 플랫폼 뒤에 있고, 단순한 스캔은 공격과 매우 비슷해 보입니다.
절대 수집하지 않는 것
- 도구의 결과. 호출이 성공했다는 사실과 소요 시간은 기록하지만, 무엇이 돌아왔는지는 기록하지 않습니다.
- 인증 벽 뒤의 모든 것. 서버가 자격 증명을 요구하면 읽지 않은 채로 둡니다. 키를 찾아다니지 않습니다.
- 프록시를 거치는 모든 것. 도구 목록이 커넥터를 통해서만 닿는다면 목록만 읽고 멈춥니다. 도구를 호출하면 남의 할당량을 쓰게 되기 때문입니다.
그리고 우리가 틀렸을 때
최근 고장 났다고 표시해 온 서버 387대를 발견했습니다. 서버는 멀쩡했고, 잘못된 전송 방식을 말한 쪽은 우리였습니다. 공개적으로 측정하는 일의 정직한 면은, 자신의 실수마저 데이터의 일부가 된다는 것입니다. 그리고 그것을 공개적으로 바로잡는 일만이 나머지 전부를 신뢰할 만하게 만듭니다.
데이터를 직접 확인하기