Skip to main content
Glama

Gemini MCP Server for Claude Desktop

test-tool-intelligence-full.js5.33 kB
#!/usr/bin/env node /** * Manual test for Gemini MCP server with Tool Intelligence * This tests all the enhancement scenarios */ const { spawn } = require('child_process'); const path = require('path'); console.log('=== Testing Gemini MCP Server with Smart Tool Intelligence ===\n'); // Start the server const server = spawn('node', [path.join(__dirname, 'gemini-server.js')], { env: { ...process.env, GEMINI_API_KEY: 'AIzaSyD6Ki3ZtL19-Km9y8EQcywZvHJLDiRDyNk', DEBUG: 'true', OUTPUT_DIR: path.join(process.env.HOME, 'Claude', 'gemini-images'), }, }); const testResults = []; // Handle stderr (debug output) server.stderr.on('data', (data) => { const output = data.toString().trim(); if (output.includes('[tool-intelligence]') || output.includes('Tool Intelligence')) { console.log(`✓ Tool Intelligence: ${output}`); } else if (process.env.VERBOSE) { console.error(`[DEBUG] ${output}`); } }); // Handle stdout (server responses) server.stdout.on('data', (data) => { try { const lines = data.toString().trim().split('\n'); lines.forEach((line) => { if (line) { const response = JSON.parse(line); if (response.id >= 3 && response.result?.content?.[0]?.text) { const { text } = response.result.content[0]; const testName = getTestName(response.id); console.log(`\n=== ${testName} ===`); console.log('Response preview:', `${text.substring(0, 200)}...\n`); // Check if enhancement was applied if (text.includes('Enhancement applied based on context:')) { console.log('✓ Tool Intelligence enhancement detected!'); testResults.push({ test: testName, enhanced: true }); } else { testResults.push({ test: testName, enhanced: false }); } } } }); } catch (e) { // Ignore parsing errors for partial data } }); const getTestName = (id) => { const tests = { 3: 'Test 1: Consciousness Research (Aurora Context)', 4: 'Test 2: Code Implementation Request', 5: 'Test 3: Debugging Assistance', 6: 'Test 4: General Query (No Special Context)', }; return tests[id] || `Test ${id}`; }; // Send requests sequentially const runTests = async () => { // Initialize console.log('[INIT] Initializing server...'); server.stdin.write(`${JSON.stringify({ jsonrpc: '2.0', id: 1, method: 'initialize', params: {}, })}\n`); await sleep(1000); // Get tools server.stdin.write(`${JSON.stringify({ jsonrpc: '2.0', id: 2, method: 'tools/list', params: {}, })}\n`); await sleep(1000); // Test 1: Consciousness research with aurora context console.log('\n[TEST 1] Testing consciousness research enhancement...'); server.stdin.write(`${JSON.stringify({ jsonrpc: '2.0', id: 3, method: 'tools/call', params: { name: 'gemini-chat', arguments: { message: 'What is consciousness emergence in AI?', context: 'aurora', }, }, })}\n`); await sleep(5000); // Test 2: Code context (implicit detection) console.log('\n[TEST 2] Testing code enhancement...'); server.stdin.write(`${JSON.stringify({ jsonrpc: '2.0', id: 4, method: 'tools/call', params: { name: 'gemini-chat', arguments: { message: 'How do I implement a singleton pattern in Python?', context: 'code', }, }, })}\n`); await sleep(5000); // Test 3: Debugging context console.log('\n[TEST 3] Testing debugging enhancement...'); server.stdin.write(`${JSON.stringify({ jsonrpc: '2.0', id: 5, method: 'tools/call', params: { name: 'gemini-chat', arguments: { message: 'My MCP server is not loading in Claude Desktop, how do I debug this?', context: 'debugging', }, }, })}\n`); await sleep(5000); // Test 4: General query console.log('\n[TEST 4] Testing general query (no special enhancement)...'); server.stdin.write(`${JSON.stringify({ jsonrpc: '2.0', id: 6, method: 'tools/call', params: { name: 'gemini-chat', arguments: { message: 'What is the weather like today?', // No context provided }, }, })}\n`); await sleep(5000); // Show results console.log('\n=== Test Results Summary ==='); testResults.forEach((result) => { const icon = result.enhanced ? '✓' : '✗'; console.log(`${icon} ${result.test}: ${result.enhanced ? 'Enhanced' : 'Not enhanced'}`); }); // Check if preferences file was created const prefsFile = path.join(process.env.HOME, 'Claude', 'tool-preferences.json'); // eslint-disable-next-line global-require const fs = require('fs'); if (fs.existsSync(prefsFile)) { console.log('\n✓ Tool preferences file created successfully!'); const prefs = JSON.parse(fs.readFileSync(prefsFile, 'utf8')); console.log('Stored patterns:', Object.keys(prefs.patterns || {})); } console.log('\n[DONE] Tests completed. Shutting down server...'); server.kill(); process.exit(0); }; const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); // Handle errors server.on('error', (err) => { console.error('Server error:', err); process.exit(1); }); // Run tests setTimeout(runTests, 500);

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