Skip to main content
Glama

MCP Weather Server

by TJarriault
test_search_location.js4.3 kB
#!/usr/bin/env node // Test simple de la fonction search_location const http = require('node:http'); function makeRequest(options, postData) { return new Promise((resolve, reject) => { const req = http.request(options, (res) => { let data = ''; res.on('data', (chunk) => data += chunk); res.on('end', () => { resolve({ statusCode: res.statusCode, headers: res.headers, data: data }); }); }); req.on('error', reject); if (postData) { req.write(postData); } req.end(); }); } async function testSearchLocation() { try { console.log('🔍 Test de la fonction search_location...\n'); // 1. Initialisation MCP console.log('1. Initialisation MCP...'); const initRequest = JSON.stringify({ jsonrpc: '2.0', id: 1, method: 'initialize', params: { protocolVersion: '2024-11-05', capabilities: { tools: {} }, clientInfo: { name: 'test-search-client', version: '1.0.0' } } }); const initResponse = await makeRequest({ hostname: 'localhost', port: 8081, path: '/mcp', method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json, text/event-stream' } }, initRequest); const sessionId = initResponse.headers['mcp-session-id']; console.log('✅ Session ID:', sessionId); // 2. Liste des outils console.log('\n2. Liste des outils...'); const listToolsRequest = JSON.stringify({ jsonrpc: '2.0', id: 2, method: 'tools/list', params: {} }); const toolsResponse = await makeRequest({ hostname: 'localhost', port: 8081, path: '/mcp', method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json, text/event-stream', 'mcp-session-id': sessionId } }, listToolsRequest); console.log('📋 Outils disponibles:'); const tools = JSON.parse(toolsResponse.data); if (tools.result && tools.result.tools) { tools.result.tools.forEach(tool => { console.log(` - ${tool.name}: ${tool.description}`); }); } // 3. Test search_location pour Paris console.log('\n3. Recherche de Paris...'); const searchParisRequest = JSON.stringify({ jsonrpc: '2.0', id: 3, method: 'tools/call', params: { name: 'search_location', arguments: { city_name: 'Paris', limit: 3 } } }); const parisResponse = await makeRequest({ hostname: 'localhost', port: 8081, path: '/mcp', method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json, text/event-stream', 'mcp-session-id': sessionId } }, searchParisRequest); console.log('🗼 Résultats pour Paris:'); const parisData = JSON.parse(parisResponse.data); if (parisData.result && parisData.result.content) { console.log(parisData.result.content[0].text); } // 4. Test search_location pour Lyon en France console.log('\n4. Recherche de Lyon en France...'); const searchLyonRequest = JSON.stringify({ jsonrpc: '2.0', id: 4, method: 'tools/call', params: { name: 'search_location', arguments: { city_name: 'Lyon', country: 'France', limit: 2 } } }); const lyonResponse = await makeRequest({ hostname: 'localhost', port: 8081, path: '/mcp', method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json, text/event-stream', 'mcp-session-id': sessionId } }, searchLyonRequest); console.log('🏛️ Résultats pour Lyon, France:'); const lyonData = JSON.parse(lyonResponse.data); if (lyonData.result && lyonData.result.content) { console.log(lyonData.result.content[0].text); } console.log('\n✅ Tests terminés avec succès !'); } catch (error) { console.error('❌ Erreur lors du test:', error.message); } } testSearchLocation();

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/TJarriault/mcp-weather-sample'

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