import { Badge, Blockquote, Code, SimpleGrid, Stack, Text, Title, } from "@mantine/core"; import { CapabilityItem } from "../../atoms/CapabilityItem/CapabilityItem"; export interface CapabilityInfo { name: string; supported: boolean; count?: number; } export interface ServerInfoContentProps { name: string; version: string; protocolVersion: string; transport: string; serverCapabilities: CapabilityInfo[]; clientCapabilities: CapabilityInfo[]; instructions?: string; oauthDetails?: { authUrl?: string; scopes?: string[]; accessToken?: string }; } const ValueText = Text.withProps({ size: "sm", fw: 600, }); function formatScopes(scopes: string[]): string { return scopes.join(", "); } export function ServerInfoContent({ name, version, protocolVersion, transport, serverCapabilities, clientCapabilities, instructions, oauthDetails, }: ServerInfoContentProps) { return ( Server Information Name {name} Version {version} Protocol {protocolVersion} Transport {transport} Server Capabilities {serverCapabilities.map((cap) => ( ))} Client Capabilities {clientCapabilities.map((cap) => ( ))} {instructions && ( Server Instructions
{instructions}
)} {oauthDetails && ( OAuth Details {oauthDetails.authUrl && ( Auth URL {oauthDetails.authUrl} )} {oauthDetails.scopes && oauthDetails.scopes.length > 0 && ( Scopes {formatScopes(oauthDetails.scopes)} )} {oauthDetails.accessToken && ( Access Token {oauthDetails.accessToken} )} )}
); }