Skip to main content
Glama
debug-mcp-call.js3.83 kB
#!/usr/bin/env node /** * Debug MCP Tool Call * Simulates calling upload_vehicle_images_from_data to help debug issues */ require('dotenv').config(); const { TestUtils, TEST_DATA } = require('./tests/config/test-config'); // Simple test image as base64 (1x1 red pixel PNG) const TEST_IMAGE_BASE64 = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChAI9h2/M8AAAAABJRU5ErkJggg=='; async function debugMCPCall() { console.log('🔍 Debug MCP Call: upload_vehicle_images_from_data\n'); TestUtils.setupEnvironment(); try { // Import the tool handler directly const toolHandlers = require('./src/index'); // Test vehicle ID (you can change this) const testVehicleId = 9700534; // From our test above console.log('Simulating MCP call with data:'); const args = { vehicleId: testVehicleId, imageData: [ { data: TEST_IMAGE_BASE64, mimeType: 'image/png', filename: 'debug_test.png' } ], mainImageIndex: 0 }; console.log('Args:', JSON.stringify(args, null, 2)); console.log('\nCalling upload_vehicle_images_from_data...\n'); // This would be called by the MCP server const result = await toolHandlers.upload_vehicle_images_from_data(args); console.log('✅ MCP Call successful!'); console.log('Result:', JSON.stringify(result, null, 2)); } catch (error) { console.error('❌ MCP Call failed:', error.message); console.error('Stack:', error.stack); // Common debugging tips console.log('\n🔧 Debugging tips:'); console.log('1. Check if base64 data is complete (no truncation)'); console.log('2. Verify vehicle ID exists'); console.log('3. Check environment variables'); console.log('4. Ensure imageData array has required fields: data, mimeType'); if (error.message.includes('vehicle')) { console.log('💡 Vehicle-related error - try a different vehicle ID'); } if (error.message.includes('base64')) { console.log('💡 Base64 error - check data format'); } if (error.message.includes('401') || error.message.includes('auth')) { console.log('💡 Authentication error - check credentials'); } } } // Test with different scenarios async function testScenarios() { console.log('🧪 Testing different scenarios:\n'); // Scenario 1: Valid data console.log('Scenario 1: Valid data'); await debugMCPCall(); // Scenario 2: Invalid vehicle ID console.log('\n\nScenario 2: Invalid vehicle ID'); try { const { upload_vehicle_images_from_data } = require('./src/index'); await upload_vehicle_images_from_data({ vehicleId: 999999999, imageData: [{ data: TEST_IMAGE_BASE64, mimeType: 'image/png' }] }); } catch (error) { console.log('Expected error:', error.message); } // Scenario 3: Missing imageData console.log('\n\nScenario 3: Missing imageData'); try { const { upload_vehicle_images_from_data } = require('./src/index'); await upload_vehicle_images_from_data({ vehicleId: 9700534 // Missing imageData }); } catch (error) { console.log('Expected error:', error.message); } // Scenario 4: Invalid base64 console.log('\n\nScenario 4: Invalid base64'); try { const { upload_vehicle_images_from_data } = require('./src/index'); await upload_vehicle_images_from_data({ vehicleId: 9700534, imageData: [{ data: 'invalid-base64', mimeType: 'image/png' }] }); } catch (error) { console.log('Expected error:', error.message); } } if (require.main === module) { const args = process.argv.slice(2); if (args.includes('--scenarios')) { testScenarios(); } else { debugMCPCall(); } } module.exports = { debugMCPCall };

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/loukach/stockspark-mcp-poc'

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