import { ReactElement } from 'react'; export interface MCPAgent { id: string; displayName: string; logo?: ReactElement; } import TraeLogo from '@/assets/logos/trae.svg?react'; import CursorLogo from '@/assets/logos/cursor.svg?react'; import ClaudeLogo from '@/assets/logos/claude_code.svg?react'; import WindsurfLogo from '@/assets/logos/windsurf.svg?react'; import ClineLogo from '@/assets/logos/cline.svg?react'; import RooCodeLogo from '@/assets/logos/roo_code.svg'; import { getBackendUrl } from '@/lib/utils/utils'; // import CodexLogo from '@/assets/logos/openai.svg?react'; export type PlatformType = 'macos-linux' | 'windows'; export const GenerateInstallCommand = (agent: MCPAgent, apiKey: string) => { return `npx @insforge/install --client ${agent.id} --env API_KEY=${apiKey} --env API_BASE_URL=${getBackendUrl()}`; }; export const MCP_AGENTS: MCPAgent[] = [ { id: 'cursor', displayName: 'Cursor', logo: , }, { id: 'claude-code', displayName: 'Claude Code', logo: , }, { id: 'trae', displayName: 'Trae', logo: , }, { id: 'cline', displayName: 'Cline', logo: , }, { id: 'windsurf', displayName: 'Windsurf', logo: , }, { id: 'roocode', displayName: 'Roo Code', logo: , }, // { // id: 'codex', // displayName: 'Codex', // logo: , // }, { id: 'mcp', displayName: 'MCP JSON', }, ]; // Core MCP server configuration builder export const createMCPServerConfig = ( apiKey: string, platform: PlatformType, apiBaseUrl?: string ) => { const env = { API_KEY: apiKey, API_BASE_URL: apiBaseUrl || window.location.origin, }; if (platform === 'windows') { return { command: 'cmd', args: ['/c', 'npx', '-y', '@insforge/mcp@latest'], env, }; } else { return { command: 'npx', args: ['-y', '@insforge/mcp@latest'], env, }; } }; // Full MCP configuration for AI assistants export const createMCPConfig = (apiKey: string, platform: PlatformType, apiBaseUrl?: string) => { return { mcpServers: { insforge: createMCPServerConfig(apiKey, platform, apiBaseUrl), }, }; };