Skip to main content
Glama

YouTube MCP Server

by kevinwatt
test-mcp.mjs2.65 kB
#!/usr/bin/env node /** * Simple MCP protocol test * This script tests if the MCP server responds correctly to basic protocol messages */ import { spawn } from 'child_process'; import { fileURLToPath } from 'url'; import { dirname, join } from 'path'; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); const serverPath = join(__dirname, 'lib', 'index.mjs'); console.log('🧪 Testing yt-dlp MCP Server\n'); console.log('Starting server from:', serverPath); const server = spawn('node', [serverPath]); let testsPassed = 0; let testsFailed = 0; let responseBuffer = ''; // Timeout to ensure tests complete const timeout = setTimeout(() => { console.log('\n⏱️ Test timeout - killing server'); server.kill(); process.exit(testsFailed > 0 ? 1 : 0); }, 10000); server.stdout.on('data', (data) => { responseBuffer += data.toString(); // Try to parse JSON-RPC responses const lines = responseBuffer.split('\n'); responseBuffer = lines.pop() || ''; // Keep incomplete line in buffer lines.forEach(line => { if (line.trim()) { try { const response = JSON.parse(line); console.log('📨 Received:', JSON.stringify(response, null, 2)); if (response.result) { testsPassed++; console.log('✅ Test passed\n'); } } catch (e) { // Not JSON, might be regular output console.log('📝 Output:', line); } } }); }); server.stderr.on('data', (data) => { console.log('🔧 Server log:', data.toString().trim()); }); server.on('close', (code) => { clearTimeout(timeout); console.log(`\n📊 Test Results:`); console.log(` ✅ Passed: ${testsPassed}`); console.log(` ❌ Failed: ${testsFailed}`); console.log(` Server exit code: ${code}`); process.exit(testsFailed > 0 ? 1 : 0); }); // Wait a bit for server to start setTimeout(() => { console.log('\n🔍 Test 1: Initialize'); const initRequest = { jsonrpc: '2.0', id: 1, method: 'initialize', params: { protocolVersion: '2024-11-05', capabilities: {}, clientInfo: { name: 'test-client', version: '1.0.0' } } }; server.stdin.write(JSON.stringify(initRequest) + '\n'); setTimeout(() => { console.log('\n🔍 Test 2: List Tools'); const listToolsRequest = { jsonrpc: '2.0', id: 2, method: 'tools/list', params: {} }; server.stdin.write(JSON.stringify(listToolsRequest) + '\n'); setTimeout(() => { console.log('\n✅ Basic protocol tests completed'); server.kill(); }, 2000); }, 2000); }, 1000);

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/kevinwatt/yt-dlp-mcp'

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