UNPKG

@servesys-labs/claude-agents

Version:

Production-ready orchestration framework for Claude Desktop with 30+ specialized agents, smart hooks, vector memory, and autonomous workflows

108 lines (86 loc) โ€ข 2.65 kB
#!/usr/bin/env npx tsx /** * Quick MCP Server Test * Tests basic operations without full acceptance suite */ import { spawn } from 'child_process'; import path from 'path'; import { fileURLToPath } from 'url'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); async function testMCPServer() { console.log('๐Ÿงช Testing MCP Server\n'); const serverPath = path.join(__dirname, 'dist', 'index.js'); const server = spawn('node', [serverPath], { stdio: ['pipe', 'pipe', 'inherit'], env: { ...process.env, TEMPLATES_DIR: path.join(process.env.HOME!, 'vibe', 'ui-templates'), }, }); let responseBuffer = ''; let testsPassed = 0; let testsFailed = 0; // Helper to send JSON-RPC request function sendRequest(method: string, params: any) { const request = { jsonrpc: '2.0', id: Date.now(), method, params, }; server.stdin!.write(JSON.stringify(request) + '\n'); } // Listen for responses server.stdout!.on('data', (data) => { responseBuffer += data.toString(); const lines = responseBuffer.split('\n'); responseBuffer = lines.pop() || ''; for (const line of lines) { if (!line.trim()) continue; try { const response = JSON.parse(line); handleResponse(response); } catch (error) { console.error('โŒ Failed to parse response:', line); } } }); function handleResponse(response: any) { if (response.error) { console.error('โŒ Error:', response.error); testsFailed++; return; } if (response.result) { testsPassed++; console.log('โœ… Test passed'); } } // Wait for server to start await new Promise((resolve) => setTimeout(resolve, 2000)); console.log('Test 1: Initialize MCP server\n'); sendRequest('initialize', { protocolVersion: '2024-11-05', capabilities: {}, clientInfo: { name: 'test-client', version: '1.0.0' }, }); await new Promise((resolve) => setTimeout(resolve, 1000)); console.log('\nTest 2: List available tools\n'); sendRequest('tools/list', {}); await new Promise((resolve) => setTimeout(resolve, 1000)); console.log('\nTest 3: Get cache stats\n'); sendRequest('tools/call', { name: 'cache_stats', arguments: {}, }); await new Promise((resolve) => setTimeout(resolve, 2000)); // Cleanup server.kill(); console.log(`\n๐Ÿ“Š Results: ${testsPassed} passed, ${testsFailed} failed`); process.exit(testsFailed > 0 ? 1 : 0); } testMCPServer().catch((error) => { console.error('๐Ÿ’ฅ Test failed:', error); process.exit(1); });