diff --git a/src/mcp-handler.ts b/src/mcp-handler.ts index 4385be2..e2994cc 100644 --- a/src/mcp-handler.ts +++ b/src/mcp-handler.ts @@ -149,7 +149,7 @@ export function initializeMcpServer(server: any, config: McpConfig = {}) { } // Register prompts to help users get started - server.prompt("web_search_help", "Get help with web search using Exa", {}, async () => { + server.prompt("web_search_help", "Get help with web search using Exa", async () => { return { messages: [ { diff --git a/tests/unit/mcp-handler.test.ts b/tests/unit/mcp-handler.test.ts index 4499b00..fff0e30 100644 --- a/tests/unit/mcp-handler.test.ts +++ b/tests/unit/mcp-handler.test.ts @@ -1,4 +1,5 @@ import { beforeEach, describe, expect, it, vi } from "vitest"; +import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { initializeMcpServer } from "../../src/mcp-handler.js"; import { FakeMcpServer } from "../helpers/fakeMcpServer.js"; @@ -44,6 +45,35 @@ describe("initializeMcpServer", () => { ); }); + it("accepts prompts/get for web_search_help when arguments are omitted", async () => { + const server = new McpServer({ name: "test-server", version: "1.0.0" }); + + initializeMcpServer(server); + + const getPromptHandler = (server.server as any)._requestHandlers.get("prompts/get"); + const result = await getPromptHandler( + { + method: "prompts/get", + params: { + name: "web_search_help", + }, + }, + { signal: new AbortController().signal }, + ); + + expect(result).toMatchObject({ + messages: [ + { + role: "user", + content: { + type: "text", + text: expect.stringContaining("search the web"), + }, + }, + ], + }); + }); + it("respects explicit tool selection and deprecated aliases", () => { const server = new FakeMcpServer();