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),
},
};
};