CWI Discovery Engine
CWI Discovery Engine: MCP server for the Cumulative Web Inc music catalog.
Что умеет
- Search Catalog: CALL 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 s
- Get Track: CALL 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 Artist: CALL THIS when the user asks about an artist: "who is King Ahkeem", "what else has this artist made". Returns the artist profile and catalog.
Какие данные видит
Нужен ли аккаунт
Не нужен: сервер работает без входа
CWI Discovery Engine: MCP server for the Cumulative Web Inc music catalog. 21 tools: 15 read-only lookups (catalog search, track/artist lookup, sync licensing search, semantic search, knowledge graph, Radio 365 live radio, playlist pitching data, release fact packets) and 6 submission tools (song request, airplay submission, sync brief, playlist pitch, featured nomination, event RSVP) — all submissions go to human review. No auth, no key.
Как подключить
Как подключить CWI Discovery Engine к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://cwi-discovery-engine--cumulativewebinc.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить CWI Discovery Engine к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://cwi-discovery-engine--cumulativewebinc.run.tools
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить CWI Discovery Engine к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://cwi-discovery-engine--cumulativewebinc.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (21)
Технические названия из tools/list. Нужны только разработчикам.
| search_catalog | CALL 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_track | CALL 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_artist | CALL 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_search | CALL 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_search | CALL 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_graph | CALL 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_release | CALL THIS when the user asks about a specific release: tracklist, date, credits, background. Returns a fact packet for that release. |
| get_radio | CALL 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_announcements | CALL 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_featured | CALL 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_next | CALL 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_schedule | CALL 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_song | CALL 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 or agent identity), reason/dedication (optional). |
| submit_for_airplay | CALL 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, required), genre/message (optional). |
| get_requests | CALL 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_brief | CALL 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. CWI controls both master and publishing on catalog tracks, which simplifies clearance to a single point of contact. Rate limit: 3 per requester per 24h. Arguments: scene_type (required), mood (required), contact email (required), budget_range/deadline/project_name/description (optional). |
| pitch_for_playlist | CALL 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 (required — why it fits), playlist_name/curator/contact (optional). |
| nominate_featured | CALL 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, nominated_by (required), reason (required). |
| get_recommendations | CALL 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). |
| get_events | CALL 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. |
| rsvp | CALL 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). |