diff --git a/src/cocoindex_code/server.py b/src/cocoindex_code/server.py index ac6eacf..1edba8e 100644 --- a/src/cocoindex_code/server.py +++ b/src/cocoindex_code/server.py @@ -17,6 +17,7 @@ from mcp.server.mcpserver import MCPServer from pydantic import BaseModel, Field +from ._version import __version__ from .settings import DaemonSettings, load_user_settings _MCP_INSTRUCTIONS = ( @@ -60,7 +61,7 @@ class SearchResultModel(BaseModel): def create_mcp_server(project_root: str) -> MCPServer: """Create a lightweight MCP server that delegates to the daemon.""" - mcp = MCPServer("cocoindex-code", instructions=_MCP_INSTRUCTIONS) + mcp = MCPServer("cocoindex-code", instructions=_MCP_INSTRUCTIONS, version=__version__) @mcp.tool( name="search", diff --git a/tests/test_server.py b/tests/test_server.py index c60b74b..4248e39 100644 --- a/tests/test_server.py +++ b/tests/test_server.py @@ -2,6 +2,7 @@ from mcp import Client from cocoindex_code import client as daemon_client +from cocoindex_code._version import __version__ from cocoindex_code.protocol import SearchResponse from cocoindex_code.server import create_mcp_server @@ -29,3 +30,12 @@ async def test_mcp_server_uses_v2_protocol(monkeypatch: pytest.MonkeyPatch) -> N "offset": 0, "message": None, } + + +async def test_mcp_server_reports_own_version() -> None: + """The handshake advertises our version, not the SDK's or an empty string.""" + server = create_mcp_server(".") + async with Client(server, raise_exceptions=True) as client: + assert client.server_info is not None + assert client.server_info.name == "cocoindex-code" + assert client.server_info.version == __version__