Cwi Discovery Engine
CWI Discovery Engine: 29-tool music catalog MCP — search, sync, Radio 365 live, chaining.
Connect it
Settings → Connectors → Add custom connector
URL: https://cwi-machine-data.hp-ace.workers.dev/mcpSettings → Apps & Connectors → Advanced → Developer mode
Create connector with URL: https://cwi-machine-data.hp-ace.workers.dev/mcp{
"mcpServers": {
"cwi-discovery-engine": {
"url": "https://cwi-machine-data.hp-ace.workers.dev/mcp"
}
}
}claude mcp add --transport http cwi-discovery-engine https://cwi-machine-data.hp-ace.workers.dev/mcp{
"servers": {
"cwi-discovery-engine": {
"type": "http",
"url": "https://cwi-machine-data.hp-ace.workers.dev/mcp"
}
}
}29 tools, verified live
search_catalogread-onlyCALL THIS for explicit lookups: "tracks by X", "downtempo around 90 bpm", "songs titled...". Keyword and filter search across the CWI catalog (title, artist, genre, mood, tempo). Use semantic_search instead if the user describes a feeling.
get_trackread-onlyCALL THIS when you have a track ID or exact title and need the full record: credits, genres, moods, tempo, licensing status, links. Usually follows a search.
get_artistread-onlyCALL THIS when the user asks about an artist: "who is King Ahkeem", "what else has this artist made". Returns the artist profile and catalog.
sync_searchread-onlyCALL THIS when the user needs music for film, TV, ads or games: "tense instrumental for a chase scene". Returns tracks suited to the scene with direct-clearance licensing info. To start a licensing conversation, follow with submit_sync_brief.
semantic_searchread-onlyCALL THIS when the user describes music in plain words: "rainy night drive, nostalgic", "something that sounds like a heist". Returns catalog matches ranked by meaning rather than keywords.
get_graphread-onlyCALL THIS when the user wants the big picture: "how is the catalog organized", "what is Post-Trap Futurism", "how are these genres related". Returns the catalog's genre and relationship graph.
get_releaseread-onlyCALL THIS when the user asks about a specific release: tracklist, date, credits, background. Returns a fact packet for that release.
get_radioread-onlyCALL THIS when the user asks what is on the radio right now: "what is playing", "is Radio 365 live". Returns live Cumulative Radio 365 state and the current track.
get_announcementsread-onlyCALL 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. Filter by "releases", "news", or "events".
get_featuredread-onlyCALL THIS when recommending music: "what should I listen to", "what is hot right now", "best tracks". Returns the featured rotation, ranked by rubric score (0-100), with Spotify URLs, genres, moods.
get_up_nextread-onlyCALL THIS when the user asks what plays next on Radio 365: "what's coming up", "what's after this song". Returns the upcoming queue.
get_scheduleread-onlyCALL 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.
request_songCALL THIS when the user wants to hear a specific song on the radio: "play Diabolique", "request Shaka Zulu". Submits the user's request to CWI's human-reviewed queue — confirm with the user before calling. Does NOT auto-play. Returns queue position and estimated air time. Rate limit: 3 per requester name per 24h. Arguments: track_title (required), artist (required), requested_by (required — name o
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". Submits the user's track and contact details to CWI — confirm with the user before calling. 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, requ
get_requestsread-onlyCALL 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".
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". Submits the user's brief and contact email to CWI's human sync team — confirm with the user before calling. CWI may follow up by email about this brief. Tracks are NEVER auto-licensed. A team member responds with curated options, rights status, and clearance terms
pitch_for_playlistCALL THIS when the user wants a song pitched to a playlist: "pitch Diabolique to that playlist". Submits the user's pitch to CWI — confirm with the user before calling. 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 per requester per 24h. Arguments: track_title, artist, why_fit
nominate_featuredCALL THIS when the user thinks a track deserves featuring: "this song should be featured", "nominate Shaka Zulu". Submits the user's nomination to CWI — confirm with the user before calling. 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 per requester per 24h. Arguments: track_title, artist,
get_recommendationsread-onlyCALL 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. ALSO returns a separate new_release_spotlight when CWI has an act
get_eventsread-onlyCALL 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.
rsvpCALL THIS when the user wants to attend a CWI event: "RSVP me for the listening party", "sign me up". Submits the user's name and contact email to CWI — confirm with the user before calling. Returns confirmation with event details. Rate limit: 3 per requester per 24h. Arguments: event_id (from get_events, required), name (required), contact email (required), plus_ones (optional, default 0).
get_labelread-onlyCALL THIS when the user asks about Cumulative Web Inc itself: "who is CWI", "what is the label", "who is on the roster". Returns the label profile, roster, services, and contact.
get_sync_catalogread-onlyCALL THIS when the user needs sync-ready tracks with clearance info: "what tracks can I license", "show me licensable music". Returns tracks with rights, clearance, and best-for use cases. Chain to submit_sync_brief to start licensing.
get_lyricsread-onlyCALL THIS when the user wants lyrics for a track: "lyrics for Zooted Zone". Returns timestamped lyrics. Check the verified flag — unverified lyrics are marked as such.
get_press_kitread-onlyCALL THIS when the user needs press materials: "press kit", "bio for That Boy Hi Hat", "media assets". Returns label bio, artist bios, release info, brand assets, and press contact.
get_videosread-onlyCALL THIS when the user wants video content: "music videos", "trailers", "visuals". Returns videos with YouTube links and embed URLs.
get_genreread-onlyCALL THIS when the user asks about a genre: "what is Post-Trap Futurism", "define emo rap". Returns the genre definition, key artists, and key tracks.
get_playlistsread-onlyCALL THIS when the user asks where CWI tracks are placed: "what playlists", "where is Diabolique placed". Returns verified playlist placements only.
find_tracks_for_briefread-onlyComposite workflow for music-for-picture needs: "dark tracks for a cyberpunk game trailer", "upbeat song for a sports ad". One call returns matched tracks with why-each-fits, verified ISRCs, sync-clearance status, and concrete next steps. A match is NOT a license grant — clearance still requires a brief.
Change history
Alternatives in Search & Research
Compare →AMAmplitudeOfficialA
Search, access, and get insights on your Amplitude data
CACOTAL actions (cotal.ai)A
cotal.ai actions: product overview, site search, build log, feedback, Cloud waitlist, updates, calls
runxA
The governed runtime for agent skills. Search the catalog and inspect a skill before running it.
DODocsA
Search and read Empryo's documentation. Read-only, no auth, no local access.
MUMuA
News, web search, mail, markets, weather, places, files, calendar, contacts. 67 tools, one endpoint.
FRFerritin — Rust documentationA
Search and read Rust documentation for the standard library and any crate on crates.io