Back to Browse

Tunecatalog MCP Server

Developer ToolsModerate6.1MCP RegistryLocal
Free

Server data from the Official MCP Registry

Search and browse an AI music catalog by mood or genre; track details and streaming links.

About

Search and browse an AI music catalog by mood or genre; track details and streaming links.

Security Report

6.1
Moderate6.1Moderate Risk

tunecatalog is a small, well-structured read-only client for the StarSinger music catalog API. It validates all inputs before making requests, reads its API key from an environment variable, and uses only network_http, which fits its purpose. No malicious patterns, shell execution, or credential leakage were found; the only notes are minor (default API base URL override trusts env, and a README-acknowledged reconstruction of REST paths). Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 2 high severity). Package verification found 1 issue.

8 files analyzed · 9 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-cloudcorprecords-tunecatalog": {
      "args": [
        "-y",
        "@reneturcios/tunecatalog"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

tunecatalog

Browse an AI music catalog without leaving your agent. tunecatalog searches tracks by natural-language description, mood, or genre, pulls full track details with streaming links, surfaces what is trending, and lets you wander the artist roster and read a full artist profile with its discography.

Labelled subset — 5 of 9 tools. This rebuild builds only the five read-only catalog tools documented below. Four documented upstream tools are omitted: make_song, song_status, my_songs, and wallet. make_song spends a purchased song credit and, with none left, hands back a checkout link and price — a payment funnel — and the four also lack published argument schemas beyond prose, so they are left out and named here rather than silently dropped.

The five tools:

  • search_music — search the catalog by a natural-language query such as "upbeat jazz piano" or "sad violin ballad", optionally filtered by mood (purple chill, red energetic, blue emotional, gold uplifting, green nature, pink romantic, dark intense, rainbow eclectic) and capped with limit (default 10, max 50).
  • get_track — full details and a streaming URL for one track, by the track ID a search returned.
  • get_trending — the currently popular tracks, optionally capped with limit.
  • browse_artists — the catalog's artists, optionally filtered by genre (for example "jazz", "classical", or "pop") and capped with limit.
  • get_artist — an artist's full profile and discography, by artist ID or by handle (for example "miles_rivers"). Both arguments are optional; no at-least-one rule is invented locally.

A successful call returns the upstream JSON body verbatim: track responses carry title, artist, genre, mood, play count, likes, lyrics, cover art, and a streaming URL in the upstream's own shape.

Configuration

  • STARSINGER_API_KEY — required. Sent as Authorization: Bearer <key>. If it is unset, every tool fails with STARSINGER_API_KEY is not set and no request is made (the server still starts and lists tools).
  • STARSINGER_API_URL — optional. Defaults to https://mcp-api.starsinger.ai.

Upstream failures surface as starsinger error: HTTP <status> for a non-2xx reply, or starsinger unreachable when the request itself fails.

Wire paths are documented reconstructions. The upstream README pins the API host and the Bearer auth but not the REST paths, so the paths below are reconstructions and are labelled as such: GET /search, GET /tracks/<trackId>, GET /trending, GET /artists, and GET /artists/<artistId or handle>. The tool schemas themselves are pinned by the README's parameter tables.

CLI

Each tool is a subcommand taking one JSON argument string:

export STARSINGER_API_KEY="<your key>"
npx @reneturcios/tunecatalog search_music '{"query":"upbeat jazz piano","mood":"gold","limit":5}'
npx @reneturcios/tunecatalog get_track '{"trackId":"<track id>"}'
npx @reneturcios/tunecatalog get_trending '{"limit":10}'
npx @reneturcios/tunecatalog browse_artists '{"genre":"jazz"}'
npx @reneturcios/tunecatalog get_artist '{"handle":"miles_rivers"}'
npx @reneturcios/tunecatalog --version

Output is the tool's result text. Exit codes: 0 on success, 1 on a runtime error (including a validation or upstream failure), 2 on a usage error.

MCP server

npx -y @reneturcios/tunecatalog mcp

MCP client config:

{
  "mcpServers": {
    "tunecatalog": {
      "command": "npx",
      "args": ["-y", "@reneturcios/tunecatalog", "mcp"],
      "env": {
        "STARSINGER_API_KEY": "<your key>"
      }
    }
  }
}

Docker

docker run -i -e STARSINGER_API_KEY="<your key>" ghcr.io/cloudcorprecords/tunecatalog
docker run --rm -e STARSINGER_API_KEY="<your key>" ghcr.io/cloudcorprecords/tunecatalog get_trending '{"limit":5}'

Development

npm install
npm run build   # tsc -> dist/
npm test        # tsx --test test/*.test.ts (fake fetch only, no network)
npm run dev     # run the CLI from source

License

MIT — Copyright (c) 2026 Rene Turcios

Reviews

No reviews yet

Be the first to review this server!