Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MIXCLOUD_TOKENNoAccess token; written for you by exchange_code.
MIXCLOUD_ENV_FILENoToken store: loaded at startup, written by exchange_code.$XDG_CONFIG_HOME/mixcloud-mcp-server/.env (~/.config/…)
MIXCLOUD_CLIENT_IDNoOAuth app id, needed once for authorisation.
MIXCLOUD_UPLOAD_DIRNoThe only directory uploads may read files from.$XDG_DATA_HOME/mixcloud-mcp-server/uploads (~/.local/share/…)
MIXCLOUD_CLIENT_SECRETNoOAuth secret, needed once for authorisation.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
searchC

Search Mixcloud. type: 'cloudcast' (shows), 'user' or 'tag'.

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

get_showB

Get a show by key, e.g. '/spartacus/party-time/'.

get_userB

Get a user profile by key, e.g. '/spartacus/'.

get_tagC

Get a tag/genre ('funk'), a city ('athens'), or both ('funk' + 'athens').

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.

user_showsC

List a user's shows. key: '/spartacus/'.

browseC

Site-wide lists: popular, hot or new shows.

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.

embed_htmlC

Embed code (HTML) for a show's player widget. color: 6-digit hex, no '#'.

oembedC

oEmbed data for a Mixcloud show URL (https://www.mixcloud.com/...).

meC

The authorized user's own profile (/me/).

follow_userB

Follow a user ('/spartacus/'); undo=True unfollows.

favorite_showB

Favorite a show ('/spartacus/party-time/'); undo=True removes it from favorites.

repost_showB

Repost a show; undo=True removes the repost.

listen_laterC

Add a show to Listen Later; undo=True removes it.

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.

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.

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

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.

check_tokenA

Check that the current token works (calls /me/).

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.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3/5.0

Scored across 22 tools

Disambiguation3/5

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.

Naming Consistency3/5

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.

Tool Count3/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues