Skip to content

fix(mcp): 서버가 자기 버전 대신 SDK 버전을 말하고 있었다 - #45

Merged
bhyi4 merged 1 commit into
mainfrom
fix/mcp-serverinfo-version
Aug 27, 2026
Merged

fix(mcp): 서버가 자기 버전 대신 SDK 버전을 말하고 있었다#45
bhyi4 merged 1 commit into
mainfrom
fix/mcp-serverinfo-version

Conversation

@bhyi4

@bhyi4 bhyi4 commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

FastMCP(1.27.2)에 version 인자가 없어 Server.versionNone 으로 남고, 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__ 0.2.11 ← 옳다
dist-info 0.1.0 ← 낡은 editable
mcp SDK 1.27.2 ← 옛 버그

값이 겹치면 assert 대신 skip 한다 — 분별 못 하는 초록은 증거가 아니다.

양성대조: 안 고친 맨 FastMCP 서버가 여전히 SDK 버전을 말하는지 매번 확인한다. FastMCP 가 기본값을 바꾸면 "이 패치를 재검토하라"실패한다.

교차 확인 (내 시험 말고 남의 계기로)

독립 판정선(mcp_serverinfo_probe.py)으로:

--selftest → 6/6 통과 (분모=6 · sdk=1.27.2)
--all      → mirror-stack 0.2.11 ⊕ 자기버전 · 0/4 가 SDK 버전을 말한다

⚠️ 분모: 그 4 는 한 기계의 MCP 설정 사거리다. FastMCP 서버 전체로는 다른 저장소 하나가 같은 증상으로 남아 있다(그쪽에 전달했다).

pytest 59 통과.

🤖 Generated with Claude Code

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>
@bhyi4
bhyi4 merged commit 3f16deb into main Aug 27, 2026
4 checks passed
@bhyi4
bhyi4 deleted the fix/mcp-serverinfo-version branch August 27, 2026 14:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant