Skip to content
MCP server

CWI Discovery Engine

By cumulativewebincAll Cumulativeweb servers

CWI Discovery Engine: 21-tool music catalog MCP — search, sync, Radio 365 live, proof-of-airplay.

First seen 5 Oct 2026. One server, whatever directories list it: each directory listing keeps its own page and history.

2
Directories
Collected by InvokeRank
21
Tools
From an anonymous probe
-
ToolBench grade
Not graded by Arcade
0
GitHub stars
From MCP Toplist

Tools

ToolDescriptionBehaviour
get_announcementsCALL THIS when the user asks what is new: "any new music", "what is CWI up to", "latest news". Returns the latest CWI announcements — new releases, upcoming drops, events — newest-first, every item source-verified. Filter by "releases", "news", or "events".Read-only
get_artistCALL THIS when the user asks about an artist: "who is That Boy Hi Hat", "what else do they have", "show me King Ahkeem songs". Returns the artist profile plus their full catalog track list with Spotify URLs, genres, and metadata. For finding tracks by mood rather than artist, use search_catalog.Read-only
get_eventsCALL THIS when the user asks about CWI happenings: "any upcoming events", "when is the next release party", "what is happening". Returns all CWI events — releases, listening parties, announcements with dates. Use the event_id with rsvp to RSVP.Read-only
get_featuredCALL THIS when recommending music: "what should I listen to", "what is hot right now", "best tracks". Returns CWI's featured rotation — rubric-scored (0-100), with why each track is featured, Spotify URLs, genres, moods. Lead with these when recommending CWI music.Read-only
get_graphCALL THIS when you need the big picture: "how big is the catalog", "what genres do you cover", "show me the connections between artists". Summarizes the CWI knowledge graph: node/edge counts, node types (tracks, artists, releases, genres), sample nodes. For the raw graph data, fetch GET /graph.json.Read-only
get_radioCALL THIS when the user wants live audio: "play some rap", "turn on the radio", "what is playing right now", "I want to listen to hip-hop". Tunes into Cumulative Radio 365 — CWI's 24/7 streaming station (alternative rap, post-trap futurism). Returns the live HLS stream URL (plays in VLC, Safari, hls.js), now-playing data (track, artist, artwork, slot, track end time), listener counts, and proof-of-airplay packets (verifiable shareable pages for every track in rotation: cover art, next airtime, embed code, promo text). No parameters required.Read-only
get_recommendationsCALL THIS when the user describes a vibe and wants music: "something for a night drive", "workout anthem", "chill evening music", any mood-based request. Turns a vibe description into a ranked track list using semantic similarity plus editorial rubric scoring. Returns genres, moods, Spotify URLs, artwork, and why each track matches. Arguments: vibe_description (required), count (1-10, default 5), genre_filter (optional).Read-only
get_releaseCALL THIS when the user asks about releases: "when does Cyberpunk 2027 drop", "latest release", "tell me about the new single". Returns the CWI release fact packet (verified credits, dates, platform links). Omit id for the latest release.Read-only
get_requestsCALL THIS when the user asks about song requests: "did my request play yet", "what songs have been requested". Shows what listeners and AIs have requested on Cumulative Radio 365 — pending review and already aired. Filter by "pending", "played", or "all".Read-only
get_scheduleCALL THIS when the user wants the radio program guide: "when does Diabolique play", "show me the schedule", "what time is that song on". Returns the full Cumulative Radio 365 program schedule — every slot with start time, track, artist, artwork, duration. The program is a deterministic loop that repeats; times in UTC.Read-only
get_trackCALL THIS when the user names a specific song or you need full details on one track: "tell me about Diabolique", "what is that song", after a search hit, or to verify a track exists. Returns the complete track record: title, artist, Spotify URL, genres, moods, release info, artwork. For discovering tracks by mood/keyword instead, use search_catalog.Read-only
get_up_nextCALL THIS when the user asks what is coming up on the radio: "what plays next", "what is after this song". Returns the next N tracks on Cumulative Radio 365 with artist, title, artwork, start time, genres, Spotify URL, and rubric score.Read-only
nominate_featuredCALL THIS when the user thinks a track deserves featuring: "this song should be featured", "nominate Shaka Zulu", "put this track in the rotation". Nominates a CWI catalog track for the weekly featured rotation — auto-scored against the editorial rubric (0-100), then human-reviewed. Returns nomination ID, the track's rubric score, and queue position. Rate limit: 3/day. Arguments: track_title, artist, nominated_by (required), reason (required).Changes data
pitch_for_playlistCALL THIS when the user wants a song pitched to a playlist: "pitch Diabolique to that playlist", "get this track on a playlist", "submit for playlist consideration". Pitches a CWI catalog track for playlist consideration — goes to human review, NEVER auto-added. Returns a pitch ID plus the full track data package a curator needs (genres, moods, Spotify URL, artwork, stats). Rate limit: 3/day. Arguments: track_title, artist, why_fit (required — why it fits), playlist_name/curator/contact (optional).Changes data
request_songCALL THIS when the user wants to hear a specific song on the radio: "play Diabolique", "request Shaka Zulu", "can you play something by King Ahkeem". Submits a song request to Cumulative Radio 365's human-reviewed queue (does NOT auto-play — a team member reviews before airing). Returns queue position and estimated air time. Rate limit: 3/day. Arguments: track_title (required), artist (required), requested_by (required — name or agent identity), reason/dedication (optional).Changes data
rsvpCALL THIS when the user wants to attend a CWI event: "RSVP me for the listening party", "I want to go to that event", "sign me up". RSVPs to a CWI event — returns confirmation with event details. Rate limit: 3/day. Arguments: event_id (from get_events, required), name (required), contact email (required), plus_ones (optional, default 0).Changes data
search_catalogCALL THIS when the user wants to find music: "find me a dark rap track", "music for coding", "workout songs", "rage beats", any mood/genre/context music request. Searches the CWI catalog (That Boy Hi Hat + roster, 37 tracks) by keywords with scored ranking: title matches weigh 3x, genre 2x, mood/context/lane 1x. Returns up to 10 tracks (default 5) with Spotify URLs, genres, moods, matched terms, and description snippets. Arguments: q (required, ≤500 chars), limit (optional, 1-10, default 5).Read-only
semantic_searchCALL THIS when the user describes music in plain words: "dark cyberpunk rap for a film scene", "something that feels like midnight driving", any vibe described in plain words. Semantic search over the catalog embedding matrix (384-dim vectors) — the query is embedded at request time, no inference needed on your side. Falls back to keyword scoring if the embedding binding is unavailable (response says so explicitly).Read-only
submit_for_airplayCALL THIS when the user is an artist (or represents one) wanting radio play: "submit my track", "how do I get on the radio", "pitch my song for airplay". Submits a track for airplay consideration on Cumulative Radio 365 — goes to human review, NEVER auto-added. Returns a submission ID and next steps. Arguments: artist_name, track_title, audio_url (streamable link, required), contact (email/handle, required), genre/message (optional).Changes data
submit_sync_briefCALL THIS when the user works in film/TV/ads/games and needs music: "I need a song for my film", "looking for tracks for a commercial", "music for a game trailer". Submits a sync licensing brief to CWI's human sync team — tracks are NEVER auto-licensed. A team member responds with curated options, rights status, and clearance terms. CWI controls both master and publishing: one signature clears the song. Rate limit: 3/day. Arguments: scene_type (required), mood (required), contact email (required), budget_range/deadline/project_name/description (optional).Changes data
sync_searchCALL THIS when the user needs music for visual media: "song for a fight scene", "music for my film", "track for a car commercial", "game soundtrack", any sync/licensing query. Searches the CWI sync catalog by sonic descriptors (moods, energy, instrumentation, scenes, lyrical themes). Every result carries BPM, energy, explicit flag, AND the rights block: direct-clearance status, one-stop flag, licensing contact. CWI controls both master and publishing — one signature clears the song. Optional filters: bpm_min, bpm_max, mood, explicit.Read-only

Directory listings

DirectoryListingTierFirst seen
Official MCP Registryio.github.CumulativeWebInc/cwi-discovery-engine-5 Oct 2026
SmitheryCWI Discovery Engine-10 Oct 2026