Skip to main content
Glama
vuvuvu

StreamerSongList MCP Server

by vuvuvu

StreamerSongList MCP Server

Test MCP Server License: MIT Node.js Version

MCP server exposing read-only StreamerSongList tools. Use LLM's to interface with a Live Streamers Song list. Claude Desktop and any MCP client.

Quick Start

  • Node.js 18+ required

  • Claude Desktop recommended for daily use

Add to Claude Desktop via npx:

{
  "mcpServers": {
    "streamersonglist": {
      "command": "npx",
      "args": ["streamersonglist-mcp"]
    }
  }
}

See claude-desktop-config.with-default-streamer.json for an example with DEFAULT_STREAMER configured.

Click on the smithery badge to test out the mcp server or deploy your own.

Optional Smithery install (requires Smithery account):

# First login to Smithery (one-time setup)
npx -y @smithery/cli login

# Then install the MCP server
npx -y @smithery/cli install @vuvuvu/streamersonglist-mcp --client claude

Related MCP server: Spotify MCP Server

Deploy to Smithery.ai

Want to test this MCP server instantly without any local setup? Click the Smithery badge above or visit:

🚀 Deploy to Smithery.ai

Smithery.ai provides a hosted environment where you can:

  • Test all StreamerSongList tools immediately in your browser

  • No installation or configuration required

  • Perfect for trying out the server before local setup

  • Great for sharing with others or quick demonstrations

Simply click the badge at the top of this README or the link above to get started instantly!

Use the MCP Inspector to explore tools and run requests interactively:

npx @modelcontextprotocol/inspector@latest -- npx streamersonglist-mcp
# or from a local clone
npx @modelcontextprotocol/inspector@latest -- node src/server.js

Alternative (raw stdio):

npm start
printf '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}\n' | node src/server.js

Available Tools (6 Total)

✅ All Real API Data (6 tools)

  • getStreamerByName — Fetch comprehensive streamer configuration

  • getQueue — List current song queue with pagination

  • getSongs — Fetch complete song list with pagination

  • searchSongs — Search songs by title or artist

  • getSongDetails — Get detailed information about a specific song

  • monitorQueue — Monitor queue changes using real data

Usage Examples

For comprehensive examples of how to use these tools, see docs/USAGE_EXAMPLES.md including:

  • 🎵 Music discovery and analysis

  • 📊 Content creator tools and stream planning

  • 🤖 AI assistant integration and smart recommendations

  • 📈 Data analysis and insights

  • 🎪 Event planning and collaboration tools

  • 🛠️ Technical applications and automation

Quick examples:

// Search for songs
{"tool": "searchSongs", "arguments": {"streamerName": "belleune", "query": "Frank Sinatra"}}

// Get most popular songs
{"tool": "getSongs", "arguments": {"streamerName": "belleune", "limit": 20}}

// Compare streamer libraries
{"tool": "getSongs", "arguments": {"streamerName": "vu_vu", "limit": 50}}

API Status

Working Endpoints: All 6 tools use real API data

  • Streamer information, queue management, and full song library access

  • No authentication required for public endpoints

  • All features fully functional with real StreamerSongList API data

#Please be considerate when using streamersonglists api. It's a shared but limitted resource, be mindful when using LLM's to access it, Please don't ruin it for everyone!

For detailed API testing results, see docs/API_TESTING_REPORT.md

Environment

Optionally set a default streamer used when streamerName is omitted:

{
  "mcpServers": {
    "streamersonglist": {
      "command": "npx",
      "args": ["streamersonglist-mcp"],
      "env": { "DEFAULT_STREAMER": "public_streamer" }
    }
  }
}

CLI override examples:

DEFAULT_STREAMER=public_streamer npx streamersonglist-mcp
npx streamersonglist-mcp --streamer public_streamer

Configuration options:

  • DEFAULT_STREAMER — default streamer when an argument is omitted

  • SSL_API_BASE — override API base (default https://api.streamersonglist.com/v1)

Version info: The server reports its version from package.json, matching the published package.

Security tip: use only public streamer names; the server calls public read-only endpoints.

Scripts

  • npm install — install dependencies

  • npm start — run server on stdio

  • npm test — spawn server and verify tools/list

  • npm run setup — generate Claude Desktop entries

License

MIT — see LICENSE.

Contributing

Contributions are welcome via pull requests. Due to limitations of the public StreamerSongList API, scope for major new features is intentionally modest — helpful contributions include:

  • Bug fixes, error handling, and robustness improvements

  • Documentation updates and examples

  • Small tooling or DX enhancements (tests, CI, config)

Please open an issue to discuss larger ideas before starting work, and run npm test before submitting PRs.

Credits

This project builds on the excellent StreamerSonglist service. All data and API functionality are provided by StreamerSonglist:

I am not affiliated with or endorsed by StreamerSonglist so please don't bother them with any issues you find in my code. Thankyou Streamersonglist for providing such a useful service to the streamer community. Very POG

Available Tools

6 tools
getQueueB

View current song queues with pagination support

ParametersJSON Schema
NameRequiredDescriptionDefault
streamerNameNoThe name of the streamer whose queue to fetch
limitNoMaximum number of songs to return (default: 50)
offsetNoNumber of songs to skip for pagination (default: 0)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosure. It indicates read-only behavior ('view') and pagination support, but does not mention side effects, authentication needs, rate limits, or error conditions. More detail is needed for a complete behavioral picture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no unnecessary words. Every word earns its place, clearly stating the action, resource, and a key feature (pagination).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with 3 fully documented parameters and no output schema, the description adequately covers the purpose and pagination. However, it lacks guidance on usage context (e.g., per-streamer) and could hint at the return format. It is minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter fully described. The description adds 'with pagination support', which contextualizes limit/offset but does not add meaning beyond the schema. Baseline 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'view' and the resource 'current song queues', and mentions pagination. It distinguishes from siblings like 'getSongDetails' (specific song) and 'monitorQueue' (monitoring). However, it could be more specific that the queue is per streamer, as indicated by the parameter.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'monitorQueue' or 'getSongs'. The description does not mention prerequisites, limitations, or exclude other contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getSongDetailsC

Get detailed information about a specific song by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
streamerNameNoThe name of the streamer who owns the song
songIdYesThe ID of the song to fetch details for

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only implies a read operation with 'get', but omits details like whether authentication is required, rate limits, what happens if the song doesn't exist, or if there are side effects. Minimal disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no waste. It is appropriately front-loaded but could add more value without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description does not explain what 'detailed information' contains (e.g., fields, format). Also missing error handling info (e.g., song not found). Incomplete for effective agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers both parameters with descriptions, achieving 100% coverage. The tool description adds no extra meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'get detailed information about a specific song by ID', which specifies the verb and resource. It distinguishes itself from siblings like getQueue (queue) or searchSongs (search), but 'detailed information' remains somewhat vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., getSongs, searchSongs). No prerequisites or exclusions are mentioned, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getSongsA

Fetch the complete song list for a streamer with pagination support

ParametersJSON Schema
NameRequiredDescriptionDefault
streamerNameNoThe name of the streamer whose song list to fetch
limitNoMaximum number of songs to return (default: 100)
offsetNoNumber of songs to skip for pagination (default: 0)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only discloses that the tool 'fetches' (implied read-only) and supports pagination, but omits details on ordering, filtering, rate limits, or authentication. This is minimal transparency for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no excess words. It conveys the core purpose efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 optional parameters, no output schema, and no annotations, the description provides adequate context for a basic list fetch. However, it lacks details on default behavior, ordering, and when to choose this over sibling tools, leaving some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter described. The description adds no new parameter-specific information beyond the schema, but the phrase 'complete song list with pagination support' reinforces the utility of limit/offset. Baseline 3 applies as description adds marginal value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Fetch'), the resource ('complete song list'), and the target ('for a streamer'), with pagination support. It effectively distinguishes from sibling tools like getQueue (queue), getSongDetails (details), and searchSongs (search) by emphasizing 'complete' list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving all songs with pagination, but does not explicitly state when to use this tool over alternatives like searchSongs or getSongDetails. No when-not or exclusion criteria are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getStreamerByNameB

Fetch detailed information about a specific streamer

ParametersJSON Schema
NameRequiredDescriptionDefault
streamerNameNoThe name of the streamer

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It states 'Fetch detailed information' but does not specify what 'detailed information' includes, any limitations, or that it is a read-only operation. This is adequate but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, very concise, but it lacks detail. It is appropriately sized for the complexity but could be more informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no output schema and no annotations, the description should clarify the output format or scope. It does not, leaving ambiguity about what 'detailed information' entails. Moderately complete for a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with parameter 'streamerName' described as 'The name of the streamer'. The description adds no extra meaning beyond the schema, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch detailed information about a specific streamer', which is a specific verb+resource. However, it does not differentiate from sibling tools like getQueue or getSongDetails, but the tool name itself is already quite specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There are no mentions of prerequisites, context, or scenarios where this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

monitorQueueB

Monitor queue changes with configurable polling intervals

ParametersJSON 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)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must disclose behavioral traits. It only says 'monitor queue changes' without explaining polling behavior, blocking nature, how results are returned, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the key action, no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a monitoring tool with no output schema and no annotations, the description lacks information on return format, termination behavior, and error handling. It is incomplete for an agent to use confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already provides descriptions for all parameters (100% coverage). The description adds minimal value by repeating 'configurable polling intervals' but does not clarify parameter specifics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (monitor), resource (queue changes), and configurable polling intervals. It distinguishes from siblings like getQueue which likely returns a static snapshot.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like getQueue. No mention of prerequisites or situations where monitoring is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

searchSongsB

Search within a streamer's song list by title or artist

ParametersJSON Schema
NameRequiredDescriptionDefault
streamerNameNoThe name of the streamer whose songs to search
queryYesSearch query to match against song titles and artists
limitNoMaximum number of results to return (default: 20)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description bears full responsibility. It only states basic action; missing behavioral traits like case sensitivity, partial match behavior, what happens on no results, or return format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with 10 words, no redundancy. Efficiently conveyed purpose without extraneous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and low complexity, description could have stated expected return format or example usage. It lacks enough context for an agent to fully understand invocation consequences.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already documented. Description adds 'by title or artist' which reiterates schema description for query. No additional semantic value beyond what schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Search', resource 'streamer's song list', and criteria 'by title or artist'. It distinguishes from sibling tools like getSongs by implying filtering, so purpose is specific and differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. For example, it doesn't clarify that getSongs might be better for listing all songs, or that searchSongs is for targeted lookups.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 12 tool updatesv1.0.0
    • RemovedgetOverlayData
    • RemovedgetPlayHistory
    • ChangedgetQueue1 field changed
      • changedInput schema / required
        Previous value: -[
        -  "streamerName"
        -]New value: +[]
    • RemovedgetQueueStats
    • ChangedgetSongDetails3 fields changed
      • changedInput schema / properties / songId / description
        Previous value: -"The unique identifier of the song"New value: +"The ID of the song to fetch details for"
      • changedInput schema / properties / songId / type
        Previous value: -"string"New value: +"number"
      • addedInput schema / properties / streamerName
        Added value: +{
        +  "description": "The name of the streamer who owns the song",
        +  "type": "string"
        +}
    • AddedgetSongs
    • ChangedgetStreamerByName1 field changed
      • changedInput schema / required
        Previous value: -[
        -  "streamerName"
        -]New value: +[]
    • RemovedgetStreamStats
    • RemovedmanageSongAttributes
    • RemovedmanageSongRequest
    • ChangedmonitorQueue1 field changed
      • changedInput schema / required
        Previous value: -[
        -  "streamerName"
        -]New value: +[]
    • ChangedsearchSongs8 fields changed
      • removedInput schema / properties / artist
        Removed value: -{
        -  "description": "Filter by specific artist name",
        -  "type": "string"
        -}
      • removedInput schema / properties / genre
        Removed value: -{
        -  "description": "Filter by music genre",
        -  "type": "string"
        -}
      • changedInput schema / properties / limit / default
        Previous value: -50New value: +20
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of songs to return (default: 50)"New value: +"Maximum number of results to return (default: 20)"
      • removedInput schema / properties / offset
        Removed value: -{
        -  "default": 0,
        -  "description": "Number of songs to skip for pagination (default: 0)",
        -  "type": "number"
        -}
      • changedInput schema / properties / query / description
        Previous value: -"Search query for song title or artist"New value: +"Search query to match against song titles and artists"
      • addedInput schema / properties / streamerName
        Added value: +{
        +  "description": "The name of the streamer whose songs to search",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[]New value: +[
        +  "query"
        +]
  2. 11 tool updates
    • First observedgetOverlayData
    • First observedgetPlayHistory
    • First observedgetQueue
    • First observedgetQueueStats
    • First observedgetSongDetails
    • First observedgetStreamerByName
    • First observedgetStreamStats
    • First observedmanageSongAttributes
    • First observedmanageSongRequest
    • First observedmonitorQueue
    • First observedsearchSongs

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct operation: queue viewing, song details, song list, streamer info, queue monitoring, and song search. No overlap exists.

Naming Consistency5/5

All tools use camelCase with a verb_noun pattern (getQueue, getSongDetails, etc.), and the verbs are consistent (get, monitor, search).

Tool Count5/5

Six tools cover the core functionalities of a song queue server without being excessive or insufficient.

Completeness5/5

The tool set fully covers the read-only domain: queue, song details, full list, search, streamer info, and monitoring. No obvious gaps for its purpose.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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