import React from "react"; import { useTranslation } from "react-i18next"; import { MCPConfig, MCPSSEServer, MCPStdioServer } from "#/types/settings"; import { I18nKey } from "#/i18n/declaration"; interface MCPConfigViewerProps { mcpConfig?: MCPConfig; } interface SSEServerDisplayProps { server: string | MCPSSEServer; } function SSEServerDisplay({ server }: SSEServerDisplayProps) { const { t } = useTranslation(); if (typeof server === "string") { return (
{t(I18nKey.SETTINGS$MCP_URL)}:{" "} {server}
); } return (
{t(I18nKey.SETTINGS$MCP_URL)}:{" "} {server.url}
{server.api_key && (
{t(I18nKey.SETTINGS$MCP_API_KEY)}: {" "} {server.api_key ? "Set" : t(I18nKey.SETTINGS$MCP_API_KEY_NOT_SET)}
)}
); } interface StdioServerDisplayProps { server: MCPStdioServer; } function StdioServerDisplay({ server }: StdioServerDisplayProps) { const { t } = useTranslation(); return (
{t(I18nKey.SETTINGS$MCP_NAME)}:{" "} {server.name}
{t(I18nKey.SETTINGS$MCP_COMMAND)}:{" "} {server.command}
{server.args && server.args.length > 0 && (
{t(I18nKey.SETTINGS$MCP_ARGS)}:{" "} {server.args.join(" ")}
)} {server.env && Object.keys(server.env).length > 0 && (
{t(I18nKey.SETTINGS$MCP_ENV)}:{" "} {Object.entries(server.env) .map(([key, value]) => `${key}=${value}`) .join(", ")}
)}
); } export function MCPConfigViewer({ mcpConfig }: MCPConfigViewerProps) { const { t } = useTranslation(); if ( !mcpConfig || (mcpConfig.sse_servers.length === 0 && mcpConfig.stdio_servers.length === 0) ) { return null; } return (

{t(I18nKey.SETTINGS$MCP_CONFIGURATION)}

e.stopPropagation()} > {t(I18nKey.SETTINGS$MCP_LEARN_MORE)}
{mcpConfig.sse_servers.length > 0 && (

{t(I18nKey.SETTINGS$MCP_SSE_SERVERS)}{" "} ({mcpConfig.sse_servers.length})

{mcpConfig.sse_servers.map((server, index) => ( ))}
)} {mcpConfig.stdio_servers.length > 0 && (

{t(I18nKey.SETTINGS$MCP_STDIO_SERVERS)}{" "} ({mcpConfig.stdio_servers.length})

{mcpConfig.stdio_servers.map((server, index) => ( ))}
)}
); }