Skip to main content
Glama

StreamerSongList MCP Server

by vuvuvu
CLAUDE.md3.48 kB
# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Development Commands ### Testing and Running - `npm test` - Run MCP protocol validation tests using the custom test harness - `npm start` - Start the MCP server manually for testing (listens on stdio) - `npm run setup` - Automatically configure Claude Desktop integration ### Package Management - `npm install` - Install dependencies - `node src/server.js` - Direct server execution (same as npm start) ## Architecture Overview This is a **Model Context Protocol (MCP) server** that provides tools for interacting with StreamerSongList APIs. The server integrates with Claude Desktop and other MCP-compatible clients. Note: This server targets public, read-only endpoints of the StreamerSongList API. All implemented tools use real API responses (no simulated data). See `docs/API_TESTING_REPORT.md` for details. ### Key Dependencies - `@modelcontextprotocol/sdk@^1.20.0` - MCP protocol implementation - `undici@^7.16.0` - Modern fetch API implementation for Node.js ### Server Architecture - **Single-file implementation**: `src/server.js` (955 lines) contains the entire server - **Dynamic SDK loading**: Smart resolution with fallback paths for different installation scenarios - **Environment configuration**: Supports `DEFAULT_STREAMER` for convenient queue tool usage - **MCP Protocol**: Uses stdio transport for communication with Claude Desktop ### Available Tools (all real API data) - `getStreamerByName` — GET `/v1/streamers/{name}` - `getQueue` — GET `/v1/streamers/{name}/queue` - `getSongs` — GET `/v1/streamers/{name}/songs` - `searchSongs` — Client-side filtering over `getSongs` - `getSongDetails` — Client-side selection from `getSongs` - `monitorQueue` — Polls `getQueue` at intervals ### Environment Variable Support - `DEFAULT_STREAMER` — default streamer when `streamerName` is omitted (overridable via CLI `--streamer`) - `SSL_API_BASE` — override API base (default `https://api.streamersonglist.com/v1`) CLI overrides: `npx streamersonglist-mcp --streamer belleune` ### API Integration - Base URL: `https://api.streamersonglist.com/v1` (configurable via `SSL_API_BASE`) - All tools use real API endpoints; no authentication is required for public data - Error handling: consistent response checks and messages ### Endpoints Used - `GET /v1/streamers/{streamerName}` — streamer configuration - `GET /v1/streamers/{streamerName}/queue` — current queue data - `GET /v1/streamers/{streamerName}/songs` — full catalog ### Development Patterns - **Tool Definition Pattern**: Each tool has comprehensive JSON Schema validation - **Stream Parameter Handling**: Tools that accept streamerName fall back to DEFAULT_STREAMER when available - **API Response Handling**: Consistent error handling and response formatting across all tools - **Dynamic Import Pattern**: Smart SDK loading handles various installation scenarios ### Testing - **Custom Test Harness**: `test-server.js` validates MCP protocol compliance - **Manual Testing**: Server accepts JSON-RPC messages on stdin/stdout - **CI/CD**: GitHub Actions tests against Node.js 18, 20, 22 ### Package Structure - **No build process**: Published as source for maximum compatibility - **Binary entry**: `src/server.js` is both main file and CLI entry point - **Configuration example**: `claude-desktop-config.example.json` shows integration pattern

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