import { MCPIcon } from '@librechat/client'; import { PermissionTypes, Permissions } from 'librechat-data-provider'; import type { MCPServerStatusIconProps } from '~/components/MCP/MCPServerStatusIcon'; import type { MCPServerDefinition } from '~/hooks'; import { useLocalize, useHasAccess } from '~/hooks'; import MCPServerCard from './MCPServerCard'; interface MCPServerListProps { servers: MCPServerDefinition[]; getServerStatusIconProps: (serverName: string) => MCPServerStatusIconProps; isFiltered?: boolean; } /** * Renders a list of MCP server cards with empty state handling */ export default function MCPServerList({ servers, getServerStatusIconProps, isFiltered = false, }: MCPServerListProps) { const localize = useLocalize(); const canCreateEditMCPs = useHasAccess({ permissionType: PermissionTypes.MCP_SERVERS, permission: Permissions.CREATE, }); if (servers.length === 0) { return (
{isFiltered ? (

{localize('com_ui_no_mcp_servers_match')}

) : ( <>

{localize('com_ui_no_mcp_servers')}

{localize('com_ui_add_first_mcp_server')}

)}
); } return (
{servers.map((server) => (
))}
); }