Эх сурвалжийг харах

fix(mcp): read version from package.json instead of hardcoding (#431)

Oliver Ratzesberger 1 сар өмнө
parent
commit
021236378b
1 өөрчлөгдсөн 13 нэмэгдсэн , 1 устгасан
  1. 13 1
      src/mcp/server.ts

+ 13 - 1
src/mcp/server.ts

@@ -9,6 +9,8 @@
 
 import { createServer, type IncomingMessage, type ServerResponse } from "node:http";
 import { randomUUID } from "node:crypto";
+import { readFileSync } from "node:fs";
+import { join, dirname } from "node:path";
 import { fileURLToPath } from "url";
 import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
 import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
@@ -80,6 +82,16 @@ function formatSearchSummary(results: SearchResultItem[], query: string): string
   return lines.join('\n');
 }
 
+function getPackageVersion(): string {
+  try {
+    const pkgPath = join(dirname(fileURLToPath(import.meta.url)), "../../package.json");
+    const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
+    return pkg.version ?? "unknown";
+  } catch {
+    return "unknown";
+  }
+}
+
 // =============================================================================
 // MCP Server
 // =============================================================================
@@ -157,7 +169,7 @@ async function buildInstructions(store: QMDStore): Promise<string> {
  */
 async function createMcpServer(store: QMDStore): Promise<McpServer> {
   const server = new McpServer(
-    { name: "qmd", version: "0.9.9" },
+    { name: "qmd", version: getPackageVersion() },
     { instructions: await buildInstructions(store) },
   );