rea/tests/fixtures/mcpToolError.ts

17 lines
654 B
TypeScript

import type { CallToolResult } from "@modelcontextprotocol/server";
import { expect } from "vitest";
import { z } from "zod";
import { analysisErrorProjectionSchema } from "../../src/contracts/errorSchemas.js";
/** Read and validate the complete typed diagnostic in an MCP tool failure. */
export function parseMcpToolError(result: CallToolResult) {
expect(result.isError).toBe(true);
const text = result.content.find((item) => item.type === "text");
if (text?.type !== "text") throw new Error("Tool error omitted text content");
return z
.object({ error: analysisErrorProjectionSchema })
.strict()
.parse(JSON.parse(text.text));
}