Skip to main content
Glama
jedarden

YouTube Transcript DL MCP Server

by jedarden
test-transports.ts3.3 kB
import axios from 'axios'; import { EventSource } from 'eventsource'; // Configuration const HTTP_URL = 'http://localhost:3002'; const SSE_URL = 'http://localhost:3001'; // Test HTTP Transport async function testHTTPTransport() { console.log('\n=== Testing HTTP Transport ==='); try { // Get available methods const methodsResponse = await axios.get(`${HTTP_URL}/methods`); console.log('Available methods:', JSON.stringify(methodsResponse.data, null, 2)); // Test health endpoint const healthResponse = await axios.get(`${HTTP_URL}/health`); console.log('Health status:', JSON.stringify(healthResponse.data, null, 2)); // Test RPC call const rpcRequest = { jsonrpc: '2.0', id: 1, method: 'tools/list', params: {} }; const rpcResponse = await axios.post(`${HTTP_URL}/rpc`, rpcRequest); console.log('RPC Response:', JSON.stringify(rpcResponse.data, null, 2)); // Test get_transcript tool const transcriptRequest = { jsonrpc: '2.0', id: 2, method: 'tools/call', params: { name: 'get_transcript', arguments: { videoId: 'dQw4w9WgXcQ', format: 'text' } } }; const transcriptResponse = await axios.post(`${HTTP_URL}/rpc`, transcriptRequest); console.log('Transcript Response:', JSON.stringify(transcriptResponse.data, null, 2)); } catch (error) { console.error('HTTP Transport Error:', error.message); } } // Test SSE Transport async function testSSETransport() { console.log('\n=== Testing SSE Transport ==='); return new Promise((resolve) => { const eventSource = new EventSource(`${SSE_URL}/sse`); let sessionId: string; eventSource.onopen = () => { console.log('SSE Connection established'); }; eventSource.onmessage = async (event) => { const data = JSON.parse(event.data); console.log('SSE Message:', data); // Extract session ID from the initial message if (data.sessionId) { sessionId = data.sessionId; console.log('Session ID:', sessionId); // Send a test message via POST try { const message = { jsonrpc: '2.0', id: 1, method: 'tools/list', params: {} }; const response = await axios.post(`${SSE_URL}/sse/message/${sessionId}`, message); console.log('SSE POST Response:', response.data); } catch (error) { console.error('SSE POST Error:', error.message); } } }; eventSource.onerror = (error) => { console.error('SSE Error:', error); eventSource.close(); resolve(null); }; // Close after 10 seconds setTimeout(() => { console.log('Closing SSE connection'); eventSource.close(); resolve(null); }, 10000); }); } // Run tests async function runTests() { console.log('YouTube Transcript MCP Transport Tests'); console.log('====================================='); await testHTTPTransport(); await testSSETransport(); console.log('\n=== Tests Complete ==='); } // Execute if run directly if (require.main === module) { runTests().catch(console.error); }

Latest Blog Posts

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/jedarden/yt-transcript-dl-mcp'

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