From 635a9a18f0a82ad4d2fd4e240378d6c17eb1c1c0 Mon Sep 17 00:00:00 2001 From: evalstate <1936278+evalstate@users.noreply.github.com> Date: Thu, 27 Nov 2025 19:41:40 +0000 Subject: [PATCH] zod4 compatibility fixed for CI --- client/src/App.tsx | 8 ++++++-- client/src/components/ToolResults.tsx | 4 ++-- client/src/components/ui/button.tsx | 3 ++- client/src/lib/hooks/useConnection.ts | 9 ++++++--- client/src/lib/notificationTypes.ts | 4 ++-- 5 files changed, 18 insertions(+), 10 deletions(-) diff --git a/client/src/App.tsx b/client/src/App.tsx index fda6b2a8..abb14fbb 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -18,6 +18,10 @@ import { LoggingLevel, } from "@modelcontextprotocol/sdk/types.js"; import { OAuthTokensSchema } from "@modelcontextprotocol/sdk/shared/auth.js"; +import type { + AnySchema, + SchemaOutput, +} from "@modelcontextprotocol/sdk/server/zod-compat.js"; import { SESSION_KEYS, getServerSpecificKey } from "./lib/constants"; import { hasValidMetaName, @@ -687,11 +691,11 @@ const App = () => { setErrors((prev) => ({ ...prev, [tabKey]: null })); }; - const sendMCPRequest = async ( + const sendMCPRequest = async ( request: ClientRequest, schema: T, tabKey?: keyof typeof errors, - ) => { + ): Promise> => { try { const response = await makeRequest(request, schema); if (tabKey !== undefined) { diff --git a/client/src/components/ToolResults.tsx b/client/src/components/ToolResults.tsx index b52acc7d..8cdf38b9 100644 --- a/client/src/components/ToolResults.tsx +++ b/client/src/components/ToolResults.tsx @@ -80,8 +80,8 @@ const ToolResults = ({

Invalid Tool Result:

Errors:

- {parsedResult.error.errors.map((error, idx) => ( - + {parsedResult.error.issues.map((issue, idx) => ( + ))} ); diff --git a/client/src/components/ui/button.tsx b/client/src/components/ui/button.tsx index 8e435c3c..bd9a003c 100644 --- a/client/src/components/ui/button.tsx +++ b/client/src/components/ui/button.tsx @@ -35,7 +35,8 @@ const buttonVariants = cva( ); export interface ButtonProps - extends React.ButtonHTMLAttributes, + extends + React.ButtonHTMLAttributes, VariantProps { asChild?: boolean; } diff --git a/client/src/lib/hooks/useConnection.ts b/client/src/lib/hooks/useConnection.ts index c012c3e3..6705916a 100644 --- a/client/src/lib/hooks/useConnection.ts +++ b/client/src/lib/hooks/useConnection.ts @@ -31,10 +31,13 @@ import { LoggingLevel, ElicitRequestSchema, } from "@modelcontextprotocol/sdk/types.js"; +import type { + AnySchema, + SchemaOutput, +} from "@modelcontextprotocol/sdk/server/zod-compat.js"; import { RequestOptions } from "@modelcontextprotocol/sdk/shared/protocol.js"; import { useEffect, useState } from "react"; import { useToast } from "@/lib/hooks/useToast"; -import { z } from "zod"; import { ConnectionStatus, CLIENT_IDENTITY } from "../constants"; import { Notification } from "../notificationTypes"; import { @@ -166,11 +169,11 @@ export function useConnection({ ]); }; - const makeRequest = async ( + const makeRequest = async ( request: ClientRequest, schema: T, options?: RequestOptions & { suppressToast?: boolean }, - ): Promise> => { + ): Promise> => { if (!mcpClient) { throw new Error("MCP client not connected"); } diff --git a/client/src/lib/notificationTypes.ts b/client/src/lib/notificationTypes.ts index a956452a..e7cc1cb5 100644 --- a/client/src/lib/notificationTypes.ts +++ b/client/src/lib/notificationTypes.ts @@ -3,10 +3,10 @@ import { ClientNotificationSchema, ServerNotificationSchema, } from "@modelcontextprotocol/sdk/types.js"; -import { z } from "zod"; +import type { SchemaOutput } from "@modelcontextprotocol/sdk/server/zod-compat.js"; export const NotificationSchema = ClientNotificationSchema.or( ServerNotificationSchema, ).or(BaseNotificationSchema); -export type Notification = z.infer; +export type Notification = SchemaOutput;