Skip to main content
Glama

Kindle Music

Server Details

Search 2M+ licensed production-music tracks, find similar ones by track or audio, share pick lists.

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 2025-11-25
URL

TDQS

A4.3/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct action: km_search (keyword/facet), km_similar_by_track (vector similarity), km_resolve (identifier parsing), km_track_versions (cutdowns), km_vocabulary (facet values), km_get_result_set (read pick list). The only mild adjacency is km_search vs km_similar_by_track, but the descriptions explicitly frame one as keyword and the other as vector, so boundaries are clear.

Naming Consistency5/5

All six tools share a uniform km_ prefix followed by a verb-led snake_case name (km_search, km_resolve, km_track_versions, km_vocabulary, km_get_result_set, km_similar_by_track). The convention is predictable and readable throughout.

Tool Count5/5

Six tools is well-scoped for a catalog search/retrieval server, and each one earns its place (search, similarity, versions, vocabulary, resolve, result set read). No redundant or filler tools.

Completeness3/5

Core retrieval is covered, but there are notable gaps: the tool set explicitly admits no playlist-reading tool, no by-id full-field fetch endpoint, and km_get_result_set's own 'continue to add/delete/modify' workflow has no corresponding mutation tool. These dead ends will force agents to work around the surface.

Available Tools

6 tools
km_get_result_set读取选曲清单 / Read back a pick listAInspect

按 code 读回一份已发布的选曲清单(含分段、曲目与每首的状态)。 Reads back a published pick list by its code, including sections, tracks and each track status.

何时用 / When: 用户要在既有清单上继续增删改,或要确认清单里的曲目是否仍在架。 返回 / Returns: 清单全文;已过期或已撤销时 sections 为空数组(看 expired / revoked 字段)。

返回的 track_url 仅供试听/临时分析,见 audioNotice。 Returned track_url values are for audition / temporary analysis only; see audioNotice.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe pick-list code returned by km_create_result_set.

TDQS

A3.8/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 behavioral burden and does well: it discloses that expired or revoked lists return an empty sections array (pointing to expired/revoked fields) and that track_url is audition/temporary only (see audioNotice). Auth requirements and rate limits are not covered, keeping it from a 5.

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

Conciseness3/5

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

Content is well front-loaded and labelled (何时用 / 返回), but the full bilingual duplication states every fact twice, so each sentence does not fully earn its tokens. The structure itself is clean; the redundancy is what holds it back.

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, and the description compensates by explaining the return shape (full list, empty sections on expired/revoked) plus the track_url caveat. Combined with a single required parameter, an agent has enough to call it correctly.

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 coverage is 100% and the single code parameter is documented in the schema as the code returned by km_create_result_set. The description only repeats 'by its code' without adding format, validation, or error semantics, 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: reads back a published pick list by its code, and enumerates what the payload contains (sections, tracks, per-track status). The resource is clearly distinct from siblings like km_search or km_similar_by_track, though no sibling is named explicitly.

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?

The '何时用 / When' line gives concrete triggers: continuing to add/remove/modify on an existing list, or confirming whether listed tracks are still in the catalog. Clear context but no explicit exclusions or named alternatives for retrieving lists another way.

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

km_resolve链接/文件名定位 / Resolve a link, filename or album codeAInspect

把用户手里的下载文件名、UPM 链接、本站链接(专辑 / 厂牌 / 选曲清单 / 歌单 / 搜索结果页)、外站链接或带连字符的专辑编号,定位成下一步可用的对象。 Resolves a download filename, UPM link, kindlemusic.cn link (album / label / pick list / playlist / search page), other web link or hyphenated album code into something the other km_* tools can act on.

何时用 / When: 用户贴的是 KM_PUC045_TK003_xxx.mp3、universalproductionmusic.com 链接、www.kindlemusic.cn/… 链接或 PUC-045 这类编号时,先调本工具;不要把它们当关键词丢进 km_search(会零结果)。

返回 / Returns: { q, resolved }。resolved 为 null 表示认不出或库里没有。按 kind 接下一步:

  • kind="track",source 为 upm / filename(文件名 / UPM 链接):{ albumCode, trackNumber(主曲曲号), trackIdentity, trackTitle, albumTitle }。剪辑版文件名一律映射到主版本;接着用 km_track_versions(albumCode, trackNumber) 取全部版本,或 km_search(searchField="album", keyword=albumCode) 拿曲目 id。

  • kind="album",source="code"(编号):{ albumCode, albumTitle }。接着用 km_search(searchField="album", keyword=albumCode)。

  • source="site"(本站链接):

    • kind="track" 带 trackId:trackId 就是曲目 id,可直接喂 km_similar_by_track;带 trackNumber(专辑页 ?trackNumber=):可直接喂 km_track_versions(albumCode, trackNumber)。

    • kind="album":{ albumCode, trackId:null },同上接 km_search(searchField="album")。

    • kind="label":{ includeLabels:[厂牌名] },原样放进 km_search 的 includeLabels 按厂牌收窄。

    • kind="resultSet":{ code },选曲清单(/picks/),用 km_get_result_set(code) 读回。

    • kind="playlist":{ playlistId } 或 { shareType, shareCode },网站歌单 / 歌单分享链接,MCP 没有读取歌单的工具,请让用户在网站打开,或说出想要的风格改用 km_search。

    • kind="search":{ tier, args },网站搜索结果页的条件已还原成 km_search 入参,原样传给 km_search 即可复现用户看到的那次检索。

    • kind="page":本站首页 / 列表页 / 场景页 / 指南,没有可直接检索的对象。

  • kind="keywords",source="slug"(外站链接、或本站认不出的路径):{ keyword },取自链接里的搜索参数或最后一段路径;可作为 km_search 的关键词(含中文时带 expand="fast",或改用 searchField="ai")。视频网站链接通常取不出曲名,有参考音频请走 km_similar_by_audio。

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesThe filename, link or album code exactly as the user gave it.

TDQS

A4.6/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 does well: it discloses the failure mode (resolved=null when unrecognized or absent from library), the kind/source taxonomy, and gaps in the toolchain (playlists have no MCP reader; video-site links usually cannot yield a track name, so use km_similar_by_audio). It does not mention latency, network calls, or explicit read-only status, so it stops short of a 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?

Bilingual and long, but structured with headers (When/Returns) and a per-kind bullet list, with purpose and the km_search caveat front-loaded. The kind-by-kind routing is dense but each branch earns its place; only minor redundancy comes from the paired Chinese/English 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?

No output schema exists, so the description must explain returns and it does: it documents the { q, resolved } envelope plus the fields returned per kind/source and the exact next call for each. Nothing an agent needs to act on the result is missing.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema field by enumerating accepted input forms (album/label/pick-list/playlist/search-page URLs, external links, hyphenated codes) and stressing the 'exactly as the user gave it' constraint implicitly.

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?

States a specific verb+resource pair (resolve a filename/link/album code into an actionable object) and explicitly differentiates from the sibling km_search ('不要把它们当关键词丢进 km_search'). An agent can identify the tool's job without opening the schema.

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

Usage Guidelines5/5

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

Provides explicit when-to-use triggers (pasted filename, UPM/kindlemusic link, hyphenated code) and the negative case (do not treat as keyword in km_search, which yields zero results). It also routes to the correct follow-up tool per kind (km_track_versions, km_get_result_set, km_similar_by_track), so alternatives are named and conditioned.

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

km_similar_by_track相似曲目 / Find tracks similar to a trackAInspect

以曲库里一首已有曲目为锚点,找音频听感相似的曲目(向量检索,不是关键词)。 Audio-similarity search anchored on an existing catalog track (vector search, not keywords).

何时用 / When: 用户说"再来一些像这首的",或你已经命中一首合适的曲目、想扩出一组候选时。 接力用法:对"七八分像"的曲目取相似 → 挑出更像的一首再取相似,两三轮通常就能逼近目标。

入参 / Args: id = km_search 返回的曲目 id(不是 track_identity),须是主版本。limit 默认 12,上限 50。 不认 partition(独立精选 / 环球UPM 分区);要按 BPM / 时长 / 标签收窄,拿结果在本地筛。 返回 / Returns: { searchId, total, tracks[] },曲目字段与 km_search 一致。

返回的 track_url 仅供试听/临时分析,见 audioNotice。 Returned track_url values are for audition / temporary analysis only; see audioNotice.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTrack id as returned by km_search (field "id").
limitNoDefault 12, clamped to 50.
libraryTypeNo

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 behavioral burden and mostly delivers: it discloses the retrieval mechanism (vector, not keyword), that the anchor id must be a main version, that partition filtering is unsupported, and that track_url is audition/temporary-analysis only. It omits auth/permission requirements and any rate or cost characteristics, so not a full 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?

Front-loaded with purpose, then sectioned into When / Args / Returns, with every sentence carrying information (id provenance, limit bounds, partition caveat, return shape, audition caveat). The bilingual duplication roughly doubles the surface length for no added meaning, which is the main cost against a 5.

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 tool with no output schema and no annotations, the description supplies the return shape ({ searchId, total, tracks[] } with km_search-consistent fields), the audition-only caveat on track_url, and the id-provenance rule, so an agent can call it correctly. The unexplained libraryType parameter is the one remaining completeness gap.

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?

At 67% schema coverage the description must add value, and it does for two of three params: id must be a km_search id (explicitly 'not track_identity') and must be a main version, and limit's default 12 / cap 50 is restated with the 'clamped' behavior. The third parameter, libraryType, is left entirely unexplained in both schema and description, which keeps this below 5.

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?

States a precise verb+resource ('find audio-similar tracks anchored on an existing catalog track') and explicitly disambiguates the mechanism ('vector search, not keywords'), which cleanly separates it from the sibling km_search. An agent can distinguish it from km_search and km_track_versions without opening a schema.

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

Usage Guidelines5/5

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

Provides an explicit 'When' trigger ('user asks for more like this one', or you've hit a good track and want candidates), a concrete iterative workflow ('take similars of a ~70% match, pick a closer one, repeat 2-3 rounds'), and negative guidance ('does not honor partition; narrow by BPM/duration/tags locally'). This is genuine routing guidance, not implication.

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

km_track_versions曲目剪辑版本 / Cutdown versions of a trackAInspect

列出同一首曲子的全部剪辑版本(Full Length / 60 Sec / 30 Sec / 20 Sec / 15 Sec 等)。 Lists every cutdown version of one track (Full Length / 60 Sec / 30 Sec / 20 Sec / 15 Sec …).

⚠️ km_search 只索引主曲(Solr 里 track_is_main=Y),剪辑版拿不到,只能靠本工具取。 km_search only indexes main tracks; the shorter cutdowns are invisible to it and can ONLY be fetched here.

何时用 / When: 广告、TVC、预告片这类有硬性时长的项目,交付候选之前对每首都查一次—— 有现成的 60s/30s/15s 版本,客户就不必自己剪;没有就要在交付说明里讲清楚需要自行剪辑。

入参 / Args: albumCode = 曲目的 album_code;trackNumber = 主曲的 track_number(都取自 km_search 返回的曲目对象)。 libraryType 可选:原样透传 km_search 里那首曲子的 library_type,用来判定 web_url 的 essential / premium 段(本端点自身不返回该字段)。

返回 / Returns: { albumCode, trackNumber, total, versions[] },versions 按时长从长到短排,字段与 km_search 的曲目对象同构。 看 track_version(版本名)、track_duration(秒)、orginal_time(mm:ss)、track_mixout(如 Backing Vocals Only,即去人声版)。 注意:剪辑版只有版本名 / 时长 / mixout / 英文描述,track_bpm 与四维标签(mood/genre/instrumentation/tempo)只有主曲那行有——它们本来就是同一首曲子,按主曲的值理解即可。 专辑号或曲目号不存在时返回空 versions[],不报错。

返回的 track_url 仅供试听/临时分析,见 audioNotice。 Returned track_url values are for audition / temporary analysis only; see audioNotice.

ParametersJSON Schema
NameRequiredDescriptionDefault
albumCodeYesAlbum code as returned by km_search (field "album_code"), e.g. "NYB17".
libraryTypeNoPass through library_type from the km_search result so web_url gets the right tier.
trackNumberYestrack_number of the MAIN track, as returned by km_search.

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and does so well: it discloses that non-existent album/track numbers return an empty versions[] rather than an error, that cutdown rows lack track_bpm and the four dimension tags (inherited from the main track), that libraryType is not returned by this endpoint itself, and that track_url is audition-only. These are non-obvious behaviors an agent could not infer from the schema.

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?

The text is well front-loaded and organized with clear section markers (When / Args / Returns), and the critical constraint about km_search being blind to cutdowns appears early with a warning glyph. The cost is that every statement is duplicated in Chinese and English, roughly doubling length without adding information for a bilingual reader.

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?

With no output schema, the description fully documents the return shape ({ albumCode, trackNumber, total, versions[] }), the sort order (longest to shortest), the per-version fields to inspect (track_version, track_duration, orginal_time, track_mixout), and explicitly flags which fields are absent from cutdown rows. Nothing an agent needs to interpret the response is missing.

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%, so all three parameters are already documented in the schema, including the instruction to use the MAIN track's track_number. The description largely restates this, adding only the sourcing note that both required values come from the km_search track object, which is already implied by the schema. Baseline 3 is correct when the schema does the heavy lifting.

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 gives a specific verb+resource ('Lists every cutdown version of one track') and enumerates the concrete version set (Full Length / 60 Sec / 30 Sec / 20 Sec / 15 Sec), so the agent knows exactly what comes back. It also explicitly positions itself against the sibling km_search, stating that km_search only indexes main tracks and cutdowns can ONLY be fetched here.

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

Usage Guidelines5/5

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

There is an explicit 'When' section: for ads, TVCs and trailers with hard duration requirements, query this for every track before delivering candidates, because an existing 60s/30s/15s version saves the client an edit. It names the alternative (km_search) and states the precise condition under which that alternative fails, leaving nothing to inference.

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

km_vocabulary曲库筛选词表 / Faceted vocabularyAInspect

列出曲库全部可用的筛选值(流派/情绪/乐器/速度/适用场景/厂牌)。 Lists every filterable facet value in the catalog (genre, mood, instrumentation, tempo, music-for, label).

何时用 / When: 在 km_search 里使用任何 include*/exclude* 筛选之前,先用本工具确认取值。 Call this BEFORE using any include*/exclude* filter in km_search.

入参 / Args: field(可选,facet 字段名子串,如 "genre"/"mood"/"library");query(可选,对取值与中文名做不区分大小写的子串过滤,中文也能查,如 query="悲伤")。

返回 / Returns: 每个 facet 字段的 { param, values },values 里每项是 { value, labelZh, count }。param 就是 km_search 里该字段对应的入参名。 顶层另有 labels[]:320 个厂牌的 { library_name, library_type, company, album_count, track_count },可用来判断某个厂牌值不值得单独收窄。 ⚠️ value 必须原样回填到 km_search,不要翻译、改大小写或去掉 "Parent;Leaf" 里的分号;改动过的值一律匹配不上。labelZh 只供你把中文 brief 映射到 canonical 值,不要回填。 count 用来防过度收窄:候选值 count < 200 时考虑放宽或换父级(例:sad 有 8.6 万首,而叶子 sad;breakup 只有 38 首,直接用叶子会把结果掐死)。

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldNoSubstring of a facet field name, e.g. "genre", "mood", "instrumentation", "library".
queryNoCase-insensitive substring filter applied to the facet values and their Chinese labels.

TDQS

A4.6/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 does substantial work: it warns that values must be replayed verbatim (no translation, case changes, or dropping the ';' in 'Parent;Leaf'), that labelZh is display-only, and that count should be used to avoid over-narrowing. It does not state read-only/side-effect status or any auth requirement, so it falls just short of complete.

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?

Purpose, usage, args, and returns are front-loaded and clearly sectioned, and every sentence carries content. It is, however, fully duplicated across Chinese and English, which doubles the length for any single reader.

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?

There is no output schema, so the description must explain the return shape, and it does so precisely: per-facet { param, values } with { value, labelZh, count } items, plus a top-level labels[] describing 320 libraries. An agent has everything needed to call and interpret it.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it clarifies that 'field' matches a facet name substring and that 'query' filters against values and their Chinese labels, with a concrete non-Latin example (query="悲伤") that the schema does not provide.

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?

States a specific verb and resource ('列出曲库全部可用的筛选值 / Lists every filterable facet value in the catalog') and enumerates the facet domains covered. It is clearly distinguishable from km_search, which it explicitly references as the consumer of these values.

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

Usage Guidelines5/5

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

Gives an explicit precondition: 'Call this BEFORE using any include*/exclude* filter in km_search.' It names the sibling tool and the exact condition that should trigger this call, leaving nothing to inference.

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 observedkm_get_result_set
    • First observedkm_resolve
    • First observedkm_search
    • First observedkm_similar_by_track
    • First observedkm_track_versions
    • First observedkm_vocabulary

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources