fix(mcp): 서버가 자기 버전 대신 SDK 버전을 말하고 있었다 - #45
Merged
Conversation
FastMCP(1.27.2)에는 `version` 인자가 없다. 그래서 `Server.version` 이 None 으로
남고, lowlevel 서버는 `initialize` 응답에 `pkg_version("mcp")` 를 싣는다 —
**모든 FastMCP 서버가 SDK 버전을 자기 것이라고 말한다.** 우리 서버는 `1.27.2`
라고 답하고 있었다.
08-24 외부 버그리포트가 윈도우에서 다른 숫자(1.29.0)를 보고 플랫폼 차이로
읽었다. 거기서도 그건 그냥 그 기계의 SDK 버전이었다.
🔴 `importlib.metadata.version("mirror-stack-mcp")` 로는 안 고쳤다. 이 기계의
editable 설치는 dist-info 에 **0.1.0** 이 박혀 있는데 소스는 0.2.11 이다.
그 길로 가면 틀린 숫자를 다른 틀린 숫자로 바꾸고 고쳐진 것처럼 보인다.
기제 확인·판정선은 [인프라] 가 만들었다(mcp_serverinfo_probe.py · selftest 6/6).
이 레포는 공개 패키지라 그쪽이 안 건드리고 넘겼다.
시험 7건 신설. **속성이 아니라 클라이언트가 실제 받는 값**
(`create_initialization_options()`)을 본다 — 속성을 대 봐야 배달을 증명 못 한다.
세 후보값이 전부 달라서(소스 0.2.11 · dist-info 0.1.0 · SDK 1.27.2) 시험이
분별력을 가진다. 양성대조도 넣었다: 안 고친 맨 FastMCP 서버가 여전히 SDK
버전을 말하는지 매번 확인한다 — 아니게 되면 이 패치를 재검토하라고 알린다.
실측(왕복 실호출 · [인프라] 판정선 --all): mirror-stack 0.2.11 ⊕ 자기버전.
⚠️ 분모는 .mcp.json 의 4개다. 같은 증상인 [여울] `yeoul-mcp` 는 그쪽 레포다.
pytest 59 통과.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
FastMCP(1.27.2)에
version인자가 없어Server.version이None으로 남고, lowlevel 서버가initialize응답에pkg_version("mcp")를 싣는다. ⇒ 모든 FastMCP 서버가 SDK 버전을 자기 것이라고 말한다. 우리 서버는1.27.2라고 답하고 있었다.08-24 외부 버그리포트가 윈도우에서 다른 숫자(1.29.0)를 보고 플랫폼 차이로 읽었다. 거기서도 그건 그냥 그 기계의 SDK 버전이었다.
고침
FastMCP생성 직후mcp._mcp_server.version = __version__.initialize가 이 값을 늦게 읽으므로 생성 후 대입으로 충분하다.🔴
importlib.metadata.version("mirror-stack-mcp")로는 안 고쳤다. editable 설치에서는 dist-info 에0.1.0이 박혀 있는데 소스는0.2.11이다. 그 길로 가면 틀린 숫자를 다른 틀린 숫자로 바꾸고 고쳐진 것처럼 보인다. 소스의__version__이 패키지가 실제로 들고 다니는 유일한 진실이다.시험 7건 — 속성이 아니라 클라이언트가 받는 값을 본다
mcp._mcp_server.version을 대 보는 건 배달 증명이 아니라서,create_initialization_options()가 실제로 내는 값을 본다.세 후보값이 전부 달라 시험이 분별력을 갖는다:
__version__값이 겹치면
assert대신 skip 한다 — 분별 못 하는 초록은 증거가 아니다.⊕ 양성대조: 안 고친 맨
FastMCP서버가 여전히 SDK 버전을 말하는지 매번 확인한다. FastMCP 가 기본값을 바꾸면 "이 패치를 재검토하라" 로 실패한다.교차 확인 (내 시험 말고 남의 계기로)
독립 판정선(
mcp_serverinfo_probe.py)으로:4는 한 기계의 MCP 설정 사거리다. FastMCP 서버 전체로는 다른 저장소 하나가 같은 증상으로 남아 있다(그쪽에 전달했다).pytest 59 통과.🤖 Generated with Claude Code