@just-every/mcp-screenshot-website-fast
Version:
Fast screenshot capture tool for web pages - optimized for Claude Vision API
58 lines (50 loc) • 1.82 kB
JavaScript
import { fileURLToPath } from 'url';
import { dirname, join } from 'path';
import { existsSync } from 'fs';
import { toImportSpecifier } from './import-path.js';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const args = process.argv.slice(2);
async function main() {
// Default to 'serve' if no arguments provided (for MCP usage)
const command = args[0] || 'serve';
// Check if compiled dist exists
const distExists = existsSync(join(__dirname, '..', 'dist'));
if (distExists) {
// Use compiled JavaScript for production (fast startup)
if (command === 'serve') {
const servePath = join(__dirname, '..', 'dist', 'serve-restart.js');
await import(toImportSpecifier(servePath));
} else {
const cliPath = join(__dirname, '..', 'dist', 'index.js');
await import(toImportSpecifier(cliPath));
}
} else {
// Fall back to TypeScript with tsx for development
try {
await import('tsx/esm');
if (command === 'serve') {
const servePath = join(
__dirname,
'..',
'src',
'serve-restart.ts'
);
await import(toImportSpecifier(servePath));
} else {
const cliPath = join(__dirname, '..', 'src', 'index.ts');
await import(toImportSpecifier(cliPath));
}
} catch {
console.error(
'Error: Development dependencies not installed. Please run "npm install" first.'
);
process.exit(1);
}
}
}
main().catch(err => {
console.error('Error:', err);
process.exit(1);
});