mixcloud-mcp-server
Provides tools for interacting with the Mixcloud API, enabling search and browsing of shows, users, tags, and genres; managing follows, favourites, reposts, and listen-later items; and uploading or editing shows, including scheduled publishing, chapters, and metadata.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mixcloud-mcp-serverfind me a 90-minute Chicago house set from last year"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mixcloud-mcp-server
An MCP server for the Mixcloud API. Any MCP client can drive it: search and browse shows, follow/favourite/repost, and upload or edit your own shows — including scheduled publishing.
Talk to it in plain language: "find me a 90-minute Chicago house set from last year" or
"upload set.mp3 as an unlisted show, chapters at 0:00 and 10:00".
Install
uv tool install git+https://github.com/djornii/mixcloud-mcp-server
# or, from a clone:
uv tool install .Requires Python 3.10+. The only runtime dependencies are mcp, httpx and python-dotenv.
Check the installation:
mixcloud-mcp-server --print-config # resolved paths and which credentials exist, no secrets
mixcloud-mcp-server --versionRelated MCP server: SoundCloud MCP Server
Client setup
The server speaks stdio, so every client config is just "run this command".
Claude Desktop — claude_desktop_config.json:
{ "mcpServers": { "mixcloud": { "command": "mixcloud-mcp-server", "env": { "MIXCLOUD_ENV_FILE": "/home/you/.config/mixcloud-mcp-server/.env" } } } }Claude Code
claude mcp add mixcloud -- mixcloud-mcp-serverOpenCode — opencode.json (V2 puts local servers under mcp.servers):
{ "$schema": "https://opencode.ai/config.json", "mcp": { "servers": { "mixcloud": { "type": "local", "command": ["mixcloud-mcp-server"] } } } }Or from the CLI, which writes the same entry:
opencode mcp add mixcloud -- mixcloud-mcp-serverAny other client: run mixcloud-mcp-server and pass MIXCLOUD_ENV_FILE in its environment.
Running it by hand is normal and silent — it is waiting for JSON-RPC on stdin.
Configuration
Copy .env.example to the path mixcloud-mcp-server --print-config reports and fill it in.
Variable | Default | Purpose |
|
| Token store: loaded at startup, written by |
|
| The only directory uploads may read files from |
| — | OAuth app id, needed once for authorisation |
| — | OAuth secret, needed once for authorisation |
| — | Access token; written for you by |
Create the OAuth app at https://www.mixcloud.com/settings/applications/. The redirect URI only matters if you use one; the default flow shows the code on screen.
Authorising
Ask the agent, or call the tools directly:
auth_url()— returns a link to open in a browseropen it, allow access, copy the code
exchange_code(code)— stores the token in the env file (mode0600) and never returns it
check_token() verifies the token; clear_token() forgets it locally. Mixcloud exposes no
revoke endpoint, so revoking access has to be done on mixcloud.com itself.
Tools
Read (no token): search, get_object, get_show, get_user, get_tag, list_connection,
user_shows, browse, genre_shows, embed_html, oembed
Account (token): me, follow_user, favorite_show, repost_show, listen_later,
upload_show, edit_show
OAuth: auth_url, exchange_code, check_token, clear_token
Objects are addressed by Mixcloud key: shows /username/show-name/, users /username/,
tags /genres/funk/, cities /genres/city:athens/. Full URLs are accepted everywhere a key is.
Notes that surprise people:
upload_showuploads unlisted (private link) unless you passunlisted=False.edit_showreplacestags,sectionsandhostswholesale — re-send the existing ones when adding a single chapter.publish_date,disable_comments,hide_statsandhostsrequire a Pro account.Uploads accept
.mp3up to 4 GB and pictures up to 10 MB, and the files must live insideMIXCLOUD_UPLOAD_DIR(relative paths resolve there).
Safety
Uploads are sandboxed to
MIXCLOUD_UPLOAD_DIRwith an extension and size allowlist, so a prompt-injected path cannot exfiltrate arbitrary files from the machine.The access token is sent as a query parameter, so it is never logged and never included in error messages. Tools return a masked preview (
...abcd) only.The client secret is read from the environment and never returned to the model.
Redirects are not followed for authenticated calls, so a token cannot be replayed to another host.
Works with both mcp 1.x and 2.x.
Development
See AGENTS.md for the commands and the invariants this codebase holds to.
uv sync
uv run pytest
uv run ruff check .License
MIT
Available Tools
22 toolsauth_urlA
Step 1 of OAuth: URL the user must open in a browser to allow access. Without redirect_uri, Mixcloud shows the code on screen; with it, the code arrives as ?code=... on that URL. Then call exchange_code(code).
| Name | Required | Description | Default |
|---|---|---|---|
| redirect_uri | No |
TDQS
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 explains the behavioral difference between supplying redirect_uri (code arrives as ?code=... ) and omitting it (Mixcloud displays the code on screen), plus the required next step. It omits what the tool itself returns and any auth/permission context, so it is not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the OAuth step-1 framing, then the conditional parameter behavior, then the next call. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description does convey what the agent gets (a URL to hand to the user) and what to do next. Minor gaps remain around return type details and error/permission cases, but nothing blocks correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the only parameter is opaque, but the description supplies its real semantics: the presence or absence of redirect_uri changes how the OAuth code is delivered. That is meaningful added meaning beyond the bare string schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action and resource ('URL the user must open in a browser to allow access') and explicitly frames itself as 'Step 1 of OAuth', which positions it against the sibling exchange_code rather than leaving the agent to guess the flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly establishes when to use it (OAuth step 1) and names the follow-up call exchange_code(code). It does not spell out a when-not case or prerequisites (e.g., that no token is needed yet), so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browseC
Site-wide lists: popular, hot or new shows.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| list_name | No | popular |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 and delivers almost nothing. It does not disclose whether results are paginated (despite limit/offset), how lists are ordered, or whether authentication is required for this read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the key scoping qualifier ('site-wide') is front-loaded. It is efficient, though arguably under-specified rather than optimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, but the definition still leaves major gaps: three undocumented parameters, no annotation coverage, and no pagination or auth context. For a 3-param tool it is too thin to guide correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and largely fails. It echoes the list_name enum values (popular, hot, new) but says nothing about limit or offset pagination semantics, leaving two of three parameters unexplained anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource ('site-wide lists') and the variant values ('popular, hot or new shows'), which lets an agent separate it from user_shows and genre_shows. However, it never states the action verb and 'browse' alone is vague, so the purpose is only implied rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus siblings like search, user_shows, or genre_shows. The word 'site-wide' hints at a distinction but the agent must infer it; no exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_tokenA
Check that the current token works (calls /me/).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the full disclosure burden. It does add real context by revealing the underlying call ('calls /me/'), which tells the agent this performs a live authenticated request, but it omits what happens on failure, whether it returns a boolean or raises an error, and any rate-limit or auth caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the purpose front-loaded and the endpoint detail parenthetically attached; nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial zero-parameter validation tool with no annotations and no output schema, the description covers the essential intent and the mechanism. The only gap is the unspecified return shape on success versus failure, which is minor given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Check that the current token works') and even names the endpoint hit, so an agent understands it validates the existing credential rather than fetching user data like the sibling 'me'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied - call it to verify the current token is still valid - but there is no explicit when-to-use, when-not, or comparison against related siblings such as 'me', 'auth_url', or 'exchange_code'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_tokenA
Forget the token in this server (and optionally delete it from the env file). This does not revoke it on Mixcloud: the API docs describe no revoke endpoint, the user revokes access on Mixcloud's side.
| Name | Required | Description | Default |
|---|---|---|---|
| remove_from_env_file | No |
TDQS
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 that this does NOT revoke on Mixcloud, that no revoke endpoint exists, and that revocation happens on Mixcloud's side. It stops short of stating that the agent must re-authenticate afterward.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and followed by the critical caveat. Every clause earns its place, though the phrasing is slightly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter tool with no output schema, the description covers the key post-condition (local token cleared, remote access untouched). Missing only the re-auth consequence, which an agent would benefit from knowing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate; it explains the optional env-file deletion behavior but never names the parameter or clarifies the default/false semantics. Partial but not complete compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('forget the token in this server') plus the scope limit ('does not revoke it on Mixcloud'). Clearly distinguishable from siblings like check_token and exchange_code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies when it applies (clearing local token state) but never explicitly contrasts with siblings such as check_token or auth_url, nor states prerequisites. Usage is inferable rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_showA
Edit one of your shows (key '/me-user/my-upload/'). Omitted fields stay unchanged, EXCEPT tags, sections and hosts, which are replaced wholesale: re-send the existing ones when adding. hosts=[] removes all hosts. visibility: 'unlisted' (private link), 'publish' (make public, also for drafts) or 'unpublish' (move to drafts); only one per request.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| name | No | ||
| tags | No | ||
| hosts | No | ||
| sections | No | ||
| hide_stats | No | ||
| visibility | No | ||
| description | No | ||
| picture_path | No | ||
| publish_date | No | ||
| disable_comments | No |
TDQS
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 partial-update semantics, the important exception that tags/sections/hosts are replaced wholesale, that hosts=[] clears hosts, and that only one visibility value should be sent per request. It omits auth requirements and the effect on fields like publish_date, keeping it 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and key format, then the partial-update rule and its exception, then visibility. Every clause carries information an agent needs; there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter mutation tool with no annotations and no output schema, the description covers the behavioral traps well but says nothing about permissions, what a successful response looks like, or the remaining plain parameters. It is close to complete for invocation but not fully so.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must supply meaning, and it does for the non-obvious parameters: key format, wholesale replacement of tags/sections/hosts, hosts=[] removal, and the visibility enum values. Self-evident booleans and strings (hide_stats, disable_comments, name) are left to their names, which is reasonable but leaves some params undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Edit') and resource ('one of your shows') with a scope qualifier and a concrete key example, which distinguishes it from get_show, upload_show, and user_shows in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the key format, that omitted fields are left unchanged, and the three visibility modes with their meaning. It does not, however, name when to prefer this over alternatives like upload_show or get_show, so the routing guidance is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
embed_htmlC
Embed code (HTML) for a show's player widget. color: 6-digit hex, no '#'.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| color | No | ||
| width | No | ||
| height | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 does not say whether this is a read-only generation, whether auth is required, or that the output is an HTML snippet to be pasted. For a 4-param tool with zero annotation coverage this is a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core purpose, and the color format note is useful. Minor: the color detail is crammed in without structure, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, but the definition still omits what 'key' refers to, auth requirements, and any routing versus oembed. Too thin for a tool with a required identifier parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, yet it documents only color (6-digit hex, no '#'). The required 'key' parameter and the width/height units and behavior remain entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and artifact: producing embed HTML for a show's player widget. It's clear what the tool does, but it never distinguishes itself from the sibling oembed tool, which plausibly serves a similar embedding purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus oembed or any other sibling, and no prerequisites (e.g. auth) are stated. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
exchange_codeA
Step 2 of OAuth: exchange the code for an access token. The token is kept in this server (and saved to the env file); it is not shown to you.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| redirect_uri | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that the token is kept server-side, saved to an env file, and not shown to the caller, but it does not cover permissions, error cases, code expiration/single-use behavior, or redirect_uri requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core purpose and followed by the key behavioral caveat. Nothing is wasted and the structure is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an OAuth exchange tool with no annotations, no output schema, and 0% parameter description coverage, the description is incomplete. It explains token handling but leaves out how the required code and optional redirect_uri should be supplied, error behavior, and prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for both parameters, and the description provides no semantics for code or redirect_uri. The word 'code' appears only as part of the OAuth flow description, not as parameter guidance, so the agent gets no additional meaning beyond the bare schema names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'exchange the code for an access token.' Calling it 'Step 2 of OAuth' clearly distinguishes this tool from auth_url and the token-management siblings without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Step 2 of OAuth' framing tells the agent this tool belongs in a specific sequence after obtaining a code. It provides clear context but does not explicitly name auth_url as the preceding step or mention any conditions where this tool should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
favorite_showB
Favorite a show ('/spartacus/party-time/'); undo=True removes it from favorites.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| undo | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, yet it does disclose a genuinely useful behavioral trait: the operation is reversible via undo=True. It omits auth requirements, rate limits, and whether the key must reference an existing show, so it is only partially transparent for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the primary action front-loaded and the undo semantics appended; nothing is wasted. It is arguably a touch terse for a mutation tool, but the structure is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation with no output schema, the core action and its reversal are covered adequately. However, missing auth/permission context and no confirmation of what the operation returns leaves it only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: the key format is illustrated with a concrete path example and the boolean undo parameter's effect is explained. Both parameters gain meaning beyond their bare names in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource ('Favorite a show') and includes a concrete key example, so the agent knows exactly what object it operates on. It does not explicitly distinguish itself from siblings like repost_show or listen_later, which are plausible confusions, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The undo=True clause hints at how to reverse the action, but there is no guidance on when to favorite versus the neighboring follow_user/repost_show/listen_later tools, nor any prerequisites. 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.
follow_userB
Follow a user ('/spartacus/'); undo=True unfollows.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| undo | No |
TDQS
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 only that undo=True reverses the action; it says nothing about authentication requirements, idempotency on already-followed users, error behavior for invalid keys, or side effects. For a mutation tool with zero annotation coverage this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the primary action front-loaded and the inverse operation appended. Nothing is wasted, though the ambiguous '/spartacus/' token occupies space without earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A two-parameter mutation tool with no annotations and no output schema needs more from the description than this provides: the required key's meaning/format is unexplained and no behavioral context (auth, idempotency, errors) is given. The undo hint covers only part of what an agent needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and neither parameter has a description, so the description must compensate. It does explain undo ('undo=True unfollows'), which is valuable, but the required 'key' parameter is never defined — the stray "'/spartacus/'" string is the only hint and it is never tied to 'key'. Partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Follow a user'), and the clause 'undo=True unfollows' makes the bidirectional nature clear, distinguishing it from the other social-action siblings like favorite_show and repost_show. The parenthetical "('/spartacus/')" is cryptic — it reads like a literal URL/username fragment with no explanation, which slightly muddies rather than clarifies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by explaining that the same tool handles the inverse operation via undo=True, which is genuinely useful routing information. But it gives no guidance on when to use this vs. any alternative, prerequisites, or what happens on repeat calls. Adequate but thin.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
genre_showsB
Shows of a tag/genre. Looks the list up in the tag's own connections (metadata=1), so list_name must be one the tag offers; the error lists them.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | Yes | ||
| limit | No | ||
| offset | No | ||
| list_name | No | popular |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that the lookup uses the tag's own connections (metadata=1) and that the意的 error enumerates valid list_names, which is genuine behavioral context. It still omits read-only nature, auth requirements, and pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact clauses with the core resource statement front-loaded, followed by the important constraint. No filler sentences, though the second sentence is slightly dense and could be split.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description covers the main gotcha (list_name validation). Still, for a 4-parameter listing tool with no annotations it leaves pagination, ordering, and auth context unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It clarifies the non-obvious list_name parameter (must be one the tag offers) and implicitly the tag parameter, which is valuable. But limit and offset are left completely undocumented, so half the parameters have no added meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Shows of a tag/genre' names a specific resource and makes clear it returns shows belonging to a tag, which is reasonably distinct from get_tag or get_show. However, it uses a noun phrase with no explicit verb and never names a sibling like user_shows or browse to reinforce the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a validity constraint for list_name but says nothing about when to choose this tool over search, browse, or user_shows. No prerequisites about auth or tag existence are provided, so usage context 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_objectB
Fetch any object by key or Mixcloud URL: show '/spartacus/party-time/', user '/spartacus/', tag '/genres/funk/', city '/genres/city:athens/'. metadata=True adds the list of available connections. authenticated=True sends the token so objects gain extra fields (e.g. 'following').
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| metadata | No | ||
| authenticated | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose the effects of the two flags: metadata=True adds available connections and authenticated=True sends the token for extra fields like 'following'. It says nothing about authentication requirements for the base call, error behavior, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action and then the flag semantics. No filler, though the key examples take space that could have covered sibling differentiation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-annotation, no-output-schema fetch tool, the description covers inputs and flag behavior adequately. The remaining gap is the unresolved overlap with get_show/get_user/get_tag, which an agent needs in order to route correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does explain both boolean flags ('metadata' and 'authenticated') in terms of observable effects. It also illustrates the required 'key' values ('/spartacus/party-time/', '/genres/city:athens/'), covering all three parameters meaningfully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Fetch any object by key or Mixcloud URL' — and enumerates the object types it accepts (show, user, tag, city) with concrete key examples. However, it never distinguishes itself from the more specific siblings get_show, get_user, and get_tag, which appear to overlap heavily.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this generic fetcher versus the specific siblings get_show/get_user/get_tag, nor any prerequisite or exclusion. The key-format examples guide input construction but not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_showB
Get a show by key, e.g. '/spartacus/party-time/'.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. 'Get' implies a read, but nothing is said about auth requirements, error behavior for a missing key, or the returned shape, which is a real gap for a tool whose result is untyped.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the action and immediately supplies a concrete example. Nothing extraneous; every token serves the caller.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter with no output schema, the description covers the essential lookup mechanics but omits return-shape and failure-mode context. That is adequate but leaves an agent under-informed about what it will receive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for the single required 'key' parameter, so the description must compensate. It does add value by showing the expected key format ('/spartacus/party-time/'), which the bare string type does not convey, but gives no other constraint or validation info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Get a show by key') and includes a concrete key example, which clearly separates it from sibling resources like get_user, get_tag, and get_object. It does not explicitly contrast itself with closer siblings such as search or get_object, so it falls 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus search or get_object, and no prerequisites are stated. The example key hints that direct lookup requires an exact key, but the choice between this and alternatives is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tagC
Get a tag/genre ('funk'), a city ('athens'), or both ('funk' + 'athens').
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | ||
| city | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it discloses only that this is a fetch. It says nothing about permissions, rate limits, return format, or what happens when tag/city are omitted. The 'get' verb weakly implies a read, but no real behavioral context is added.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence that front-loads the resource and explains the input combinations via inline examples. No filler, though the example-heavy phrasing slightly obscures the return behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations, so the description is the only source of truth — yet it explains inputs only and says nothing about what the call returns or how to interpret results. For a 2-parameter lookup tool this leaves meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the schema contributes only parameter names. The description does compensate somewhat by demonstrating that either tag, city, or both may be supplied, with concrete examples ('funk', 'athens'). It still omits semantics like whether omitting both is valid or what string forms are accepted, so it only partially fills the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a verb (get) and a resource (tag/genre, city) and clarifies the input combinations with examples. However, it never says what is actually returned — a tag entity, a list of shows, metadata — leaving the purpose vague relative to siblings like genre_shows or get_show.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternatives, despite siblings such as genre_shows, browse, and search that plausibly overlap. The agent must infer when this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_userB
Get a user profile by key, e.g. '/spartacus/'.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Get' implies a read, but there is no disclosure of auth requirements, rate limits, privacy behavior, or error handling. The key example is parameter detail, not behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence front-loads the verb and resource, followed by a useful example. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read, the description is nearly sufficient for invocation. However, with no annotations and no output schema, it omits auth/scope details and fails to distinguish itself from sibling 'me', leaving meaningful contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the lone parameter is named 'Key' with no schema description. The description adds only an example '/spartacus/', which helps with format but does not define what the key represents or acceptable variants. Partial compensation for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: get a user profile by key. The example key '/spartacus/' clarifies the target format. It does not distinguish from sibling 'me' or explain the user scope, but the core purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, prerequisites, or alternatives are given. 'By key' implies lookup, but the sibling 'me' creates ambiguity about current user vs. arbitrary user that the description does not resolve.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_connectionB
List a connection of an object, e.g. key='/spartacus/' with connection 'followers' | 'following' | 'favorites' | 'cloudcasts' | 'listens'. Use key='/me/' with authenticated=True for the token owner's own lists. since/until: Unix timestamp or 'YYYY-MM-DD HH:MM:SS' (UTC), for dated lists.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| limit | No | ||
| since | No | ||
| until | No | ||
| offset | No | ||
| connection | Yes | ||
| authenticated | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden, and it does disclose the authenticated flag's effect, the semantics of key/connection, and the date format for since/until. It says nothing about pagination behavior (limit/offset), ordering, rate limits, or auth failure modes, so transparency is partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact clauses, each carrying distinct information: what is listed, the authenticated routing rule, and the date format. No filler, and the object/connection examples are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, and the description covers the meaningful semantic parameters. However, pagination via limit/offset is undocumented in both schema and description, leaving an agent without guidance on result windowing for a list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it documents 5 of 7 parameters to some degree: key (example form), connection (closed value list), authenticated (effect), and since/until (accepted formats). It leaves limit and offset completely unexplained, which is a real gap for a 7-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List a connection of an object') and enumerates the concrete connection values (followers, following, favorites, cloudcasts, listens) with a real key example, so the agent knows exactly what is fetched. It does not, however, differentiate itself from siblings like search, browse, or user_shows, which also return object collections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one explicit routing rule — use key='/me/' with authenticated=True for the token owner's own lists — which is genuinely useful context. Beyond that it offers no when-to-use guidance relative to alternatives such as search or browse, and no when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listen_laterC
Add a show to Listen Later; undo=True removes it.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| undo | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits itself. It reveals the dual add/remove nature but says nothing about auth requirements, whether the operation is idempotent, or what happens on a duplicate add; for an unannotated mutation tool this is a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence that front-loads the primary action and appends the undo toggle. No filler, though it is arguably too terse given the undocumented parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutation tool with no annotations, no output schema, and 0% parameter description coverage needs more than one clause of context. Undefined 'key' plus absent auth/side-effect notes leave the agent under-informed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries the full burden. It explains undo (True removes the show), but leaves 'key' completely undefined – the agent cannot tell whether it is a show ID, slug, or URI.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Add a show to Listen Later') plus the inverse behavior via undo. It does not differentiate from similarly-named siblings such as favorite_show or follow_user, so an agent must infer which list operation applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives. With siblings like favorite_show, follow_user, and repost_show, the agent has no signal for choosing listen_later over those.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meC
The authorized user's own profile (/me/).
| Name | Required | Description | Default |
|---|---|---|---|
| metadata | No |
TDQS
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. Saying 'authorized user's own profile' hints that authentication is required and that this is a read operation, but it says nothing about what is returned, whether the response shape is stable, or how the single metadata flag alters behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the endpoint path included and no filler. It is front-loaded and appropriately sized for a simple read tool, though it is arguably too sparse to be fully useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool this is nearly adequate, but with no annotations and no output schema the description leaves the metadata parameter and the return content unexplained. An agent can guess the purpose but cannot confidently predict behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the single 'metadata' boolean parameter (default false) is never mentioned in the description. Since this is not a zero-parameter tool, the description should explain what metadata toggles but does not, leaving the parameter's meaning undocumented everywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource precisely — the authorized user's own profile at the /me/ endpoint — so an agent knows it returns the caller's own account rather than an arbitrary user's. It distinguishes itself implicitly from the sibling get_user (which presumably takes an id), though it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus get_user or check_token, no mention of prerequisites, and no exclusions. The agent must infer usage entirely from the title-less name 'me' and the terse description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oembedC
oEmbed data for a Mixcloud show URL (https://www.mixcloud.com/...).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden but says nothing about read-only behavior, whether the show must be public, rate limits, or failure modes for a malformed URL. Only the domain restriction ('Mixcloud show URL') is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the key qualifier (Mixcloud show URL) front-loaded and no filler. It is arguably too terse rather than bloated, which is a different problem than structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool whose entire value is returning oEmbed payload fields (title, author, thumbnail, embed HTML), the description never says what comes back, and there is no output schema to fall back on. The input contract is minimally covered but the output side is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate for the single 'url' parameter. It does add real meaning by specifying the expected resource URL (a Mixcloud show URL) with a format hint, but gives no example value or constraints beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (oEmbed data) and the exact input (a Mixcloud show URL), so an agent can tell roughly what it returns. The verb is only implied and it never distinguishes itself from the sibling embed_html, which sounds like it may overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisite conditions, and no mention of the sibling embed_html that an agent might reasonably confuse this with. Usage is entirely left to inference from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repost_showB
Repost a show; undo=True removes the repost.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| undo | No |
TDQS
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 that the operation is reversible via undo=True and implies a write/mutation, but omits permissions/auth requirements, whether reposting is idempotent, and what happens to an existing repost. That is partial disclosure for an unannotated mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with zero filler, and the core action is front-loaded before the optional modifier clause. Nothing could be trimmed without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema and no annotations, the description covers the mutation and its reversal but leaves the required key argument and auth expectations unexplained. It is minimally viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It does explain the optional undo parameter's semantics ('undo=True removes the repost'), but the required 'key' parameter is left completely undefined — an agent cannot tell whether it is a show key, user key, or token.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (repost) and resource (show), so the action is unambiguous. It does not, however, differentiate from near-neighbor siblings such as favorite_show or listen_later, which an agent could easily confuse with reposting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no named alternative among the siblings (favorite_show, listen_later, upload_show). The undo=True note hints at reversible usage but says nothing about when an agent should prefer this over other show-mutation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchC
Search Mixcloud. type: 'cloudcast' (shows), 'user' or 'tag'.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | cloudcast | |
| limit | No | ||
| query | Yes | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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, and it discloses almost nothing: no auth requirement, no rate limits, no pagination behavior despite offset/limit parameters, no result ordering. The output schema covers return values, which is the only relief.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short fragments with no padding, and the core purpose plus the type hint are front-loaded. The brevity is efficient rather than wasteful, though it edges toward under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters, 0% schema coverage, and no annotations, the description should do far more work than it does. An agent gets no guidance on paging, result size, or query semantics, so it cannot call this tool confidently beyond the simplest case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and largely does not. It only glosses the 'type' enum (already documented in the schema as cloudcast/user/tag) and says nothing about query syntax, limit defaults, or how offset paginates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Search') and resource ('Mixcloud'), and the type enumeration clarifies what can be searched. It does not distinguish itself from siblings that also surface content, such as browse or genre_shows, so an agent must still infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance, and no alternatives named among the many discovery siblings (browse, genre_shows, get_show, get_user). The type list implies what is searchable but not when search beats a direct get_* call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_showA
Upload a show. Files must be inside the upload directory (relative paths resolve there). mp3 up to 4 GB, picture up to 10 MB, description up to 1000 chars, up to 5 tags. sections: [{'chapter': 'Intro', 'start_time': 0}, {'artist': 'A', 'song': 'S', 'start_time': 10}]. unlisted defaults to True (private link only) for safety; set unlisted=False to publish publicly. publish_date (UTC, 2030-11-21T14:05:00Z), disable_comments, hide_stats and hosts (max 2 usernames) are Pro-only.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| tags | No | ||
| hosts | No | ||
| sections | No | ||
| unlisted | No | ||
| audio_path | Yes | ||
| hide_stats | No | ||
| description | No | ||
| picture_path | No | ||
| publish_date | No | ||
| disable_comments | No |
TDQS
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 disclose meaningful traits: the private-by-default unlisted behavior explained as a safety choice, the upload-directory path requirement and size limits, and the Pro-only gating of publish_date, disable_comments, hide_stats, and hosts. It does not cover auth requirements, whether uploads are reversible, failure behavior, or return values, which keeps it 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the dense remainder is mostly constraint detail that earns its place for a no-schema-coverage tool. It reads as a packed block rather than a cleanly organized list, which slightly hurts scanability but costs little.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter creation tool with no annotations and no output schema, the description covers nearly every parameter's format and limits plus the default privacy behavior. Auth prerequisites and any response/failure semantics are the remaining gaps, but 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: it documents mp3 (4 GB), picture (10 MB), description (1000 chars), tags (max 5), hosts (max 2 usernames), unlisted default, publish_date UTC format with an example, and the sections structure with a concrete list example. This adds substantial meaning that the bare schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource ("Upload a show"), which cleanly separates it from the read/mutation siblings get_show and edit_show. The following sentences layer on scope and limits, so an agent immediately knows this creates a new show from an audio file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through constraints and defaults (unlisted defaults True for safety, set unlisted=False to publish publicly, Pro-only gating), but there is no explicit when-to-use versus alternatives such as edit_show or whether an existing show should be updated instead. The guidance is informative but leaves routing between create and edit to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user_showsC
List a user's shows. key: '/spartacus/'.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| limit | No | ||
| since | No | ||
| until | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state that this is a read-only operation, whether authentication is required, how pagination works, or any rate limits. The output schema covers return values, but input-side behavior remains opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loads the main action. However, the second sentence 'key: '/spartacus/'.' is cryptic and does not clearly earn its place, making the overall structure minimally adequate rather than polished.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter tool with no annotations and 0% schema description coverage, the description is far too sparse. While an output schema exists and need not be explained, the input semantics—especially for limit, since, until, and offset—are missing entirely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate for five undocumented parameters. It only gives a cryptic example for 'key' ('/spartacus/') and says nothing about limit, since, until, or offset, leaving their semantics entirely to the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'List a user's shows.' This distinguishes it from most siblings, though it does not explicitly differentiate from search or get_user. The cryptic key example '/spartacus/' adds little to the core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and description: use this to retrieve a user's shows. However, there is no explicit when-to-use guidance, no mention of when not to use it, and no named alternative such as search or get_user.
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.
22 tool updates
v0.1.0- First observed
auth_url - First observed
browse - First observed
check_token - First observed
clear_token - First observed
edit_show - First observed
embed_html - First observed
exchange_code - First observed
favorite_show - First observed
follow_user - First observed
genre_shows - First observed
get_object - First observed
get_show - First observed
get_tag - First observed
get_user - First observed
list_connection - First observed
listen_later - First observed
me - First observed
oembed - First observed
repost_show - First observed
search - First observed
upload_show - First observed
user_shows
TDQS
Scored across 22 tools
There is meaningful overlap between generic tools and specific ones: get_object vs get_show/get_user/get_tag, list_connection vs user_shows/genre_shows/browse, and me vs get_user/check_token. The detailed descriptions help clarify intended use, but an agent could still reasonably hesitate between several read/list tools.
Most names use snake_case, but the conventions are mixed: verb_noun (get_show, list_connection, follow_user), noun_verb or noun_phrase (user_shows, genre_shows, embed_html), and bare nouns/actions (search, browse, me, oembed, auth_url). It remains readable, but the pattern is not predictable.
With 22 tools, the server is on the heavy side for the Mixcloud API surface. Several tools are generic duplicates of more specific ones, so the count feels slightly inflated rather than perfectly scoped.
The surface covers search, reads, social actions, upload/edit lifecycle, and OAuth reasonably well. Minor gaps exist, such as no explicit delete_show and no comment-related tools, but core workflows are supported.
Maintenance
Related MCP Connectors
Create, inspect, and manage Wubble music, speech, voice, and sound-effect requests through MCP.
MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2
MCP server for Nylas — read email, calendars, events and contacts, and send email or create events.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Related MCP Servers
- AlicenseAqualityDmaintenanceBridges the Mixcloud API to AI assistants via MCP, enabling search for mixes, artist lookup, uploads, and user profile access.71GPL 3.0
- AlicenseCqualityBmaintenanceAn MCP server that gives an assistant access to the SoundCloud API — search and discovery, your library, playlist management, social actions, and messaging.32MIT
- FlicenseNot gradedqualityCmaintenanceEnables searching Spotify and managing playlists from any MCP client using natural language.-

LabelGrid MCP Serverofficial
AlicenseAqualityAmaintenanceThe official MCP server for LabelGrid's music distribution platform, enabling natural language management of music catalogs, releases, files, analytics, royalties, webhooks, and distribution via a thin wrapper over the LabelGrid public API.844MIT