diff --git a/src/server/mcp.test.ts b/src/server/mcp.test.ts index 10e550df4..4a7b2bb9d 100644 --- a/src/server/mcp.test.ts +++ b/src/server/mcp.test.ts @@ -937,24 +937,6 @@ describe("tool()", () => { }), ); - mcpServer.registerTool( - "test (new api)", - { - inputSchema: { - name: z.string(), - value: z.number(), - }, - }, - async ({ name, value }) => ({ - content: [ - { - type: "text", - text: `${name}: ${value}`, - }, - ], - }) - ); - const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair(); @@ -977,23 +959,15 @@ describe("tool()", () => { }, CallToolResultSchema, ), - ).rejects.toThrow(/Invalid arguments/); - - await expect( - client.request( + ).resolves.toStrictEqual({ + content: [ { - method: "tools/call", - params: { - name: "test (new api)", - arguments: { - name: "test", - value: "not a number", - }, - }, + type: "text", + text: expect.stringMatching(/Invalid arguments for tool test/), }, - CallToolResultSchema, - ), - ).rejects.toThrow(/Invalid arguments/); + ], + isError: true, + }); }); /*** diff --git a/src/server/mcp.ts b/src/server/mcp.ts index 791facef1..818c45cb3 100644 --- a/src/server/mcp.ts +++ b/src/server/mcp.ts @@ -162,10 +162,15 @@ export class McpServer { request.params.arguments, ); if (!parseResult.success) { - throw new McpError( - ErrorCode.InvalidParams, - `Invalid arguments for tool ${request.params.name}: ${parseResult.error.message}`, - ); + return { + content: [ + { + type: "text", + text: `Invalid arguments for tool ${request.params.name}: ${parseResult.error.message}`, + }, + ], + isError: true, + }; } const args = parseResult.data;