From fca130bfc719cee60c2740a39667a7ea6b900490 Mon Sep 17 00:00:00 2001 From: MBorne Date: Mon, 3 Nov 2025 09:58:07 +0100 Subject: [PATCH] fix: define MCP name and version to avoid package.json lookup (refs #7) --- package-lock.json | 4 ++-- package.json | 2 +- src/index.ts | 17 ++++++++++++----- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index a0f38db..9eeb074 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ignfab/geocontext", - "version": "0.8.0", + "version": "0.8.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@ignfab/geocontext", - "version": "0.8.0", + "version": "0.8.1", "license": "MIT", "dependencies": { "@camptocamp/ogc-client": "^1.3.0", diff --git a/package.json b/package.json index 9186efd..18a240c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ignfab/geocontext", - "version": "0.8.0", + "version": "0.8.1", "description": "An experimental MCP server providing spatial context for LLM.", "type": "module", "bin": { diff --git a/src/index.ts b/src/index.ts index f0374a5..c432831 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,19 +1,24 @@ import { MCPServer } from "mcp-framework"; -import { dirname } from "path"; +import { dirname, join } from "path"; import { fileURLToPath } from "url"; +import { readFileSync } from "fs"; // Get the directory of the current module (dist directory) const __dirname = dirname(fileURLToPath(import.meta.url)); +// Get version from package.json +const pkgMetadata = JSON.parse(readFileSync(join(__dirname, '../package.json'), 'utf-8')); +const VERSION = pkgMetadata.version; + /** * Available transports */ -const TRANSPORTS : Record = { - 'stdio' : { +const TRANSPORTS: Record = { + 'stdio': { type: "stdio" }, - 'http' : { + 'http': { type: "http-stream", options: { port: 3000, @@ -28,12 +33,14 @@ const TRANSPORTS : Record = { async function main() { // get transport type from environment variable const TRANSPORT_TYPE = process.env.TRANSPORT_TYPE || "stdio"; - if ( TRANSPORT_TYPE !== "stdio" && TRANSPORT_TYPE !== "http" ){ + if (TRANSPORT_TYPE !== "stdio" && TRANSPORT_TYPE !== "http") { throw new Error(`Invalid transport type: ${TRANSPORT_TYPE}`); } // start MCP server const mcpServer = new MCPServer({ + name: 'geocontext', + version: VERSION, basePath: __dirname, transport: TRANSPORTS[TRANSPORT_TYPE], });