UNPKG

ig-trading-mcp

Version:

IG Trading API with MCP (Model Context Protocol) server for AI integration

78 lines (66 loc) 1.85 kB
#!/usr/bin/env node /** * Test MCP Server */ import { spawn } from 'child_process'; console.log('Testing MCP Server...\n'); const mcp = spawn('node', ['src/services/mcp-service.js'], { stdio: ['pipe', 'pipe', 'pipe'], env: { ...process.env, IG_API_KEY: process.env.IG_API_KEY, IG_IDENTIFIER: process.env.IG_IDENTIFIER, IG_PASSWORD: process.env.IG_PASSWORD, IG_DEMO: process.env.IG_DEMO || 'true' } }); // Send initialization const initMessage = { jsonrpc: '2.0', method: 'initialize', params: { protocolVersion: '0.1.0', capabilities: {} }, id: 1 }; mcp.stdin.write(JSON.stringify(initMessage) + '\n'); // Send list tools request setTimeout(() => { const listTools = { jsonrpc: '2.0', method: 'tools/list', params: {}, id: 2 }; mcp.stdin.write(JSON.stringify(listTools) + '\n'); }, 100); // Handle responses mcp.stdout.on('data', (data) => { try { const lines = data.toString().split('\n').filter(line => line.trim()); lines.forEach(line => { const response = JSON.parse(line); console.log('Response:', JSON.stringify(response, null, 2)); if (response.id === 2 && response.result?.tools) { console.log(`\n✅ MCP Server is working! Found ${response.result.tools.length} tools`); console.log('\nTools available:'); response.result.tools.slice(0, 5).forEach(tool => { console.log(` - ${tool.name}: ${tool.description}`); }); console.log(' ... and more\n'); process.exit(0); } }); } catch (e) { // Ignore parsing errors for partial data } }); mcp.stderr.on('data', (data) => { console.error('Error:', data.toString()); }); // Timeout after 5 seconds setTimeout(() => { console.log('❌ MCP Server did not respond properly'); process.exit(1); }, 5000);