cwi-discovery-engine

CWI Discovery Engine: read-only music-catalog MCP — semantic search, sync lookup, knowledge graph.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
89%
Naming quality
98%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,288Tokens (tool definitions)
~509 BTypical response size
Moderate attention impact (1.01% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "cwi-discovery-engine": {
      "url": "https://cwi-machine-data.hp-ace.workers.dev/mcp"
    }
  }
}

Remote endpoints

https://cwi-machine-data.hp-ace.workers.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (10)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_catalog(q)

Search the CWI placement catalog (That Boy Hi Hat + roster) by keywords. Same scored engine as GET /query: 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 top 5 tracks with Spotify URLs and matched terms.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Search keywords, e.g. \"cyberpunk rap\" or \"dark cinematic\". Truncated at 500 characters."
    }
  },
  "required": [
    "q"
  ]
}
🟢get_track(id_or_title)

Look up one catalog track by title or Spotify ID/URL. Returns title, artist, Spotify URL, genres, and moods.

Input Schema

{
  "type": "object",
  "properties": {
    "id_or_title": {
      "type": "string",
      "description": "Track title (exact or partial) or a Spotify track ID / open.spotify.com URL."
    }
  },
  "required": [
    "id_or_title"
  ]
}
🟢get_artist(name)

Look up an artist by name. Returns the artist and their tracks in the catalog with Spotify URLs.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Artist name, e.g. \"That Boy Hi Hat\"."
    }
  },
  "required": [
    "name"
  ]
}
🟢sync_search(q)

Search the CWI sync catalog (23 tracks with editorial sonic descriptors: moods, energy words, instrumentation, scenes, use-cases, lyrical themes) for music-supervision queries like "fight scene" or "neon city". Descriptors are editorial (curated by CWI Sync); BPM values are estimates, not audio analysis.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Sync query, e.g. \"club scene\" or \"dark aggressive\". Truncated at 500 characters."
    }
  },
  "required": [
    "q"
  ]
}
🟢semantic_search(q, limit)

Semantic search over the CWI catalog embedding matrix: cosine similarity against 384-dim bge-small-en-v1.5 vectors (55 tracks). The query is embedded at request time with Workers AI @cf/baai/bge-small-en-v1.5 — the same model that produced the matrix, so catalog and query vectors are directly cosine-comparable. No inference needed on your side; just call this tool. FALLBACK (documented, never silent): if the Workers AI [ai] binding is unavailable at runtime, the tool DEGRADES to keyword scoring over the matrix text fields and says so in its response (method "fallback:keyword", plus a fallback_note). Fallback scores are keyword weights (title 3x, genre/descriptor 2x, mood 1x) — they are NOT cosine similarity and are never presented as semantic scores.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Natural-language music query, e.g. \"dark cyberpunk rap for a film scene\". Truncated at 500 characters."
    },
    "limit": {
      "type": "number",
      "description": "Max results, 1-20 (default 5)."
    }
  },
  "required": [
    "q"
  ]
}
🟢get_graph

Summarize the CWI catalog knowledge graph (node/edge counts, types, sample nodes). For the full graph, fetch GET /graph.json.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢get_release(id)

Fetch a CWI release fact packet (evidence-tiered, hash-stamped): pre-release and release records with verified credits, dates, and platform links. Defaults to the latest release when id is omitted.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Release id, e.g. \"cyberpunk-2027\". Omit for the latest release."
    }
  }
}
🟡get_radio(include)

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).

Input Schema

{
  "type": "object",
  "properties": {
    "include": {
      "type": "string",
      "description": "Optional comma-separated sections to include: \"now_playing\", \"listeners\", \"stream\". Omit or pass \"all\" for everything. Unknown values are ignored."
    }
  }
}
🔴get_announcements(category, limit)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "description": "Optional filter: \"releases\", \"news\", or \"events\". Omit for all categories."
    },
    "limit": {
      "type": "number",
      "description": "Max announcements to return, 1-50 (default 10)."
    }
  }
}
🟢get_featured(limit)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "Max tracks to return, 1-20 (default 10)."
    }
  }
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded10 tools