Skip to main content
Glama
reetp14
by reetp14
test.js2.73 kB
#!/usr/bin/env node /** * Simple test script to verify OpenAlex MCP Server functionality */ import { spawn } from 'child_process'; async function testMCPServer() { console.log('Testing OpenAlex MCP Server...\n'); const server = spawn('node', ['./build/index.js'], { stdio: ['pipe', 'pipe', 'pipe'] }); // Test 1: List tools console.log('Test 1: Listing available tools...'); const listToolsRequest = JSON.stringify({ jsonrpc: "2.0", id: 1, method: "tools/list" }) + '\n'; server.stdin.write(listToolsRequest); server.stdout.on('data', (data) => { try { const response = JSON.parse(data.toString().trim()); if (response.id === 1) { console.log(`✅ Found ${response.result.tools.length} tools:`); response.result.tools.forEach(tool => { console.log(` - ${tool.name}: ${tool.description}`); }); console.log('\nTest 2: Testing search_works tool...'); // Test 2: Test search_works const searchWorksRequest = JSON.stringify({ jsonrpc: "2.0", id: 2, method: "tools/call", params: { name: "search_works", arguments: { per_page: 1 } } }) + '\n'; server.stdin.write(searchWorksRequest); } else if (response.id === 2) { if (response.result.isError) { console.log(`⚠️ API Error: ${response.result.content[0].text}`); console.log('✅ Error handling works correctly.'); } else { const result = JSON.parse(response.result.content[0].text); console.log(`✅ Search works returned ${result.results.length} result(s):`); result.results.forEach(item => { console.log(` - ${item.display_name} (${item.publication_year})`); }); console.log(`📊 Total works in database: ${result.meta.count.toLocaleString()}`); console.log('\n🎉 All tests passed! OpenAlex MCP Server is working correctly with Bearer token authentication!'); } server.kill(); process.exit(0); } } catch (error) { console.error('❌ Error parsing response:', error.message); server.kill(); process.exit(1); } }); server.stderr.on('data', (data) => { console.error('Server error:', data.toString()); }); server.on('close', (code) => { if (code !== 0) { console.error(`❌ Server exited with code ${code}`); process.exit(1); } }); // Timeout after 30 seconds setTimeout(() => { console.error('❌ Test timeout'); server.kill(); process.exit(1); }, 30000); } testMCPServer().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/reetp14/openalex-mcp'

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