Skip to main content
Glama

Gemini MCP Server for Claude Desktop

test-file-upload.js3.34 kB
#!/usr/bin/env node /** * Test script for Gemini File API upload functionality * Tests the new resumable upload capability for large files */ // Manually set the environment variable from .env process.env.GEMINI_API_KEY = 'AIzaSyD6Ki3ZtL19-Km9y8EQcywZvHJLDiRDyNk'; const FileUploadService = require('./src/gemini/file-api/file-upload-service'); const config = require('./src/config'); const path = require('path'); const fs = require('fs'); // Get API key from config const API_KEY = config.API_KEY; if (!API_KEY || API_KEY === 'YOUR_GEMINI_API_KEY_HERE') { console.error('Error: GEMINI_API_KEY not found in config'); console.error('Config API_KEY value:', config.API_KEY); process.exit(1); } async function testFileUpload() { const uploadService = new FileUploadService(API_KEY); // Create a test file const testFilePath = path.join(__dirname, 'test-upload.txt'); const testContent = 'This is a test file for Gemini File API upload testing.\n'.repeat(100); fs.writeFileSync(testFilePath, testContent); console.log('Testing Gemini File API Upload...\n'); console.log('Using API Key:', API_KEY.substring(0, 10) + '...\n'); try { // Test 1: Upload a file console.log('1. Testing file upload...'); const uploadResult = await uploadService.uploadFile(testFilePath, 'Test Upload File'); console.log('✓ File uploaded successfully!'); console.log(` - Name: ${uploadResult.display_name}`); console.log(` - URI: ${uploadResult.uri}`); console.log(` - File ID: ${uploadResult.name}`); console.log(` - Size: ${(uploadResult.size_bytes / 1024).toFixed(2)}KB`); console.log(` - Expires: ${new Date(uploadResult.expiration_time).toLocaleString()}\n`); // Test 2: Get file info console.log('2. Testing get file info...'); const fileInfo = await uploadService.getFile(uploadResult.name); console.log('✓ File info retrieved successfully!'); console.log(` - State: ${fileInfo.state}`); console.log(` - Created: ${new Date(fileInfo.create_time).toLocaleString()}\n`); // Test 3: List files console.log('3. Testing list files...'); const fileList = await uploadService.listFiles(5); console.log(`✓ Found ${fileList.files ? fileList.files.length : 0} file(s)`); if (fileList.files && fileList.files.length > 0) { console.log(' Recent uploads:'); fileList.files.slice(0, 3).forEach(file => { console.log(` - ${file.display_name} (${(file.size_bytes / 1024).toFixed(2)}KB)`); }); } console.log(''); // Test 4: Delete file console.log('4. Testing file deletion...'); await uploadService.deleteFile(uploadResult.name); console.log('✓ File deleted successfully!\n'); // Clean up test file fs.unlinkSync(testFilePath); console.log('All tests passed! ✅'); console.log('\nThe Gemini File API integration is working correctly.'); console.log('You can now upload files up to 2GB for use with Gemini.'); } catch (error) { console.error('\nTest failed:', error.message); if (error.stack) { console.error('\nStack trace:', error.stack); } // Clean up test file if it exists if (fs.existsSync(testFilePath)) { fs.unlinkSync(testFilePath); } process.exit(1); } } // Run the test testFileUpload();

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/Garblesnarff/gemini-mcp-server'

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