UNPKG

mcp-prompt-optimizer

Version:

Professional cloud-based MCP server for AI-powered prompt optimization with intelligent context detection, team collaboration, enterprise-grade features, startup validation, and robust API key management. Universal compatibility with Claude Desktop, Curso

143 lines (122 loc) • 6.77 kB
#!/usr/bin/env node /** * Check Status Utility for MCP Prompt Optimizer * Provides detailed status information about API key and service */ const CloudApiKeyManager = require('./api-key-manager'); async function checkStatus() { console.log('šŸ” MCP Prompt Optimizer - API Key Status Check\n'); try { // Get API key from environment let apiKey; try { apiKey = CloudApiKeyManager.getApiKey(); } catch (error) { console.error('āŒ No API key found\n'); console.log('šŸ“ Setup Instructions:'); console.log(' 1. Get your API key from: https://promptoptimizer-blog.vercel.app/pricing'); console.log(' 2. Set environment variable: export OPTIMIZER_API_KEY=sk-opt-your-key-here'); console.log(' 3. Add to Claude Desktop config:'); console.log(' {'); console.log(' "mcpServers": {'); console.log(' "prompt-optimizer": {'); console.log(' "command": "npx",'); console.log(' "args": ["mcp-prompt-optimizer"],'); console.log(' "env": {'); console.log(' "OPTIMIZER_API_KEY": "sk-opt-your-key-here"'); console.log(' }'); console.log(' }'); console.log(' }'); console.log(' }'); console.log('\nšŸ’° Pricing:'); console.log(' - Explorer ($2.99/mo): 5,000 optimizations'); console.log(' - Creator ($25.99/mo): 18,000 optimizations + team features'); console.log(' - Innovator ($69.99/mo): 75,000 optimizations + enterprise features'); process.exit(1); } // Create manager and validate key const manager = new CloudApiKeyManager(apiKey); console.log(`šŸ”‘ API Key: ${manager.formatKeyForDisplay()}`); console.log(`šŸ“” Backend: ${manager.backendUrl}\n`); console.log('ā³ Validating API key...'); const keyInfo = await manager.getApiKeyInfo(); if (!keyInfo.isValid) { console.error(`āŒ API Key Invalid: ${keyInfo.error}\n`); console.log('šŸ”§ Troubleshooting:'); console.log(' 1. Check your API key format (should start with sk-opt- or sk-team-)'); console.log(' 2. Verify your subscription is active at: https://promptoptimizer-blog.vercel.app/dashboard'); console.log(' 3. Get a new API key at: https://promptoptimizer-blog.vercel.app/pricing'); console.log(' 4. Contact support: support@promptoptimizer.help'); process.exit(1); } // Display status information console.log('āœ… API Key Status: VALID\n'); console.log('šŸ“Š Subscription Details:'); console.log(` Tier: ${keyInfo.tier.charAt(0).toUpperCase() + keyInfo.tier.slice(1)}`); console.log(` Type: ${keyInfo.keyType.charAt(0).toUpperCase() + keyInfo.keyType.slice(1)}`); if (keyInfo.quota.unlimited) { console.log(' Quota: Unlimited optimizations'); } else { console.log(` Quota: ${keyInfo.quota.used.toLocaleString()} / ${keyInfo.quota.limit.toLocaleString()} used`); console.log(` Remaining: ${keyInfo.quota.remaining.toLocaleString()} optimizations`); const usagePercent = (keyInfo.quota.used / keyInfo.quota.limit) * 100; if (usagePercent >= 90) { console.log(' Status: šŸ”“ Critical - Quota nearly exhausted'); } else if (usagePercent >= 75) { console.log(' Status: āš ļø Warning - High usage'); } else { console.log(' Status: āœ… Healthy'); } } console.log('\n✨ Available Features:'); const features = keyInfo.features; if (features.professional_optimization) console.log(' āœ… Professional AI optimization'); if (features.auto_save_templates) console.log(' āœ… Template auto-save'); if (features.template_search) console.log(' āœ… Template search'); if (features.optimization_insights) console.log(' āœ… Optimization insights'); // Get additional quota details try { console.log('\nā³ Getting detailed quota status...'); const quotaDetails = await manager.getQuotaStatus(); console.log('\nšŸ“ˆ Detailed Usage:'); if (quotaDetails.quota.unlimited) { console.log(' Monthly Usage: Unlimited'); } else { console.log(` Monthly Usage: ${quotaDetails.quota.usage_percentage}%`); console.log(` Reset Type: ${quotaDetails.quota.reset_type}`); } if (quotaDetails.api_key_type === 'team' && quotaDetails.team_info) { console.log('\nšŸ‘„ Team Information:'); console.log(` Team: ${quotaDetails.team_info.team_name || 'Unknown'}`); console.log(` Team ID: ${quotaDetails.team_info.team_id}`); } } catch (error) { console.warn(`\nāš ļø Could not get detailed quota status: ${error.message}`); } console.log('\nšŸš€ Quick Actions:'); console.log(' šŸ“Š Check quota: mcp-prompt-optimizer check-status'); console.log(' šŸ”‘ Validate key: mcp-prompt-optimizer validate-key'); console.log(' šŸ—‘ļø Clear cache: mcp-prompt-optimizer clear-cache'); console.log(' šŸ“ Dashboard: https://promptoptimizer-blog.vercel.app/dashboard'); if (!keyInfo.quota.unlimited && keyInfo.quota.remaining < keyInfo.quota.limit * 0.1) { console.log('\nšŸ’” Upgrade Suggestion:'); console.log(' Your quota is running low. Consider upgrading:'); console.log(' - Creator ($25.99/mo): 18,000 optimizations + team features'); console.log(' - Innovator ($69.99/mo): 75,000 optimizations + enterprise features'); console.log(' Upgrade at: https://promptoptimizer-blog.vercel.app/pricing'); } } catch (error) { console.error(`āŒ Status check failed: ${error.message}`); console.log('\nšŸ”§ Troubleshooting:'); console.log(' 1. Check your internet connection'); console.log(' 2. Verify backend URL is accessible'); console.log(' 3. Try clearing cache: mcp-prompt-optimizer clear-cache'); console.log(' 4. Contact support: support@promptoptimizer.help'); process.exit(1); } } // Run if called directly if (require.main === module) { checkStatus(); } module.exports = checkStatus;