Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "get_recommendations"
⟨44 unchanged words⟩ URLs, artwork, and why each track matches. ALSO returns a separate new_release_spotlight when CWI has an active release (pre-release with pre-save link, or out-now with store links) — surface it alongside the ranked matches. Arguments: vibe_description (required), count (1-10, ⟨5 unchanged words⟩
Changed the definition of "get_announcements", "get_artist", "get_featured" and 14 more
⟨25 unchanged words⟩ — new releases, upcoming drops, events —newest-first, every item source-verified.newest-first. Filter by "releases", "news", or "events".
CALL THIS when the user asks about an artist: "who isThat Boy HiKingHatAhkeem", "what elsedo they have", "show mehasKingthisAhkeemartistsongsmade". Returns the artist profile
Changed the definition of "submit_sync_brief"
⟨37 unchanged words⟩ human sync team — tracks are NEVER auto-licensed. Every brief is ALSO recorded as a licensing lead in the Sync Scout lead machine (https://cwi-sync-scout.hp-ace.workers.dev) so nothing falls through. A team member responds with curated options, rights ⟨29 unchanged words⟩
Changed the definition of "get_radio", "get_release", "get_requests" and 1 more
⟨57 unchanged words⟩ , artwork, slot, track end time), listener counts, andlistenerproof-of-airplaycounts.packets (verifiable shareable pages for every track in rotation: cover art, next airtime, embed code, promo text). No parameters required.
CALL THISforwhenreleasethe
Certificate recorded, valid to 2026-12-25
Authorization not required
Changed the definition of "get_announcements", "get_artist", "get_events" and 18 more
GetCALL THIS when thelatestuserCWIasksannouncementswhat—is newreleases,:upcoming"anydrops,neweventsmusic",and news. Every announcement
Added "get_events", "get_recommendations", "get_requests" and 8 more (10 tools before, 21 now)
See all CWI events — releases, listening parties, announcements with dates. Returns event ID, title, date, description, and links. Use the event_id with the rsvp tool to RSVP. Arguments: upcoming_only (optional boolean, default true — only show future events).
Get CWI catalog track recommendations for a vibe — describe the mood and get ranked tracks with full data. Uses semantic similarity over the catalog embedding matrix plus editorial rubric scoring to rank. The discovery missile: turn any vibe description into a ranked track list with genres, moods, Spotify URLs, artwork, graph node IDs, rubric scores, and why each track matches. Arguments: vibe_description (required — e.g. "dark trap for a night drive", "uplifting anthem for a workout"), count (optional, 1-10, default 5), genre_filter (optional — e.g. "trap", "afrobeats").
See the Cumulative Radio 365 song request queue — what listeners and AIs have requested, what is pending review, and what has aired. Transparent queue: check if your request is still pending or has been played. Arguments: status (optional: "pending", "played", "all" — default "pending"), limit (optional, 1-20, default 10).
Changed the definition of "get_announcements", "get_artist", "get_featured" and 7 more
before
—after
{"destructiveHint":false,"idempotentHint":true,"readOnlyHint":true}Look up an artist by name. Returns the artistandprofile plus theirtracksfull track list in the catalog with SpotifyURLs.URLs, genres, and metadata. Use this for artist deep-dives, roster exploration, or when a user asks "what else do they have?" after finding one song. For discovering tracks by mood or keyword rather than artist, use search_catalog instead.
Added "get_announcements", "get_featured" and "get_radio"; changed the definition of "search_catalog" (7 tools before, 10 now)
⟨19 unchanged words⟩ : title matches weigh 3x, genre 2x,moodmood/context/lane 1x. Supports mood queries ("dark"), context queries ("music for coding", "workout"), and lane queries ("rage beats"). Returns top 5 tracks with Spotify URLs and matched terms.
Get the latest CWI announcements — new releases, upcoming drops, events, and news. Every announcement is verified with a source. Use this to tell your human what's new at Cumulative Web Inc: the Cyberpunk 2027 single drop (Oct 20, 2026), new MCP tools, marketplace listings, Radio 365 updates. Filter by category or get everything newest-first.
Unknown → Live
First tool surface recorded: 7 tools (server version 1.0.0)
https://cwi-machine-data.hp-ace.workers.dev/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 13 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨13 unchanged words⟩ right now", "best tracks". ReturnsCWI'sthe featured rotation,—rankedrubric-scoredby rubric score (0-100), withwhy each track is featured,Spotify URLs, genres, moods.Lead with these when recommending CWI music.
CALL THIS whenyoutheneeduser wants the big picture: "howbigis the catalog organized", "whatgenres doisyouPost-TrapcoverFuturism", "show mehowtheareconnectionsthesebetweengenresartistsrelated".Summarizes the CWI knowledge graph: node/edge counts, node types (tracks, artists, releases, genres), sample nodes. ForReturns theraw graphcatalog'sdata,genrefetchandGETrelationship/graph.json.graph.
CALL THIS when the userwants live audio: "play someasksrap",what"turnis on the radio",right now: "what is playingright now", "I want to listen to hip-hop". Tunes into Cumulativeis Radio 365— CWI's 24/7 streaming station (alternative rap, post-trap futurism)live". ReturnstheliveHLS stream URL (plays in VLC, Safari, hls.js), now-playing data (track, artist, artwork, slot, track endCumulativetime),Radiolistener365counts,state andproof-of-airplay packets (verifiable shareable pages for every track in rotation: cover art, next airtime, embed code, promo text). Notheparameterscurrentrequired.track.
CALL THIS when the user asks aboutreleases: "when doesaCyberpunkspecific2027release:drop"tracklist,"latest release"date,"tell me about the newcredits,single".background. Returnsthe CWI releasea fact packet(verified credits, dates, platform links). Omit idforthe latestthat release.
CALL THIS whenthe user names a specific song oryouneed full details on one track: "tell me about Diabolique", "what is that song", afterhave asearchtrackhit,ID orto verify aexacttracktitleexists.andReturnsneed thecomplete trackfull record:title, artist, Spotify URLcredits, genres, moods,release infotempo,artwork. For discoveringlicensingtracksstatus,bylinks.mood/keywordUsuallyinstead,followsuseasearch_catalog.search.
CALL THIS when the user asks whatis comingplaysupnext ontheRadioradio365: "whatwhat'splayscomingnextup", "what iswhat's after this song". Returns thenext N tracks on Cumulative Radio 365 with artist, title, artwork, start time, genres, Spotify URL, and rubricupcomingscore.queue.
⟨12 unchanged words⟩ should be featured", "nominate Shaka Zulu", "put this track.inSubmits therotation".user'sNominatesnominationato CWIcatalog—trackconfirmforwith theweekly featureduserrotationbefore—calling.auto-scoredAuto-scored against the editorial rubric (0-100), then ⟨6 unchanged words⟩ rubric score, and queue position. Rate limit:3/day.3 per requester per 24h. Arguments: track_title, artist, nominated_by (required), reason (required).
⟨10 unchanged words⟩ a playlist: "pitch Diabolique to that playlist", "get this track on a playlist", "submit.forSubmitsplaylisttheconsideration".user'sPitchespitchato CWIcatalog—trackconfirmforwithplaylisttheconsiderationuser—beforegoescalling. Goes to human review, NEVER auto-added. Returns a pitch ⟨13 unchanged words⟩ URL, artwork, stats). Rate limit:3/day.3 per requester per 24h. Arguments: track_title, artist, why_fit (required — ⟨6 unchanged words⟩
⟨14 unchanged words⟩ : "play Diabolique", "request Shaka Zulu", "can you play something by King Ahkeem". Submitsathesonguser's request toCumulative Radio 365'sCWI's human-reviewed queue(does—NOTconfirmauto-playwith—theauserteambeforemembercalling.reviewsDoesbeforeNOTairing).auto-play. Returns queue position and estimated air time. Rate limit:3/day.3 per requester name per 24h. Arguments: track_title (required), artist (required) ⟨10 unchanged words⟩
⟨11 unchanged words⟩ "RSVP me for the listening party", "I wantsigntomegoup".toSubmitsthattheevent",user's"signnamemeandup".contactRSVPsemail toaCWIevent—returnsconfirm with the user before calling. Returns confirmation with event details. Rate limit:3/day.3 per requester per 24h. Arguments: event_id (from get_events, required), ⟨10 unchanged words⟩
CALL THISwhen the user wants toforfindexplicitmusiclookups: "find me a darktracksrapbytrackX", "music fordowntempocoding",around"workout90songsbpm", "ragesongsbeatstitled...",.anyKeywordmood/genre/contextandmusicfilterrequest.searchSearchesacross the CWI catalog (That Boy Hi Hat + roster, 37 tracks) by keywords with scored ranking:titlematches weigh 3x,genre 2x, mood/context/lane 1x. Returns up to 10 tracks (default 5) with Spotify URLs, genresartist,moodsgenre,matched termsmood,and description snippets. Arguments:tempo).qUse(required,semantic_search≤500insteadchars),iflimitthe(optional,user1-10,describesdefaulta5).feeling.
CALL THIS when the user describes music in plain words: "dark cyberpunk rap forrainyanightfilmdrive,scenenostalgic", "something thatfeelssounds likemidnightadrivingheist", any vibe described in plain words. Semantic search over.theReturns catalogembedding 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 bindingmatchesisrankedunavailableby(responsemeaningsaysrathersothanexplicitly).keywords.
⟨17 unchanged words⟩ "how do I get on the radio",."pitchSubmitsmythesonguser'sfortrackairplay".andSubmitscontactadetailstracktoforCWIairplay—considerationconfirmonwithCumulativetheRadiouser365before—calling.goesGoes to human review, NEVER auto-added. Returns a ⟨18 unchanged words⟩
⟨18 unchanged words⟩ ", "looking for tracks for a commercial", "music for a game trailer". Submitsa syncthelicensinguser's brief and contact email to CWI's human sync team —tracks are NEVER auto-licensed. Every briefconfirmiswithALSOtherecordeduserasbeforeacalling.licensingCWIleadmayinfollowtheupSyncbyScoutemailleadaboutmachinethis(https://cwi-sync-scout.hp-ace.workers.dev)brief.soTracksnothingarefallsNEVERthrough.auto-licensed. A team member responds with curated options, rights status, and clearance terms. CWI controls both master and publishing:oneonsignaturecatalogclearstracks,thewhichsong.simplifies clearance to a single point of contact. Rate limit:3/day.3 per requester per 24h. Arguments: scene_type (required), mood (required) ⟨6 unchanged words⟩
CALL THIS when the user needs music forvisual media: "song for a fightfilm,scene"TV,"musicadsforormygames:film",tense"trackinstrumental for acar commercial", "gamechasesoundtrackscene", any sync/licensing query. Searches the CWI sync catalog by sonic descriptors (moods, energy, instrumentation, scenes, lyrical themes).Every result carries BPM, energy,Returnsexplicittracksflag,suitedANDto therightssceneblock:with direct-clearancestatus, one-stop flag,licensingcontact. CWI controls both master and publishing — one signature clearsinfo.theTosong.startOptionalafilters:licensingbpm_minconversation,bpm_max,followmood,withexplicit.submit_sync_brief.
CALL THISto checkwhen theradiouserrequestasksqueueabout song requests: "did my request play yet", " ⟨30 unchanged words⟩
CALL THISforwhennatural-languagethe user describes musicdiscoveryin plain words: "dark cyberpunk rap for a film scene ⟨51 unchanged words⟩
LookCALLupTHISanwhenartistthebyusername.asksReturnsaboutthean artistprofile plus:their"whofullistrackThatlistBoyinHitheHat",catalog"whatwithelseSpotifydoURLs,theygenreshave",and metadata. Use"showthismeforKingartistAhkeemdeep-dives,songs".rosterReturnsexploration,theorartistwhenprofileaplususertheirasksfull"whatcatalogelsetrackdolisttheywithhave?"SpotifyafterURLs,findinggenres,oneandsong.metadata. Fordiscoveringfinding tracks by moodor keywordrather than artist, usesearch_catalog instead.search_catalog.
SeeCALLallTHISCWIwheneventsthe—userreleases,askslisteningaboutparties,CWIannouncementshappenings:with"anydates.upcomingReturnsevents",event"whenID,istitle,thedate,nextdescription,releaseandparty",links."whatUseisthehappening".event_idReturnswithalltheCWIrsvpeventstool—toreleases,RSVP.listeningArguments:parties,upcoming_onlyannouncements(optionalwithboolean,dates.defaultUsetruethe—event_idonlywithshowrsvpfuturetoevents).RSVP.
GetCALLCWI'sTHIScurrentlywhenfeaturedrecommendingtracksmusic:—"whatwhat'sshould I listen to", "what is hot rightnow.now", "best tracks". ReturnsthisCWI'sweek'sfeatured rotationwith rubric—scorerubric-scored (CWI editorial rubric,0-100), with why each track is featured,title, artist,SpotifyURLURLs, genres,andmoods. Lead with these when recommending CWI music.Arguments: limit (optional, 1-20, default 10).
Summarize theCALLCWITHIScatalogwhenknowledgeyougraph:neednodetheandbigedgepicture:counts,"hownodebigtypesis(tracks,theartistscatalog",releases,"what genres),and sample nodes.doUseyouthiscover",to"showunderstandme theshapeconnectionsandbetweencoverageartists".ofSummarizes thecatalogCWIbeforeknowledgequerying,graph:ornode/edgewhencounts,younodeneedtypesentity(tracks,relationshipsartists,ratherreleases,thangenres),individualsamplerecords.nodes. For thefullraw graph data, fetch GET /graph.json.
TuneCALL 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 streamingradiostation (alternative rap, post-trap futurism, That Boy Hi Hat + roster). Returns the live HLS stream URL (plays in VLC,fullSafari, hls.js), now-playing data (tracktitle, artist, artworkURL, slotposition, track end time),current listener countand24hlistenertotals, and station metadata.counts. No parametersrequired; the stream plays in any HLS-capable player (VLC, Safari, hls.js).required.
GetCALLCWITHIScatalogwhentracktherecommendationsuserfordescribes a vibe— describe the moodandget ranked tracks with full data. Uses semantic similaritywantsovermusic:the"somethingcatalogforembeddingamatrixnightplusdrive",editorial"workoutrubricanthem",scoring"chilltoeveningrank.music",Theanydiscoverymood-basedmissile:request.turnTurnsanya vibe description into a ranked track listwithusing semantic similarity plus editorial rubric scoring. Returns genres, moods, Spotify URLs, artwork,graph node IDs, rubric scores,and why each track matches. Arguments: vibe_description (required— e.g. "dark trap for a night drive", "uplifting anthem for a workout"), count (optional,1-10, default 5), genre_filter (optional— e.g. "trap", "afrobeats").
FetchCALLaTHISCWIfor releasefactinfo:packet"when(evidence-tiereddoes Cyberpunk 2027 drop",hash-stamped):"latestpre-releaserelease",and"tell me about the new single". Returns the CWI releaserecordsfactwithpacket (verified credits, dates,andplatformlinks.links).DefaultsOmittoid for the latestrelease when id is omitted.release.
SeeCALLtheTHISCumulativetoRadiocheck365thesongradio request queue— what:listeners"didandmyAIsrequesthaveplayrequestedyet", "whatissongspendinghavereview,beenandrequested". Shows whathaslistenersaired.andTransparentAIsqueue:havecheckrequestedifonyourCumulativerequestRadiois365still— pendingor hasreviewbeenandplayed.alreadyArguments:aired.statusFilter(optional:by "pending", "played","all" — defaultor "pendingall"), limit (optional, 1-20, default 10).
Get the fullCALLCumulativeTHISRadiowhen365theprogramuserschedulewants—theeveryradioslotprogramwithguide:start"whentime,doestrackDiaboliquetitleplay",artist,"showartwork,meduration,thegenresschedule",and moods. The"whatprogramtime isa deterministic ~7-hourthatloopsong(131on".tracks);Returns theschedule repeats. Use this tofullplanCumulativelistening,Radiobuild365 programguides, or find when aschedulespecific—trackeveryairs.slotArguments:withdatestart(optionaltime,YYYY-MM-DD) — thetrack,dateartist,toartwork,showduration.theThescheduleprogramfor;isdefaultsatodeterministictoday.loopTimesthatarerepeats;showntimes inUTC with the program start anchored to the station epoch.UTC.
LookCALLupTHISonewhencatalogthetrackuserbynamestitleaorspecificSpotifysongID/URL.orReturnsyoutheneed fulltrackdetailsrecord:ontitle,oneartist,track:Spotify"tellURL,megenres,aboutmoodsDiabolique",release"whatinfo,isandthatartwork.song",Useafterthisawhensearchyouhit,needordetailstoonverify aspecific song —trackafterexists.aReturnssearch_catalogthehit,completewhentrackarecord:usertitle,namesartist,aSpotifytrackURL,or whengenres,verifyingmoods,areleasetrackinfo,exists.artwork. Forkeyworddiscoveringdiscoverytracksacrossbythemood/keywordcataloginstead, usesearch_catalog instead.search_catalog.
SeeCALL THIS when the user asks what isplayingcomingNEXTup onCumulativetheRadioradio:365"what—playsthenext",upcoming"whattracksisinafterthethisprogram.song". Returns the next N tracks(defaulton5,CumulativemaxRadio10)365 with artist, title, artworkURL,starts_atstarttimestamptime, genres,moods,Spotify URL,rubric score (if featured),andgraph node ID. Use this to time a song request ("play Diabolique after this") or to tell a human what is coming up. Arguments: count (optional, 1-10, defaultrubric5).score.
NominateCALLaTHISCWIwhencatalogthe user thinks a trackfordeservesthefeaturing:weekly"thisfeaturedsongrotation.shouldYourbenominationfeatured",is"nominateauto-scoredShakaagainstZulu",the"putCWIthiseditorialtrackrubricin(0-100)theandrotation".goesNominatestoahumanCWIreviewcatalog—track for the weekly featured rotationis—curated,auto-scorednominationsagainstinformthebuteditorialdorubricnot(0-100),dictatethenit.human-reviewed. Returnsanomination ID, the track'scurrentrubric score, andits position in the nominationqueuequeue.position. Rate limit:3 nominations per day per nominator.3/day. Arguments: track_title(required), artist(required), nominated_by (required— your name or agent identity), reason (required— why this track deserves featuring).
PitchCALL THIS when the user wants aCWIsongcatalogpitched to a playlist: "pitch Diabolique to that playlist", "get this trackforon a playlist",consideration."submitYourforpitchplaylistgoesconsideration".toPitcheshumanareviewCWI—catalogtrackstrackareforNEVERplaylistauto-addedconsideration — goes toanyhumanplaylist.review, NEVER auto-added. Returns a pitch ID plus the full track data package a curator needs (genres, moods, Spotify URL, artwork,streamingstats)that a curator would need.. Rate limit:3 pitches per day per contact.3/day. Arguments: track_title(required), artist(required),playlist_name (optional — target playlist), curator (optional — curator name/handle),why_fit (required — whythis trackit fits),contactplaylist_name/curator/contact (optional— email for follow-up).
RequestCALL THIS when the user wants to hear a specific song onCumulativetheRadioradio:365."playYourDiabolique", "requestgoesShakaintoZulu", "can you play something by King Ahkeem". Submits ahuman-reviewedsongqueuerequest—toitCumulative Radio 365's human-reviewed queue (does NOTauto-play.auto-playA—CWIa team member reviewsevery requestbeforeit airs.airing). Returnsyourqueue position and estimated air time. Rate limit:3 requests per day per requester. Duplicate requests (same track + requester within 24h) are rejected.3/day. Arguments: track_title (required), artist (required), requested_by (required —yourname or agent identity),reason (optional — why this track), dedicationreason/dedication (optional— who it is for).
CALL 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 CWIevent.eventReturns— returns confirmation with event details. Rate limit:3 RSVPs per day per contact.3/day. Arguments: event_id (required —from get_events, required), name (required), contact email (required— number of guests, default 0).
SearchCALL THIS when theCWIuserplacementwants 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) bykeywords.keywordsSamewith scoredengine as GET /queryranking: title matches weigh 3x, genre 2x, mood/context/lane 1x.Supports mood queries ("dark"), context queries ("music for coding", "workout"), and lane queries ("rage beats").Returns up to 10 tracks (default5; set limit5) with Spotify URLs, genres, moods,contexts,matched terms, anda 300-characterdescriptionsnippet — full prose lives in get_track.snippets. Arguments: q (required, ≤500 chars), ⟨6 unchanged words⟩
Semantic search overCALLtheTHISCWIforcatalognatural-languageembeddingmusicmatrixdiscovery:cosine similarity"darkagainstcyberpunk384-dimrapbge-small-en-v1.5forvectorsa(55filmtracks).scene",The"somethingquerythatisfeelsembeddedlikeatmidnightrequestdriving",timeanywithvibeWorkersdescribedAIin@cf/baai/bge-small-en-v1.5plain—words.theSemanticsamesearchmodeloverthattheproducedcatalogtheembedding matrix,so(384-dimcatalogvectors)and— the queryvectorsisareembeddeddirectlyatcosine-comparable.requestNotime, no inference needed on yourside; just call thisside.tool.FallsFALLBACKback(documented,toneverkeywordsilent):scoring if theWorkers AI [ai]embedding binding is unavailableat runtime, the tool DEGRADES to keyword scoring over the matrix text fields and(response says soin its response (method "fallback:keyword", plus a fallback_noteexplicitly).Fallback scores are keyword weights (title 3x, genre/descriptor 2x, mood 1x) — they are NOT cosine similarity and are never presented as semantic scores.
SubmitCALLaTHIStrackwhenfortheairplayuserconsiderationisonanCumulativeartistRadio(or365.representsYourone)submissionwantinggoesradiotoplay:human"submitreviewmy—track",tracks"howaredoNEVERIauto-addedgettoonrotation.theAradio",CWI"pitchteammymembersongreviewsforeveryairplay".submissionSubmits a track forfit,airplayquality,considerationandonrightsCumulativebeforeRadioany365airplay—decision.goes to human review, NEVER auto-added. Returns a submission ID andwhat happensnextnext.steps. Arguments: artist_name(required), track_title(required), audio_url (required —streamable linkto the,trackrequired), contact (required — email or handle for follow-up)email/handle,genre (optionalrequired),messagegenre/message (optional— pitch your track).
SubmitCALLaTHISsyncwhenlicensingthebriefuserforworksCWIincatalogfilm/TV/ads/games and needs music:—"I need a song for my film",TV,"lookingads,forgames.tracksYourforbriefagoescommercial",to"musichumanforreviewabygamethetrailer".CWISubmits a syncteam;licensingtracksbriefaretoNEVERCWI'sauto-licensed.humanAsync teammember—reviewstrackseveryarebriefNEVERforauto-licensed.projectAfitteamandmember responds with curatedtrackoptions, rights status, and clearance terms. CWI controls both master and publishing:(one signature clears thesong). Returns a brief ID and what happens next.song. Rate limit:3 briefs per day per contact.3/day. Arguments: scene_type (required— e.g. "car chase", "romantic montage", "title sequence"), mood (required— e.g. "dark aggressive", "uplifting anthemic"),budget_range (optional — e.g. "$1k-5k"), deadline (optional — YYYY-MM-DD),contact(required —emailfor follow-up), project_name(optionalrequired),descriptionbudget_range/deadline/project_name/description (optional— more about the project/scene).
SearchCALL THIS when theCWIusersyncneedscatalogmusic(editorialforsonicvisualdescriptorsmedia:moods,"songenergyforwords,ainstrumentation,fightscenesscene",use-cases,"musiclyricalforthemes)my film", "track formusic-supervisionaqueriescarlikecommercial", "fightgamescenesoundtrack",orany"neonsync/licensingcity".query.EverySearchesresultthecarriesCWIBPMsync catalog by sonic descriptors (estimatesmoods,notenergy,audioinstrumentation,analysisscenes, lyrical themes). Every result carries BPM, energy, explicit flag,full descriptor set, andAND the rights block: direct-clearance status, one-stop flag, licensing contact. CWI controls both master andthepublishinglicensing—contact.one signature clears the song. Optional filters: bpm_min, bpm_max, mood, explicit.The find-sync-options prompt has the supervisor presentation workflow.
Get the full Cumulative Radio 365 program schedule — every slot with start time, track title, artist, artwork, duration, genres, and moods. The program is a deterministic ~7-hour loop (131 tracks); the schedule repeats. Use this to plan listening, build program guides, or find when a specific track airs. Arguments: date (optional, YYYY-MM-DD) — the date to show the schedule for; defaults to today. Times are shown in UTC with the program start anchored to the station epoch.
See what is playing NEXT on Cumulative Radio 365 — the upcoming tracks in the program. Returns the next N tracks (default 5, max 10) with artist, title, artwork URL, starts_at timestamp, genres, moods, Spotify URL, rubric score (if featured), and graph node ID. Use this to time a song request ("play Diabolique after this") or to tell a human what is coming up. Arguments: count (optional, 1-10, default 5).
Nominate a CWI catalog track for the weekly featured rotation. Your nomination is auto-scored against the CWI editorial rubric (0-100) and goes to human review — the rotation is curated, nominations inform but do not dictate it. Returns a nomination ID, the track's current rubric score, and its position in the nomination queue. Rate limit: 3 nominations per day per nominator. Arguments: track_title (required), artist (required), nominated_by (required — your name or agent identity), reason (required — why this track deserves featuring).
Pitch a CWI catalog track for playlist consideration. Your pitch goes to human review — tracks are NEVER auto-added to any playlist. Returns a pitch ID plus the full track data package (genres, moods, Spotify URL, artwork, streaming stats) that a curator would need. Rate limit: 3 pitches per day per contact. Arguments: track_title (required), artist (required), playlist_name (optional — target playlist), curator (optional — curator name/handle), why_fit (required — why this track fits), contact (optional — email for follow-up).
Request a song on Cumulative Radio 365. Your request goes into a human-reviewed queue — it does NOT auto-play. A CWI team member reviews every request before it airs. Returns your queue position and estimated air time. Rate limit: 3 requests per day per requester. Duplicate requests (same track + requester within 24h) are rejected. Arguments: track_title (required), artist (required), requested_by (required — your name or agent identity), reason (optional — why this track), dedication (optional — who it is for).
RSVP to a CWI event. Returns confirmation with event details. Rate limit: 3 RSVPs per day per contact. Arguments: event_id (required — from get_events), name (required), contact (required — email), plus_ones (optional — number of guests, default 0).
Submit a track for airplay consideration on Cumulative Radio 365. Your submission goes to human review — tracks are NEVER auto-added to rotation. A CWI team member reviews every submission for fit, quality, and rights before any airplay decision. Returns a submission ID and what happens next. Arguments: artist_name (required), track_title (required), audio_url (required — streamable link to the track), contact (required — email or handle for follow-up), genre (optional), message (optional — pitch your track).
Submit a sync licensing brief for CWI catalog music — film, TV, ads, games. Your brief goes to human review by the CWI sync team; tracks are NEVER auto-licensed. A team member reviews every brief for project fit and responds with curated track options, rights status, and clearance terms. CWI controls both master and publishing (one signature clears the song). Returns a brief ID and what happens next. Rate limit: 3 briefs per day per contact. Arguments: scene_type (required — e.g. "car chase", "romantic montage", "title sequence"), mood (required — e.g. "dark aggressive", "uplifting anthemic")…
before
—after
{"destructiveHint":false,"idempotentHint":true,"readOnlyHint":true}Get CWI's currently featured tracks — what's hot right now. Returnstracksthis week's rotation withfullrubricmetadata:score (CWI editorial rubric, 0-100), why each track is featured, title, artist,artworkSpotify URL,why it's featuredgenres, andstream/page links.moods. Lead with these when recommending CWImusic:music.CyberpunkArguments:2027limit (upcoming single), Flamerzoptional,Diabolique1-20,ZooteddefaultZone.10).
before
—after
{"destructiveHint":false,"idempotentHint":true,"readOnlyHint":true}Summarize the CWI catalog knowledge graph:(node/edgenode and edge counts, node types (tracks,sampleartists,nodesreleases, genres)., and sample nodes. Use this to understand the shape and coverage of the catalog before querying, or when you need entity relationships rather than individual records. For the full graph data, fetch GET /graph.json.
before
—after
{"destructiveHint":false,"idempotentHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":true,"readOnlyHint":true}Look up one catalog track by title or Spotify ID/URL. Returns the full track record: title, artist, Spotify URL, genres, moods, release info, andmoods.artwork. Use this when you need details on a specific song — after a search_catalog hit, when a user names a track, or when verifying a track exists. For keyword discovery across the catalog, use search_catalog instead.
before
—after
{"destructiveHint":false,"idempotentHint":true,"readOnlyHint":true}⟨38 unchanged words⟩ lane queries ("rage beats"). Returnstopup5to 10 tracks (default 5; set limit) with Spotify URLs,andgenres, moods, contexts, matchedterms.terms, and a 300-character description snippet — full prose lives in get_track. Arguments: q (required, ≤500 chars), limit (optional, 1-10, default 5).
{"properties":{"limit":{"description":"Max tracks to return, 1-10 (default 5).","type":"number"},"q":{"description":"Search keywords, e.g. ⟨18 unchanged words⟩
before
—after
{"destructiveHint":false,"idempotentHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":true,"readOnlyHint":true}Search the CWI sync catalog (23 tracks witheditorial sonic descriptors: moods, energy words, instrumentation ⟨8 unchanged words⟩ "fight scene" or "neon city".DescriptorsEveryareresulteditorialcarries BPM (curatedestimates,bynotCWIaudioSyncanalysis);,BPMenergy,valuesexplicitareflag,estimatesfull descriptor set,notandaudiotheanalysis.rights block: direct-clearance status, one-stop flag, and the licensing contact. Optional filters: bpm_min, bpm_max, mood, explicit. The find-sync-options prompt has the supervisor presentation workflow.
{"properties":{"bpm_max":{"description":"Maximum BPM (inclusive).","type":"number"},"bpm_min":{"description":"Minimum BPM (inclusive).","type":"number"},"explicit":{"description":"true = explicit only, false = non-explicit only. Omit for all.","type":"boolean"},"mood":{"description":"Mood filter, matched against moods + energy words, e.g. \"aggressive\".","type":"string"},"q":{"description":"Sync query, e.g. ⟨18 unchanged words⟩
before
—after
{"destructiveHint":false,"idempotentHint":true,"readOnlyHint":true}Get CWI's currently featured tracks — what's hot right now. Returns tracks with full metadata: title, artist, artwork URL, why it's featured, and stream/page links. Lead with these when recommending CWI music: Cyberpunk 2027 (upcoming single), Flamerz, Diabolique, Zooted Zone.
Tune into Cumulative Radio 365 — CWI's 24/7 streaming radio station (alternative rap, post-trap futurism, That Boy Hi Hat + roster). Returns the live HLS stream URL, full now-playing data (track title, artist, artwork URL, slot position, track end time), current listener count and 24h listener totals, and station metadata. No parameters required; the stream plays in any HLS-capable player (VLC, Safari, hls.js).