From 5daa3eff734ade1d35011d19ca1edf0e7bce2583 Mon Sep 17 00:00:00 2001 From: Dani <93452665+dani1005@users.noreply.github.com> Date: Fri, 9 Oct 2026 17:27:16 -0400 Subject: [PATCH] Report the package version in the MCP handshake FastMCP takes no version argument, so serverInfo.version carried the mcp library's own version (1.30.0 in everos-mcp 0.1.0). Set it on the low-level server from __version__. Co-Authored-By: Claude Opus 5.5 (1M context) --- src/everos_mcp/server.py | 4 ++++ tests/test_everos_mcp.py | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/everos_mcp/server.py b/src/everos_mcp/server.py index 3b3fc65..3c3034c 100644 --- a/src/everos_mcp/server.py +++ b/src/everos_mcp/server.py @@ -19,6 +19,7 @@ from starlette.responses import JSONResponse, PlainTextResponse, Response from starlette.types import ASGIApp, Message, Receive, Scope, Send +from . import __version__ from .client import EverOSClient, EverOSError, now_ms from .config import ConfigError, Settings, base_url_from_env from .conversation import Conversation, ConversationRegistry @@ -88,6 +89,9 @@ def _data(body: str) -> str: _registry: ConversationRegistry | None = None mcp = FastMCP(name="everos", instructions=INSTRUCTIONS) +# FastMCP takes no version, so without this the handshake reports the mcp +# library's own version as ours. +mcp._mcp_server.version = __version__ def _local_conversation() -> Conversation: diff --git a/tests/test_everos_mcp.py b/tests/test_everos_mcp.py index 7e98b4c..44c0a7f 100644 --- a/tests/test_everos_mcp.py +++ b/tests/test_everos_mcp.py @@ -11,7 +11,7 @@ import httpx import pytest -from everos_mcp import server +from everos_mcp import __version__, server from everos_mcp.client import EverOSClient, EverOSError from everos_mcp.config import ConfigError, Settings from everos_mcp.conversation import Conversation, ConversationRegistry @@ -406,6 +406,12 @@ def test_tools_registered_with_annotations(): assert tools["add_memory"].annotations.destructiveHint is False +def test_handshake_reports_package_version(): + options = mcp._mcp_server.create_initialization_options() + assert options.server_name == "everos" + assert options.server_version == __version__ + + def test_tool_descriptions_keep_model_guidance(): """Tool descriptions are our API to the model — losing a guidance phrase is a regression nothing else would catch."""