MCP 의 revision 은 번호가 아니라 날짜야. 지금은 2025-11-25, 그 전은 2025-06-18, 또 그 전은 2025-03-26. 날짜로 판을 매기면 미덕이 둘 생겨. 이 변경이 v2 를 붙일 만큼 '큰지' 를 두고 아무도 다투지 않고, 지금 못박아둔 판이 얼마나 오래됐는지 누구나 한눈에 알아.
Revision 마다 spec 사이트에 자기 URL 이 하나씩 있고, 그 주소는 안 변해 (modelcontextprotocol.io/specification/2025-11-25). 한 번 나온 revision 은 그대로 굳어. 오타는 정오표 페이지로 가거나 다음 revision 에 반영되지, 슬쩍 고쳐지지 않아. 그래서 server 를 특정 revision 에 못박아두고 동작을 따져볼 수 있는 거야. '이 server 는 2025-11-25 를 따른다' 는 문장이 시간이 지나도 같은 뜻으로 남거든.
구현들은 initialize handshake 때 자기가 아는 가장 높은 revision 을 밝혀. 그 session 의 revision 은 양쪽 다 아는 것 중 가장 높은 게 되고. 새 revision 은 기능을 더하고 (CIMD, async task, extension 틀), 가끔 뭘 걷어내 (HTTP+SSE). 걷어낼 때도 언제나 다음 lesson 에서 볼 '나란히 두고, 시간을 주고, 그다음에' 라는 절제 안에서 움직여.