Merge branch 'main' into jesselumarie/test-SEP-974

This commit is contained in:
Cliff Hall 2025-12-01 14:13:47 -05:00 • committed by GitHub
commit 7b644f9f99
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 272 additions and 100 deletions

View file

@ -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,
@ -688,11 +692,11 @@ const App = () => {
setErrors((prev) => ({ ...prev, [tabKey]: null }));
};
const sendMCPRequest = async <T extends z.ZodType>(
const sendMCPRequest = async <T extends AnySchema>(
request: ClientRequest,
schema: T,
tabKey?: keyof typeof errors,
) => {
): Promise<SchemaOutput<T>> => {
try {
const response = await makeRequest(request, schema);
if (tabKey !== undefined) {

View file

@ -80,8 +80,8 @@ const ToolResults = ({
<h4 className="font-semibold mb-2">Invalid Tool Result:</h4>
<JsonView data={toolResult} />
<h4 className="font-semibold mb-2">Errors:</h4>
{parsedResult.error.errors.map((error, idx) => (
<JsonView data={error} key={idx} />
{parsedResult.error.issues.map((issue, idx) => (
<JsonView data={issue} key={idx} />
))}
</>
);

View file

@ -35,7 +35,8 @@ const buttonVariants = cva(
);
export interface ButtonProps
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
extends
React.ButtonHTMLAttributes<HTMLButtonElement>,
VariantProps<typeof buttonVariants> {
asChild?: boolean;
}

View file

@ -32,10 +32,13 @@ import {
ElicitRequestSchema,
Implementation,
} 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 {
@ -170,11 +173,11 @@ export function useConnection({
]);
};
const makeRequest = async <T extends z.ZodType>(
const makeRequest = async <T extends AnySchema>(
request: ClientRequest,
schema: T,
options?: RequestOptions & { suppressToast?: boolean },
): Promise<z.output<T>> => {
): Promise<SchemaOutput<T>> => {
if (!mcpClient) {
throw new Error("MCP client not connected");
}

View file

@ -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<typeof NotificationSchema>;
export type Notification = SchemaOutput<typeof NotificationSchema>;