From 96e9f09e1bac530cd92d21c7a50e037c40fa216d Mon Sep 17 00:00:00 2001 From: "Molecule AI Dev Engineer A (Kimi)" Date: Sat, 6 Jun 2026 06:56:12 +0000 Subject: [PATCH] =?UTF-8?q?chore(naming):=20distinct=20MCP=20server=20name?= =?UTF-8?q?s=20=E2=80=94=20molecule-a2a=20vs=20molecule-platform?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rename server registrations so sessions can tell which capability is present: - Default/A2A mode: 'molecule' → 'molecule-a2a' - Management mode: 'molecule-management' → 'molecule-platform' Also updates README management host config key. Adds regression tests asserting the correct server name per MOLECULE_MCP_MODE. Fixes molecule-ai/molecule-mcp-server#38 --- README.md | 2 +- src/__tests__/index.test.ts | 21 +++++++++++++++++++++ src/index.ts | 2 +- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9cc559d..ccd5cd9 100644 --- a/README.md +++ b/README.md @@ -182,7 +182,7 @@ org-key MCP. ```json { "mcpServers": { - "molecule-management": { + "molecule-platform": { "command": "node", "args": ["./mcp-server/dist/index.js"], "env": { diff --git a/src/__tests__/index.test.ts b/src/__tests__/index.test.ts index 5791c6f..b2ed924 100644 --- a/src/__tests__/index.test.ts +++ b/src/__tests__/index.test.ts @@ -12,7 +12,9 @@ // without reaching into the real SDK's private `_registeredTools` field. jest.mock("@modelcontextprotocol/sdk/server/mcp.js", () => ({ McpServer: class { + name: string; registeredToolNames: string[] = []; + constructor(args: { name: string }) { this.name = args.name; } tool(name: string) { this.registeredToolNames.push(name); } connect() { return Promise.resolve(); } }, @@ -1126,12 +1128,31 @@ describe("handleGetModel()", () => { // ============================================================ describe("createServer()", () => { + const savedMode = process.env.MOLECULE_MCP_MODE; + + afterEach(() => { + if (savedMode === undefined) delete process.env.MOLECULE_MCP_MODE; + else process.env.MOLECULE_MCP_MODE = savedMode; + }); + test("returns an McpServer instance", () => { const server = createServer(); expect(server).toBeDefined(); expect(typeof server.connect).toBe("function"); }); + test("names the A2A/channel server 'molecule-a2a' in default mode", () => { + delete process.env.MOLECULE_MCP_MODE; + const server = createServer() as unknown as { name: string }; + expect(server.name).toBe("molecule-a2a"); + }); + + test("names the management server 'molecule-platform' when MOLECULE_MCP_MODE=management", () => { + process.env.MOLECULE_MCP_MODE = "management"; + const server = createServer() as unknown as { name: string }; + expect(server.name).toBe("molecule-platform"); + }); + // Smoke test: every registerXxxTools(srv) wiring in createServer() runs, // and each tool() call is recorded by the mocked McpServer above. If a // future PR adds a tool file but forgets to call its registerXxxTools diff --git a/src/index.ts b/src/index.ts index 5524920..2dfe610 100644 --- a/src/index.ts +++ b/src/index.ts @@ -242,7 +242,7 @@ export function isManagementMode(): boolean { export function createServer() { const srv = new McpServer({ - name: isManagementMode() ? "molecule-management" : "molecule", + name: isManagementMode() ? "molecule-platform" : "molecule-a2a", version: "1.0.0", }); -- 2.52.0