import { SfCommand } from '@salesforce/sf-plugins-core'; export type SetupMcpResult = { mcpFile: string; serversAdded: string[]; cwd: string; writes?: Array<{ target: string; status: string; path?: string; error?: string; }>; }; export default class Mcp extends SfCommand { static readonly summary: string; static readonly description: string; static readonly examples: string[]; static readonly flags: { 'target-org': import("@oclif/core/interfaces").OptionFlag; profile: import("@oclif/core/interfaces").OptionFlag; 'all-toolsets': import("@oclif/core/interfaces").BooleanFlag; global: import("@oclif/core/interfaces").BooleanFlag; }; /** * Verifies that the `npx` executable is resolvable and returns the portable * command name to write into mcp.json. The returned value is always the bare * `'npx'` (never an absolute or platform-specific path) so the generated * mcp.json stays portable across machines and shells — an mcp.json carrying * `npx.cmd` or `C:\...\npx.cmd` would be wrong for a committed/shared config. * * Resolution is a presence check only: * 1. Checks if `npx` is invokable in PATH. * 2. Falls back to `which` / `where` lookup (catches Windows `.cmd` shims that * a shell-less `execFileSync('npx', ...)` cannot launch). * * Returns `'npx'` when found by either method, or null when npx is unavailable. */ static resolveNpxCommand(): string | null; private static spawnWebLogin; private static resolveToolsets; run(): Promise; private resolveOrgs; private listAuthenticatedOrgs; private offerWebLogin; /** * Detects which third-party MCP integrations are relevant for the active * profiles and prompts the user to configure them. Writes to all supported * LLM config targets (Cursor, VS Code, Windsurf, Claude Desktop, Claude Code). */ private configureThirdPartyMcps; private buildSelectedEntries; private writeMcpConfig; }