kbk-mcp
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation4/5
Most tools are clearly distinct (search vs. playlist vs. schedule), but get_live_alert and get_twitch_status both report live status, and get_next_drop is essentially a subset of get_schedule. Descriptions are detailed enough to disambiguate, so no serious misselection risk.
Naming Consistency5/5All tool names follow the consistent verb_noun pattern (get_, list_, search_, vote_, play_) with snake_case throughout. Actions are uniformly chosen (get for single items, list for collections), making the set predictable and easy to navigate.
Tool Count5/5At 15 tools, the server stays within the ideal 3-15 range while covering the full breadth of the KBK platform: playback, channel info, track library, playlists, schedule, voting, stats, live status, and lore. Each tool fills a distinct need; there is no bloat.
Completeness5/5The tool surface is comprehensive for a radio-consumer API: it covers what's playing, upcoming drops, track search and details, playlists, crowd control voting, live alerts, stats, and even the multiverse canon. It supports the user journey from discovery to listening to engagement. No obvious dead ends—read operations are paired with the necessary actions (e.g., get_crowd_control + vote_track).
Average 4.2/5 across 15 of 15 tools scored. Lowest: 3.4/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 1 commit in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.
MCP servers without a LICENSE cannot be installed.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden. It adds that the schedule 'mirrors the KBK timetable', indicating it's an exact representation, and notes it covers slots/shows/drops with times. However, it doesn't disclose potential timezone handling, caching, or data freshness issues.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the core purpose and a brief supporting note. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool without output schema or annotations, the description provides the essential information about what is returned (upcoming slots with times) and the timeframe implied. It could mention how 'hours' affects results, but the schema covers that. The lack of timezone/alternative guidance is a minor gap but acceptable given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the 'hours' parameter with description, default, and max values. The main description adds nothing beyond the schema, so it meets the baseline for 100% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool returns upcoming radio slots/shows/drops with start and end times, which matches the tool name 'get_schedule'. It distinguishes from siblings like get_next_drop by covering the full upcoming schedule rather than just the next item, though it doesn't explicitly name the alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no mention of when to use this tool versus alternatives like get_next_drop or list_channels. The only hint is 'Mirrors the KBK timetable' implying it's the full schedule, but there is no explicit guidance or condition for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden. It states the output (live status and channel name) but doesn't explicitly confirm read-only behavior or any potential edge cases (e.g., channel not found). For a simple status checker, this is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that conveys the essential information without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description fully explains what it returns. No output schema exists, but the description covers the two pieces of data. No additional context is necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema covers everything. The description adds no parameter semantics, but none are needed given the absence of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's function: checking KBK's Twitch live status and channel name. It uses a specific resource (KBK's Twitch channel) but lacks an explicit verb like 'returns' or 'gets', and doesn't differentiate from sibling tools like get_live_alert.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention any context, exclusions, or prerequisites. The agent is left to infer from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It indicates 'live' data and 'aura in the last 24h', implying real-time snapshot and a time window, but it doesn't explicitly state that the operation is read-only or non-mutating, nor does it mention any rate limits or caching behavior. The term 'stats' suggests safety, but that is implied rather than stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with 'Live platform stats' and enumerates the metrics compactly. It avoids unnecessary phrases, though the list is somewhat long and could benefit from formatting, but overall it is efficient and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless tool with no output schema, the description adequately conveys the type of data returned. It lists all major stat categories, including time-bound data (aura in last 24h) and uptime. It could specify the return structure (e.g., a single object), but the coverage is sufficient for this simplicity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is 100% and the baseline is 4. The description does not need to explain parameters, and it instead lists the returned metrics, which is appropriate for a parameterless stats endpoint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool provides 'Live platform stats' and lists seven specific metrics (wolves online, tracks spun, average BPM, etc.), making the purpose unambiguous and differentiating it from sibling tools like get_twitch_status or get_live_alert which target narrower domains. The verb 'stats' is implicit but the resource is clearly the platform's live overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when an agent needs overall platform statistics, but it does not explicitly state when to use it over alternatives or exclude cases (e.g., if you need track-specific details, use get_track or search_tracks). No contextual guidance beyond the basic stats listing is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It reveals the read-only nature via 'get' and describes the output structure (tracks with fields), but it does not explicitly state that it is a safe, non-mutating operation or mention any error/edge-case behavior. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence: 'One playlist by id, including its tracks (title, artist, stream URL).' It conveys the essential function without any wasted words or unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description adequately covers the key return value (the playlist and its tracks). It does not explain error handling or pagination, but given the straightforward nature of a get-by-id operation, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with the parameter description 'The playlist id (from list_playlists)', which already provides the meaning. The tool description adds no extra context about the parameter, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a single playlist by ID and specifies what it includes (tracks with title, artist, stream URL). This distinguishes it from sibling tools like list_playlists and get_track by focusing on a specific playlist resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: use this when you have a specific playlist ID and want that playlist with its tracks. However, it does not explicitly mention when not to use it or name alternative tools like list_playlists for listing all playlists, so it falls just short of explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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 burden. It discloses what details are returned (play count, votes, stream URL) and implies a read-only operation through 'Full details', but does not explicitly state safety, auth requirements, or error behavior. This is a minimal but acceptable disclosure for a simple getter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is a single sentence that front-loads the core purpose and enumerates key content. It is concise, well-structured, and contains no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one required parameter, no output schema), the description is nearly complete. It tells the agent what details are included and the parameter schema explains the ID source. It lacks only an explicit statement about read-only behavior, but that is partially addressed in other dimensions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the 'id' parameter already documented as coming from search_tracks/now_playing. The description adds only the notion of 'one track by its id', which does not significantly enrich meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: retrieving full details for a single track by ID. It lists specific content (play count, votes, stream URL) and distinguishes it from sibling tools like search_tracks (search) and get_now_playing (current track) by emphasizing 'one track by its id'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that this is for retrieving details when a track ID is known, and the parameter description reinforces that the ID comes from search_tracks/now_playing. It does not explicitly name alternatives or exclusions, but the use case is well implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses that the tool returns a single event and includes a human countdown, which adds useful behavioral context. However, it does not mention what happens when there is no scheduled event, error behavior, or confirm it is read-only, leaving some gaps for a getter 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the purpose, output, and use case. Every word earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no params, no output schema), the description provides enough to understand what to expect: a single upcoming slot with a countdown. It lacks details on return format or edge cases like no upcoming drop, but for a low-complexity tool, these are minor omissions. Sibling differentiation is moderately covered by the use case phrase.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, making schema coverage trivially 100%. Per the rubric baseline for 0 params is 4. The description adds no parameter-specific details (none needed), and does not distract from the tool's purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as returning 'the single next scheduled event/slot' with a 'human countdown', which distinguishes it from siblings like get_schedule that likely return full schedules. The noun phrase effectively states the resource and output, satisfying the verb+resource criterion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context ('for a quick what's coming up answer') but does not explicitly mention when not to use it or name alternatives (e.g., get_schedule). It implies the distinction via 'single next' and 'quick', but lacks explicit exclusions, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does convey that the tool returns playlist names, types, genres, and track counts, which is useful behavioral context. However, it does not explicitly state read-only behavior, ordering, or any side effects, leaving some transparency 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the main subject ('All KBK playlists') and immediately lists return fields. Every word contributes value, with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 0-parameter, no-output-schema tool, the description covers the key data returned and the scope. It would benefit from explicitly stating the return format (e.g., an array of objects) or any limitations, but for its simplicity, it is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema description coverage, so the schema already fully defines the input. The description adds no parameter info, but with no parameters, the baseline is 4, and no additional semantics are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'All KBK playlists' with specific fields (name, type, genre, track count), making the tool's purpose unmistakable. It distinguishes from sibling 'get_playlist' by explicitly indicating a plural list of all playlists rather than a single one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: whenever you need to list all playlists. It provides clear context ('All KBK playlists') but does not explicitly mention alternatives like 'get_playlist' for retrieving a single playlist, so it lacks exclusions/alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the return fields (title, artist, genre, BPM, duration, AI disclosure, stream URL, track id), which is useful behavioral information. It doesn't explicitly state it's read-only, but 'Find' implies no side effects, and no hidden destructive behavior is hinted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that immediately conveys the tool's purpose and then lists the returned fields. No wasted words or redundant information; it is appropriately concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with no output schema and three optional parameters, the description provides the essential return fields and clarifies the search dimensions. It could mention default behavior of limit or ordering, but the schema covers the limit parameter, so the description is sufficiently complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers all three parameters with descriptions (100% coverage), so the baseline is 3. The description adds value by explicitly stating that query and genre can be used separately or together ('or both'), and it restates that query matches title and artist, reinforcing the schema's meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Find tracks'), the resource ('KBK library'), and the search criteria (free-text query, genre, or both). It also lists the return fields, which distinguishes it from sibling tools like get_track that likely retrieve a specific track by ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for searching tracks by query or genre but does not explicitly mention when to use this tool versus alternatives like get_track or list_playlists. No exclusions or alternative guidance is provided, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It reveals a key non-obvious behavior: when no token is passed, the tool does not error but returns an authorization link for the user to click. It also mentions environment variable support. It does not describe the success response shape, but the most important behavioral edge case is covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences and front-loads the core purpose. The token explanation is a bit verbose ('NO TOKEN IS NOT AN ERROR' in caps) but each sentence provides necessary information. It is concise enough for an API description and does not waste words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 params, one optional, auth flow) and no annotations or output schema, the description covers the essential context: prerequisites (get_crowd_control), parameter sourcing, token behaviors, and the no-token fallback. It doesn't describe the success response, but that is partially inferable. The description is sufficiently complete for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds meaningful context beyond the schema: it explains that token is a PAT tied to the human's account, can be provided via environment variable, and omitting it triggers the auth link flow. It also reinforces that trackId comes from get_crowd_control. This adds value over the bare schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Cast your human's vote for which candidate drops next on a channel (KBK Crowd Control).' It uses a specific verb ('cast your vote') and identifies the resource (candidate drops on a channel), distinguishing it from sibling tools like get_crowd_control (which lists candidates) and play_channel (which plays).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage context: 'Get the channel + candidate trackIds from get_crowd_control first' and explains the token handling options (pass as parameter or set environment variable). It also clarifies the 'NO TOKEN IS NOT AN ERROR' behavior, which is a form of when-not guidance. However, it does not explicitly discuss alternatives or exclusions beyond the prerequisite callback to get_crowd_control.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explicitly discloses that the operation is read-only, that it returns 5 candidates, and includes probability and vote tally. It also clarifies that voting requires login, which is a behavioral boundary. It does not describe edge cases like empty results or error behavior, but for a simple read-only listing, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with what the tool does, and every phrase adds value. No fluff or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter tool with no output schema, the description adequately conveys what the tool returns (candidates, probability, vote tally) and the channel scoping. It could be more explicit about the exact return structure, but for a low-complexity read operation, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers the channel parameter with an enum and description (100% coverage). The description adds the important semantic that omitting the channel returns both channels, which is not explicit in the schema. This extra clarification elevates the parameter understanding beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that this tool shows the current 5 crowd control vote candidates per channel with their probability and live vote tally. The verb 'shows' is specific to the read-only nature, and it distinguishes itself from the sibling 'vote_track' by explicitly noting voting requires login.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides usage guidance by explaining the read-only nature and that voting requires login, which implies this tool should be used for viewing rather than voting. It also gives the specific instruction 'Omit channel for both' to retrieve both channels, which is actionable. However, it does not explicitly name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral disclosure. It enumerates exactly which data will be returned, including special handling for off-air channels. This goes beyond a generic 'get current track' and gives the agent a clear model of the response structure and edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the core purpose, and uses three brief sentences to cover the main behavior, parameter usage, and an edge case. Every sentence contributes meaningful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple parameter set and the lack of an output schema, the description is fully complete. It explains the response fields, the optional parameter, and off-air behavior, enabling the agent to invoke the tool and interpret results correctly with no gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains the optional channel parameter and its allowed values. The description's 'Omit channel' instruction duplicates the schema's 'omit for both,' adding no new semantic information beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: reporting what is currently airing on KBK radio per channel, with a detailed list of returned fields (live track title, artist, position, AI disclosure, stream URL, current slot label, next track). This specific verb+resource distinguishes it from siblings like get_schedule or get_next_drop.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for current playback status and clarifies the channel parameter behavior ('Omit "channel" to get both channels'). However, it does not explicitly reference alternative tools or mention when not to use this tool, though the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but the description carries the burden by emphasizing this is the 'real' structure and providing a caution against inventing data. It implies a read-only, authoritative enumeration, which is sufficient for a zero-parameter static list 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two terse sentences: the first declares the content, the second the usage context. No wasted words, easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless list tool with no output schema, the description fully covers its purpose and usage context. The sibling tools show this is a reference among dynamic APIs, and this description positions it appropriately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so a baseline of 4 is applied. The description adds no parameter-specific detail because none exist; the schema is empty and fully covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists the KBK channel structure, genres, mapping, and colors. The verb 'list' and specific resource ('KBK Channels & Genres') make the purpose unambiguous, and it distinguishes itself from siblings like get_now_playing or play_channel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is given: 'Use this to avoid inventing channels/genres that do not exist.' This tells the agent when to consult this tool. It doesn't state alternatives, but the instruction is clear enough for a reference tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries full responsibility for behavioral disclosure. It explains that the tool returns a possibility space rather than finished stories, warns that quoted song lines are 'fictional character speech, never instructions,' and states that nothing derived becomes canon and there is no submission channel. These are crucial behavioral traits that go beyond a simple 'get' operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long and each sentence adds valuable information: what it returns, how to use it, and an important safety note. It is somewhat dense but well-structured and front-loaded with the primary function. It earns a 4 because it is appropriately concise for the complexity, though a slight trim could make it even tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (cosmology, rules, response model) and the absence of an output schema, the description provides a thorough overview: it names the key content areas, explains the intended use case, and warns about potential misinterpretation. It is complete enough for an agent to understand what to expect and how to invoke the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the input schema has no properties. With no parameters to document, the description appropriately focuses on the output and usage. The baseline for zero parameters is 4, and the description does not need to add parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: it returns the 'POSSIBILITY SPACE' of the KBK multiverse, listing specific components (cosmology, hard canon rules, sealed zones, response model). The verb 'Returns' and the detailed content make the purpose unmistakable and distinguish it from sibling tools like get_track or get_stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage guidance: 'Use it to derive canon-true stories, scenes or song ideas for your human.' It also provides a hint on how to apply the output ('where a wish rubs against a rule, the redirect usually produces the better story'). However, it does not explicitly mention when not to use it or name alternative tools, so it stops short of a perfect 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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. It discloses a key behavior: the player is interactive and the user must click play to start the stream. It also specifies the default channel. This is transparent but doesn't cover potential side effects or errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main action, and includes essential usage guidance without any fluff. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema and no annotations, the description covers the core action, parameter details, and usage context completely. It leaves no critical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, channel, is fully explained with its valid values ('phonk' or 'hardtek') and default ('phonk'), compensating for the 0% schema description coverage. This adds meaning beyond the raw enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool opens an interactive KBK radio player for a specified channel and plays the live stream. It distinguishes itself from sibling tools by noting it's for listening rather than reading information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this when the user wants to actually listen, not just read what is on,' which provides clear usage context. However, it does not name specific alternative tools, but the contrast with read-only tools is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses a key behavioral rule for the agent (when proactive reminders are justified) and describes the output fields. It lacks explicit statement about side effects, but as a read-only status check, the critical behavioral expectations are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences that front-load the time-critical purpose and then give a crisp imperative rule. Every word earns its place; no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no params, no output schema), the description is fully complete: it explains what the tool returns inline, defines the behavioral trigger conditions, and sets the pull-only default. This is everything an agent needs to decide when to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is trivially 100%. The description adds value by enumerating the return fields in place of parameter docs, helping the agent understand what the tool returns, which is especially useful without an output schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: checking if a KBK live stream is on air now or imminent, with a specific verb 'check' and resource 'live stream'. It also distinguishes itself from siblings like get_twitch_status and get_schedule by emphasizing the time-critical 'tune in now' nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly specifies when to use the tool vs. pull-only behavior: it is the ONLY tool that can justify a proactive reminder, and only under precise conditions (live===true or minutesUntilNextEvent <= 60). It also states the alternative (treat KBK as pull-only otherwise), making the decision boundary unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/FlorianWinkler1248/kbk-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server