Skip to main content
Glama

AMiner MCP Server

by scipenai
test-client.js3.74 kB
#!/usr/bin/env node /** * AMiner MCP Server Test Client * Used to test MCP server functionality */ import { Client } from "@modelcontextprotocol/sdk/client/index.js"; import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js"; async function testAminerMcpServer() { console.log("🚀 Starting AMiner MCP Server test...\n"); // Create client const client = new Client({ name: "aminer-test-client", version: "1.0.0" }); try { // Connect to server const transport = new StdioClientTransport({ command: "node", args: ['dist/index.js'], env: { ...process.env, AMINER_API_KEY: process.env.AMINER_API_KEY || "test_key" } }); await client.connect(transport); console.log("✅ Successfully connected to MCP server\n"); // Test 1: List available tools console.log("📋 Test 1: List available tools"); const tools = await client.listTools(); console.log(`Found ${tools.tools.length} tools:`); tools.tools.forEach(tool => { console.log(` - ${tool.name}: ${tool.description}`); }); console.log(); // Test 2: List available prompts console.log("📋 Test 2: List available prompts"); const prompts = await client.listPrompts(); console.log(`Found ${prompts.prompts.length} prompts:`); prompts.prompts.forEach(prompt => { console.log(` - ${prompt.name}: ${prompt.description}`); }); console.log(); // Test 3: Test keyword search tool console.log("🔍 Test 3: Keyword search tool"); try { const searchResult = await client.callTool({ name: "search_papers_by_keyword", arguments: { keyword: "artificial intelligence", page: 0, size: 3, order: "n_citation" } }); console.log("Search results:"); console.log(searchResult.content[0].text.substring(0, 500) + "..."); } catch (error) { console.log(`Search test failed (expected, requires real API Key): ${error.message}`); } console.log(); // Test 4: Test prompt template console.log("💡 Test 4: Paper search assistant prompt"); try { const promptResult = await client.getPrompt({ name: "paper_search_assistant", arguments: { research_topic: "machine learning", search_focus: "highly_cited" } }); console.log("Prompt template generated successfully:"); console.log(promptResult.messages[0].content.text.substring(0, 300) + "..."); } catch (error) { console.log(`Prompt test failed: ${error.message}`); } console.log(); // Test 5: Test parameter validation console.log("⚠️ Test 5: Parameter validation"); try { await client.callTool({ name: "search_papers_advanced", arguments: { page: 0, size: 5 // Intentionally omit required search parameters } }); } catch (error) { console.log("Parameter validation test passed - correctly caught parameter error"); } console.log("\n✅ All tests completed!"); } catch (error) { console.error("❌ Test failed:", error.message); } finally { // Cleanup try { await client.close(); } catch (error) { console.error("Error during cleanup:", error.message); } } } // Check environment if (!process.env.AMINER_API_KEY) { console.log("⚠️ Warning: AMINER_API_KEY environment variable not set"); console.log("Some tests may fail, but basic functionality tests will still proceed\n"); } // Run tests testAminerMcpServer().catch(error => { console.error("Test execution failed:", error); process.exit(1); });

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/scipenai/aminer-mcp-server'

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