path-resolver.js•2.04 kB
import path from 'path';
import os from 'os';
export class PathResolver {
static getCursorExecutablePath() {
switch (process.platform) {
case 'win32':
return path.join(process.env.LOCALAPPDATA || '', 'Programs', 'cursor', 'Cursor.exe');
case 'darwin':
return '/Applications/Cursor.app/Contents/MacOS/Cursor';
case 'linux':
// Common Linux installation paths
const linuxPaths = [
path.join(os.homedir(), '.local', 'bin', 'cursor'),
'/usr/local/bin/cursor',
'/usr/bin/cursor'
];
// Return first existing path or default
return linuxPaths.find(p => {
try {
return require('fs').accessSync(p);
}
catch {
return false;
}
}) || linuxPaths[0];
default:
throw new Error(`Unsupported platform: ${process.platform}`);
}
}
static getDefaultWorkspacePath() {
switch (process.platform) {
case 'win32':
return path.join(os.homedir(), 'Documents', 'cursor-workspaces');
case 'darwin':
case 'linux':
return path.join(os.homedir(), '.cursor', 'workspaces');
default:
throw new Error(`Unsupported platform: ${process.platform}`);
}
}
static getConfigPath() {
switch (process.platform) {
case 'win32':
return path.join(process.env.APPDATA || '', 'cursor-mcp');
case 'darwin':
return path.join(os.homedir(), 'Library', 'Application Support', 'cursor-mcp');
case 'linux':
return path.join(os.homedir(), '.config', 'cursor-mcp');
default:
throw new Error(`Unsupported platform: ${process.platform}`);
}
}
}