Skip to main content
Glama
by LeGenAI
test-enhanced-mcp-complete.tsβ€’4.36 kB
#!/usr/bin/env node /** * Test script for Enhanced MCP-MAGMA-Handbook Server v3.0 */ import { spawn } from 'child_process'; import readline from 'readline'; console.log('πŸ§ͺ Enhanced MCP-MAGMA-Handbook v3.0 ν…ŒμŠ€νŠΈ μ‹œμž‘...\n'); const serverProcess = spawn('npx', ['tsx', 'enhanced-mcp-server.ts'], { stdio: ['pipe', 'pipe', 'pipe'], env: { ...process.env, OPENAI_API_KEY: process.env.OPENAI_API_KEY, SUPABASE_URL: process.env.SUPABASE_URL, SUPABASE_KEY: process.env.SUPABASE_KEY } }); serverProcess.stderr.on('data', (data) => { console.log(`πŸ“‹ Server: ${data.toString().trim()}`); }); function sendRequest(method: string, params: any = {}) { const request = { jsonrpc: '2.0', id: Date.now(), method, params }; serverProcess.stdin.write(JSON.stringify(request) + '\n'); } const rl = readline.createInterface({ input: serverProcess.stdout, terminal: false }); let testResults: any[] = []; let currentTest = ''; rl.on('line', (line) => { try { const response = JSON.parse(line); if (response.result) { console.log(`\nβœ… ${currentTest} 성곡:`); if (response.result.content?.[0]?.text) { try { const parsed = JSON.parse(response.result.content[0].text); console.log(JSON.stringify(parsed, null, 2)); } catch { console.log(response.result.content[0].text); } } testResults.push({ test: currentTest, status: 'success' }); } } catch (e) { console.log(`πŸ“‹ Server: ${line}`); } }); setTimeout(() => { console.log('\nπŸš€ ν…ŒμŠ€νŠΈ μ‹œν€€μŠ€ μ‹œμž‘...\n'); sendRequest('initialize', { protocolVersion: '1.0.0', capabilities: {}, clientInfo: { name: 'enhanced-mcp-test', version: '3.0.0' } }); // 1. Health check setTimeout(() => { currentTest = 'Health Status 확인'; console.log(`\nπŸ” ν…ŒμŠ€νŠΈ 1: ${currentTest}`); sendRequest('tools/call', { name: 'get_health_status', arguments: {} }); }, 1000); // 2. Collections setTimeout(() => { currentTest = 'Collections λͺ©λ‘'; console.log(`\nπŸ” ν…ŒμŠ€νŠΈ 2: ${currentTest}`); sendRequest('tools/call', { name: 'list_collections', arguments: {} }); }, 3000); // 3. Multi-query search setTimeout(() => { currentTest = 'Multi-Query Hybrid Search'; console.log(`\nπŸ” ν…ŒμŠ€νŠΈ 3: ${currentTest}`); sendRequest('tools/call', { name: 'search_magma', arguments: { query: 'How to create polynomial rings in MAGMA?', limit: 3, search_type: 'hybrid', use_multi_query: true } }); }, 5000); // 4. Save conversation setTimeout(() => { currentTest = 'Conversation μ €μž₯'; console.log(`\nπŸ” ν…ŒμŠ€νŠΈ 4: ${currentTest}`); sendRequest('tools/call', { name: 'save_conversation', arguments: { collection_id: 'magma-handbook', conversation: 'User: MAGMAμ—μ„œ 닀항식 ν™˜μ„ μ–΄λ–»κ²Œ λ§Œλ“œλ‚˜μš”?\nAssistant: MAGMAμ—μ„œ 닀항식 ν™˜μ€ PolynomialRing ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.', title: 'Enhanced MCP Test Conversation' } }); }, 8000); // Summary setTimeout(() => { console.log('\n' + '='.repeat(60)); console.log('πŸ“Š ν…ŒμŠ€νŠΈ κ²°κ³Ό μš”μ•½:'); console.log('='.repeat(60)); console.log(`\nβœ… μ™„λ£Œλœ ν…ŒμŠ€νŠΈ: ${testResults.length}개`); console.log('\nπŸš€ Enhanced MCP v3.0 μ£Όμš” κΈ°λŠ₯:'); console.log(' ✨ Multi-query 검색 - μ—¬λŸ¬ κ΄€μ μ—μ„œ 질문 생성'); console.log(' πŸ” Hybrid 검색 - μ‹œλ§¨ν‹± + ν‚€μ›Œλ“œ 검색 κ²°ν•©'); console.log(' πŸ“ Collection 관리 - μ£Όμ œλ³„ λ¬Έμ„œ λΆ„λ₯˜'); console.log(' πŸ’¬ Conversation μ €μž₯ - AI λŒ€ν™” λ‚΄μš© μ €μž₯'); console.log(' ⚑ 동적 검색 νƒ€μž… - semantic/keyword/hybrid 선택'); console.log('\n🎯 λž©μ‹€ μ‚¬μš©λ²•:'); console.log('1. search_magma: ν–₯μƒλœ 검색 (기본적으둜 multi-query + hybrid)'); console.log('2. list_collections: μ‚¬μš© κ°€λŠ₯ν•œ μ»¬λ ‰μ…˜ 확인'); console.log('3. save_conversation: μœ μš©ν•œ λŒ€ν™” λ‚΄μš© μ €μž₯'); console.log('4. create_collection: μƒˆλ‘œμš΄ μ£Όμ œλ³„ μ»¬λ ‰μ…˜ 생성'); serverProcess.kill(); process.exit(0); }, 12000); }, 2000); process.on('SIGINT', () => { serverProcess.kill(); process.exit(0); });

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/LeGenAI/mcp-magma-handbook'

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