Skip to main content
Glama
vuvuvu

StreamerSongList MCP Server

by vuvuvu

monitorQueue

Monitor song queue changes for streamers with configurable polling intervals to track request updates in real-time.

Instructions

Monitor queue changes with configurable polling intervals

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
streamerNameNoThe name of the streamer whose queue to monitor
intervalNoPolling interval in seconds (default: 30)
durationNoHow long to monitor in seconds (default: 300)

Implementation Reference

  • Simulation-based handler for the monitorQueue tool. Fetches initial queue state and returns monitoring setup information, noting that real-time updates would require WebSocket/SSE.
    case "monitorQueue": { const { streamerName = defaultStreamer, interval = 30, duration = 300 } = args; if (!streamerName) { throw new Error( "streamerName is required. Provide a streamerName or set the DEFAULT_STREAMER environment variable." ); } try { const updates = []; // Initial queue fetch const initialResponse = await fetch(`https://api.streamersonglist.com/v1/streamers/${encodeURIComponent(streamerName)}/queue`); if (initialResponse.ok) { const initialQueue = await initialResponse.json(); updates.push({ timestamp: new Date().toISOString(), type: 'initial', data: initialQueue }); } const monitoringId = `monitor_${streamerName}_${Date.now()}`; return { content: [{ type: "text", text: `Started monitoring queue for ${streamerName}\n` + `Monitoring ID: ${monitoringId}\n` + `Interval: ${interval} seconds\n` + `Duration: ${duration} seconds\n` + `\nNote: This is a simulation. In a real implementation, this would:\n` + `- Establish WebSocket or SSE connection\n` + `- Subscribe to queue updates for the streamer\n` + `- Send real-time notifications of queue changes\n` + `\nInitial queue data:\n${JSON.stringify(updates, null, 2)}` }] }; } catch (error) { return { content: [{ type: "text", text: `Error setting up monitoring: ${error instanceof Error ? error.message : 'Unknown error'}` }] }; } }
  • Polling-based implementation of monitorQueue handler that periodically fetches the queue for the specified duration and collects results including timestamps and queue lengths.
    case "monitorQueue": { const streamerName = getEffectiveStreamer((args as any)?.streamerName); const interval = ((args as any)?.interval || 30) * 1000; // Convert to milliseconds const duration = ((args as any)?.duration || 300) * 1000; // Convert to milliseconds const startTime = Date.now(); const results: any[] = []; while (Date.now() - startTime < duration) { try { const data = await makeApiRequest(`/streamers/${encodeURIComponent(streamerName)}/queue`); results.push({ timestamp: new Date().toISOString(), queueLength: data.list?.length || 0, data: data, }); if (Date.now() - startTime + interval < duration) { await new Promise(resolve => setTimeout(resolve, interval)); } } catch (error: any) { results.push({ timestamp: new Date().toISOString(), error: error.message, }); break; } } return { content: [ { type: "text", text: JSON.stringify(results, null, 2), }, ], }; }
  • Input schema definition for the monitorQueue tool, specifying parameters for streamerName, interval, and duration.
    { name: "monitorQueue", description: "Monitor queue changes with configurable polling intervals", inputSchema: { type: "object", properties: { streamerName: { type: "string", description: "The name of the streamer whose queue to monitor", }, interval: { type: "number", description: "Polling interval in seconds (default: 30)", default: 30, }, duration: { type: "number", description: "How long to monitor in seconds (default: 300)", default: 300, }, }, required: [], }, },
  • Input schema for the monitorQueue tool in the TypeScript implementation.
    { name: "monitorQueue", description: "Monitor queue changes with configurable polling intervals", inputSchema: { type: "object", properties: { streamerName: { type: "string", description: "The name of the streamer whose queue to monitor", }, interval: { type: "number", description: "Polling interval in seconds (default: 30)", default: 30, }, duration: { type: "number", description: "How long to monitor in seconds (default: 300)", default: 300, }, }, required: [], }, },

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/vuvuvu/streamersonglist-mcp'

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