Skip to main content
Glama
test-instance-discovery.cjs5.36 kB
const axios = require('axios'); const baseURL = 'https://aws-pricing.umbrellacost.io'; async function testInstanceDiscovery() { console.log('='.repeat(80)); console.log('Testing Instance Type Discovery'); console.log(`Base URL: ${baseURL}`); console.log('='.repeat(80)); // Test 1: List all EC2 instances in us-east-1 console.log('\n1. Testing list_instance_types - AWS EC2 in us-east-1'); try { const response = await axios.get(`${baseURL}/provider-cost`, { params: { provider: 'AWS', serviceCode: 'AmazonEC2', regionCode: 'us-east-1' }, timeout: 15000 }); console.log('✅ Success!'); console.log(`Found ${response.data.length} EC2 instance types`); // Show first 5 instances console.log('\nFirst 5 instances:'); response.data.slice(0, 5).forEach(instance => { console.log(` - ${instance.InstanceType}: $${instance.OnDemandHour}/hour`); }); // Show some t2 instances const t2Instances = response.data.filter(i => i.InstanceType && i.InstanceType.startsWith('t2')); console.log(`\nFound ${t2Instances.length} t2 instances`); t2Instances.slice(0, 3).forEach(instance => { console.log(` - ${instance.InstanceType}: $${instance.OnDemandHour}/hour`); }); } catch (error) { console.log('❌ Error:', error.response?.status, error.message); } // Test 2: List all RDS instances in us-east-1 console.log('\n2. Testing list_instance_types - AWS RDS in us-east-1'); try { const response = await axios.get(`${baseURL}/provider-cost`, { params: { provider: 'AWS', serviceCode: 'AmazonRDS', regionCode: 'us-east-1' }, timeout: 15000 }); console.log('✅ Success!'); console.log(`Found ${response.data.length} RDS instance types`); // Show first 5 RDS instances console.log('\nFirst 5 RDS instances:'); response.data.slice(0, 5).forEach(instance => { console.log(` - ${instance.InstanceType}: $${instance.OnDemandHour}/hour`); }); // Show r5 RDS instances const r5Instances = response.data.filter(i => i.InstanceType && i.InstanceType.includes('r5')); console.log(`\nFound ${r5Instances.length} r5 RDS instances`); r5Instances.slice(0, 5).forEach(instance => { console.log(` - ${instance.InstanceType}: $${instance.OnDemandHour}/hour`); }); } catch (error) { console.log('❌ Error:', error.response?.status, error.message); } // Test 3: List instance family types - t3 family console.log('\n3. Testing list_instance_family_types - t3 family'); try { const response = await axios.get(`${baseURL}/instance-family-types/AmazonEC2/t3`, { timeout: 10000 }); console.log('✅ Success!'); console.log(`Found ${response.data.length} instance types in t3 family`); console.log('All t3 instances:', response.data.join(', ')); } catch (error) { console.log('❌ Error:', error.response?.status, error.message); } // Test 4: List instance family types - m5 family console.log('\n4. Testing list_instance_family_types - m5 family'); try { const response = await axios.get(`${baseURL}/instance-family-types/AmazonEC2/m5`, { timeout: 10000 }); console.log('✅ Success!'); console.log(`Found ${response.data.length} instance types in m5 family`); console.log('All m5 instances:', response.data.join(', ')); } catch (error) { console.log('❌ Error:', error.response?.status, error.message); } // Test 5: List instance family types - r5 RDS family console.log('\n5. Testing list_instance_family_types - db.r5 RDS family'); try { const response = await axios.get(`${baseURL}/instance-family-types/AmazonRDS/db.r5`, { timeout: 10000 }); console.log('✅ Success!'); console.log(`Found ${response.data.length} instance types in db.r5 family`); console.log('All db.r5 instances:', response.data.join(', ')); } catch (error) { console.log('❌ Error:', error.response?.status, error.message); } // Test 6: Azure Virtual Machines console.log('\n6. Testing list_instance_types - Azure Virtual Machines in eastus'); try { const response = await axios.get(`${baseURL}/provider-cost`, { params: { provider: 'Azure', serviceCode: 'Virtual Machines', regionCode: 'eastus' }, timeout: 15000 }); console.log('✅ Success!'); console.log(`Found ${response.data.length} Azure VM instance types`); // Show first 10 instances console.log('\nFirst 10 Azure VMs:'); response.data.slice(0, 10).forEach(instance => { if (instance.InstanceType && instance.OnDemandHour) { console.log(` - ${instance.InstanceType}: $${instance.OnDemandHour}/hour`); } }); } catch (error) { console.log('❌ Error:', error.response?.status, error.message); } console.log('\n' + '='.repeat(80)); console.log('Testing Complete!'); console.log('\n💡 Usage Examples:'); console.log(' - To discover all EC2 instances: list_instance_types(AWS, AmazonEC2, us-east-1)'); console.log(' - To find all t3 variants: list_instance_family_types(AmazonEC2, t3)'); console.log(' - To see all RDS r5 instances: list_instance_family_types(AmazonRDS, db.r5)'); console.log('='.repeat(80)); } testInstanceDiscovery().catch(console.error);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/daviddraiumbrella/invoice-monitoring'

If you have feedback or need assistance with the MCP directory API, please join our Discord server