Skip to main content
Glama

cwi-discovery-engine

Server Details

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

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2024-11-05
URL
Repository
CumulativeWebInc/cwi-learn
GitHub Stars
0

TDQS

A3.8/5.0

Scored across 6 tools

Disambiguation4/5

get_artist, get_track, and get_graph are clearly distinct lookups. However, search_catalog, semantic_search, and sync_search all perform catalog searches with overlapping intent (keyword vs semantic vs sync catalog), so an agent must read closely to select correctly, though the descriptions do distinguish them.

Naming Consistency3/5

Mix of patterns: get_artist/get_graph/get_track use verb_noun, while search_catalog uses verb_noun but semantic_search and sync_search reverse to modifier_noun_search. All readable and snake_case, but the ordering convention is not uniform.

Tool Count5/5

Six tools is well-scoped for a read-only discovery/search engine, with each tool earning its place across lookup, graph summary, and three search modalities.

Completeness4/5

Covers the core discovery lifecycle: find artists, tracks, graph overview, and multiple search strategies. Minor gaps like browsing by genre/mood or listing all catalog entries exist, but search tools largely compensate.

Available Tools

6 tools
get_artistAInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesArtist name, e.g. "That Boy Hi Hat".

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It usefully discloses the response shape (artist and their tracks with Spotify URLs), which matters because there is no output schema, but it says nothing about authentication, rate limits, or what happens when the name does not match an artist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no filler, front-loading the action first and the payload second. Every clause adds information an agent can act on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only lookup with no output schema, the description covers both the operation and the returned content, which is the key missing structured information. Only the failure/empty-result behavior and the relationship to the search-oriented siblings are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single required parameter with 100% schema description coverage, and the schema already includes an example value. The description only restates that lookup is by name, adding no syntax, normalization, or matching semantics beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (look up an artist by name) and adds what comes back (artist plus their tracks with Spotify URLs), so the purpose is unambiguous. It does not distinguish itself from siblings like get_track or search_catalog, which is the only thing keeping it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Look up an artist by name" implies an exact-name retrieval, which is context an agent can use, but there is no explicit statement of when to prefer this over search_catalog, semantic_search, or sync_search. No exclusions or prerequisites are given, so usage must be inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_graphAInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose the returned shape (counts, types, samples) and that it is a bounded summary rather than the whole graph. It does not explicitly state read-only semantics, auth requirements, or size limits, which is the remaining gap for an unannotated tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, front-loading what the tool returns and following immediately with the escape hatch for full data. No redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read tool with no output schema and no annotations, the description covers purpose, return contents, and the alternative for full data — everything an agent needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there are no parameter semantics to explain and the baseline of 4 applies. The description correctly implies no filtering or scoping inputs are accepted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Summarize') and resource ('the CWI catalog knowledge graph') and enumerates the summary contents (node/edge counts, types, sample nodes). This is clearly distinguishable from the artist/track/search siblings, which operate on catalog entities rather than graph structure.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear selection rule for the full dataset: 'For the full graph, fetch GET /graph.json,' which tells the agent both when this summary suffices and where to go when it doesn't. It stops short of naming a sibling tool as an alternative or stating exclusions, so 4 rather than 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_trackAInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
id_or_titleYesTrack title (exact or partial) or a Spotify track ID / open.spotify.com URL.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It usefully enumerates the returned fields (title, artist, Spotify URL, genres, moods), but says nothing about read-only safety, auth requirements, or what happens on an ambiguous partial-title match — a real risk given the schema explicitly allows partial titles. It adds value without closing the gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler: the lookup semantics come first and the return fields second. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter lookup with no output schema, the description supplies the essential missing piece — the shape of the return. The remaining gap is ambiguity handling for partial titles, which matters here because partial matching is explicitly permitted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter, and the property description already documents exact-or-partial titles plus Spotify ID/URL formats. The description merely echoes that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Look up one catalog track') plus the two accepted identifier forms, so the agent immediately knows this is a single-entity lookup. It implicitly contrasts with the multi-result siblings (search_catalog, semantic_search) via 'one ... track', but never names an alternative, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: 'by title or Spotify ID/URL' signals the input shape, which suggests this is the tool for a known title or ID. There is no explicit statement of when to prefer it over search_catalog, semantic_search, or sync_search, and no exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_catalogAInspect

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 1x. Returns top 5 tracks with Spotify URLs and matched terms.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesSearch keywords, e.g. "cyberpunk rap" or "dark cinematic". Truncated at 500 characters.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it does reasonably well: it discloses the ranking weights (title 3x, genre 2x, mood 1x), the result shape (top 5 tracks with Spotify URLs and matched terms), and a 500-character truncation limit on input. It omits any mention of rate limits, auth, or what happens on zero matches, keeping it below 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences, with the core purpose front-loaded before the scoring detail. Every sentence carries information, though the scoring internals are arguably more than an agent needs to select the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, but the description compensates by describing the return payload (top 5 tracks, Spotify URLs, matched terms) and the input truncation behavior. The main gap is the absence of guidance relative to semantic_search and sync_search, which matters given the sibling set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single parameter already documents keywords, examples, and the 500-character cap. The description adds no syntax or format detail beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Search the CWI placement catalog by keywords') and adds the scoring model, which tells the agent what kind of search this is. It does not explicitly distinguish itself from the overlapping siblings semantic_search and sync_search, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: keyword-style matching is suggested by 'by keywords' and the weighted-match explanation, which hints this is lexical rather than semantic. With siblings named semantic_search and sync_search, the definition should say when to pick this one over those, and it does not.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updates
    • First observedget_artist
    • First observedget_graph
    • First observedget_track
    • First observedsearch_catalog
    • First observedsemantic_search
    • First observedsync_search

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides read-only tools for searching CWI's catalog by title, artist, or ISRC, retrieving game metadata and play links, and querying ledger state, trust verdicts, and needle-drop verification via a streamable HTTP MCP server with Bearer token auth.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.