Skip to main content
Glama
nelsonra

mixcloud-mcp

by nelsonra

mixcloud-mcp

A FastMCP server that bridges the Mixcloud API to AI assistants via the Model Context Protocol (MCP).

Ask Claude to search for mixes, look up artists, browse uploads, and upload recordings directly to Mixcloud — all from the conversation.


Tools

Tool

Description

search_cloudcasts

Search Mixcloud for mixes by keyword

get_cloudcast

Get details of a specific mix by its key

get_user

Get a user's profile

get_user_cloudcasts

List a user's uploaded mixes

get_user_followers

List a user's followers

get_user_following

List who a user follows

upload_cloudcast

Upload a recording to Mixcloud (opens a file picker UI)


Related MCP server: Spotify MCP Server

Quickstart — stdio (Claude Desktop, local)

No install needed. Add to your claude_desktop_config.json and restart:

Mac: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "mixcloud": {
      "command": "/path/to/uvx",
      "args": ["mixcloud-mcp"]
    }
  }
}

Tip: Claude Desktop doesn't inherit your shell PATH, so uvx must be a full path. Run which uvx in your terminal to find it — typically /Users/yourname/.local/bin/uvx.

Public read-only tools (search, get user, etc.) work immediately without any credentials.

To enable uploads and authenticated API calls, add your Mixcloud OAuth app credentials. The server will print an authorize URL to stderr on first start — visit it in your browser once and your token is saved automatically.

{
  "mcpServers": {
    "mixcloud": {
      "command": "/path/to/uvx",
      "args": ["mixcloud-mcp"],
      "env": {
        "MIXCLOUD_CLIENT_ID": "<your client id>",
        "MIXCLOUD_CLIENT_SECRET": "<your client secret>"
      }
    }
  }
}

Get your credentials at mixcloud.com/developers. Register http://localhost:4000/oauth/callback as the redirect URI in your Mixcloud app.


Quickstart — HTTP (hosted server, remote MCP clients)

The HTTP transport exposes the server over the network so remote MCP clients (Claude.ai, Claude Desktop configured with a URL) can connect to it.

1. Register a Mixcloud OAuth app

Go to mixcloud.com/developers and create an app. You will get a Client ID and Client Secret.

Set the redirect URI to your server's public URL plus /oauth/callback:

https://your-server.example.com/oauth/callback

If you are running locally with ngrok, use your ngrok URL instead (see step 3).

2. Configure your environment

Create a .env file (or set these as environment variables):

MIXCLOUD_CLIENT_ID=your_client_id
MIXCLOUD_CLIENT_SECRET=your_client_secret
MCP_PUBLIC_URL=https://your-server.example.com   # public HTTPS URL — no port, no trailing slash
MCP_API_KEY=your_secret_key                       # protects the MCP endpoint; generate with mixcloud-mcp-keygen

MCP_PUBLIC_URL is required. It must be HTTPS and match the domain you registered as the redirect URI in your Mixcloud app. If you are running locally via ngrok, this is your ngrok URL (e.g. https://xxxx.ngrok-free.app). Do not include a port number — ngrok handles port mapping for you.

Optional: if you already have a Mixcloud access token, set MIXCLOUD_ACCESS_TOKEN and skip step 4.

3. Start the server

uvx mixcloud-mcp-http

On startup you will see a line like:

[http] No Mixcloud token — visit https://your-server.example.com/oauth/authorize to enable uploads.

If you are running locally, expose the server first with ngrok:

ngrok http 8000

Use the ngrok HTTPS URL as MCP_PUBLIC_URL and make sure the same URL is registered as the redirect URI in your Mixcloud app.

4. Authenticate with Mixcloud

Open https://your-server.example.com/oauth/authorize in your browser and approve access. The server logs:

[http] Mixcloud token stored — upload tool is now authenticated.

The token is held in memory for the lifetime of the process. To persist it across restarts, copy the token into MIXCLOUD_ACCESS_TOKEN in your .env.

5. Add the connector in Claude

In Claude, go to Settings → Connectors → Add custom connector and enter:

https://your-server.example.com/mcp

The URL must end in /mcp. The base URL alone will not work.

Read-only tools (search, browse, get user) are available immediately. The upload tool becomes available once you have authenticated with Mixcloud in step 4.


Environment variables

Both transports

Variable

Default

Description

MIXCLOUD_CLIENT_ID

Mixcloud OAuth app client ID. Required for OAuth auth and uploads.

MIXCLOUD_CLIENT_SECRET

Mixcloud OAuth app client secret. Required for OAuth auth and uploads.

MIXCLOUD_ACCESS_TOKEN

Direct Mixcloud token. Alternative to OAuth — set manually or via mixcloud-mcp-oauth.

stdio only

Variable

Default

Description

UPLOAD_PORT

4000

Port for the sidecar HTTP server (handles uploads and the OAuth callback).

HTTP only

Variable

Default

Description

MCP_API_KEY

Bearer token protecting the MCP endpoint. Generate with mixcloud-mcp-keygen.

MCP_PORT

8000

HTTP server port.

MCP_PUBLIC_URL

http://localhost:<MCP_PORT>

Public base URL of the server. Required for browser OAuth — Mixcloud redirects back to <MCP_PUBLIC_URL>/oauth/callback.

CORS_ORIGIN

*

Allowed CORS origin for the upload endpoint. Lock this down in production.

DISABLE_AUTH

Set to true to skip auth — local dev only, never in production.


How authentication works

stdio — sidecar OAuth

When MIXCLOUD_CLIENT_ID and MIXCLOUD_CLIENT_SECRET are set, the server starts a lightweight sidecar HTTP server (on UPLOAD_PORT, default 4000) before the MCP process starts. On first run, if no token is present, it prints:

[mixcloud-mcp] No Mixcloud token — visit http://localhost:4000/oauth/authorize to connect your account.

Visit that URL once in your browser, approve access on Mixcloud, and your token is written to .env and picked up immediately. You do not need to restart the server.

The sidecar also handles file uploads — the upload UI posts directly to http://localhost:4000/upload.

HTTP — server-level authentication

The HTTP server authenticates to Mixcloud once and shares that token across all connected MCP clients. There is no per-user token — whoever authenticates first sets the token for the lifetime of the process.

You can provide the token two ways (see the Quickstart above): pre-set MIXCLOUD_ACCESS_TOKEN in your environment, or visit /oauth/authorize in a browser after starting the server. In both cases the read-only tools are always available to any client that has the MCP_API_KEY; uploads become available once a Mixcloud token is present.

The redirect URI registered in your Mixcloud app must be <MCP_PUBLIC_URL>/oauth/callback.


Future ideas

  • Per-user sessions in HTTP mode — currently all MCP clients share a single Mixcloud token. A session layer would let each user authenticate independently and upload to their own Mixcloud account.


Contributing

See CONTRIBUTING.md.


License

GNU General Public License v3.0

Available Tools

7 tools
get_cloudcastA

Get details of a specific Mixcloud mix by its key.

Args: cloudcast_key: The mix key, e.g. "/NTSRadio/nts-breakfast-show/"

ParametersJSON Schema
NameRequiredDescriptionDefault
cloudcast_keyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of disclosing behavioral traits. The phrase 'Get details' implies a read-only operation with no side effects, which is accurate but minimal. It does not mention error behavior (e.g., not found handling), authentication requirements, or rate limits. The description is not misleading but lacks depth, so a mid-range score is appropriate.

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

Conciseness5/5

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

The description is extremely concise: one sentence for the main purpose plus an args block. It is front-loaded with the core purpose, and every word adds value (e.g., 'specific', 'by its key'). The use of an Args block is a clean, structured way to document the parameter without unnecessary prose.

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

Completeness4/5

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

For a simple single-parameter getter with an output schema present, the description is largely complete. It does not need to explain return values because the output schema exists. The only minor gap is not explicitly stating when to prefer this over search_cloudcasts or get_user_cloudcasts, but that is more of a usage guideline issue. Overall, it is complete enough for its complexity.

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

Parameters5/5

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

The schema provides only a required string parameter with no description (coverage 0%). The description compensates fully by explaining 'cloudcast_key: The mix key' and giving a concrete example ('/NTSRadio/nts-breakfast-show/'), which adds meaningful semantics beyond the raw schema.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get details of a specific Mixcloud mix by its key.' It uses a specific verb ('get'), resource ('Mixcloud mix'), and lookup method ('by its key'), distinguishing it from siblings like search_cloudcasts (searching) and get_user_cloudcasts (listing user mixes).

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

Usage Guidelines3/5

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

The usage is implied: use this tool when you have a known cloudcast key and want its details. There is no explicit guidance on when not to use it or alternative tools. However, the presence of sibling tools like search_cloudcasts (for discovery) and get_user_cloudcasts (for listing) makes the intended context reasonably clear, though not explicitly stated.

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 Mixcloud user's profile by username.

Args: username: The Mixcloud username, e.g. "NTSRadio"

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It only says 'Get a ... profile' and explains the username argument, but does not disclose return format, error behavior, authentication needs, or any side effects. The verb 'Get' implies read-only, but no explicit safety or behavioral context is given.

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

Conciseness5/5

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

The description is very brief and front-loaded, with the main action in the first sentence. The Args section clearly annotates the single parameter. No unnecessary words or repetition.

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

Completeness3/5

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

This is a simple one-parameter read tool with an output schema. The description covers the basic purpose and parameter semantics, but lacks details on edge cases, error handling, or when to prefer it over similar user-related tools. Given the tool's simplicity, the description is minimally adequate but could be richer.

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

Parameters4/5

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

The schema provides only a type string with no description. The description compensates by explaining the username parameter and providing a concrete example ('NTSRadio'), which adds meaning beyond the raw schema.

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

Purpose4/5

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

The description uses a specific verb ('Get') and resource ('Mixcloud user's profile by username'), clearly stating what the tool does. It does not explicitly distinguish from sibling tools like get_user_cloudcasts or get_user_followers, but the resource 'profile' implies a distinct focus.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It only states the action, with no context, exclusions, or references to sibling tools.

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

get_user_cloudcastsA

Get a list of mixes uploaded by a Mixcloud user.

Args: username: The Mixcloud username, e.g. "NTSRadio" limit: Number of results to return (default 20, max 100)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
usernameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the limit parameter's default and max, but does not mention pagination, authentication needs, or whether only public mixes are included. For a read operation, this is minimal but not misleading.

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

Conciseness5/5

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

The description is two sentences plus an Args block, all of which add value. The purpose is front-loaded, and there is no unnecessary filler.

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

Completeness4/5

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

The tool is simple, has an output schema, and the description covers core purpose and parameter constraints. It omits potential pagination or sorting details, but given the output schema and simplicity, it is adequately complete.

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

Parameters4/5

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

Schema coverage is 0%, but the description's Args section adds meaningful context: a concrete example for username ('NTSRadio') and constraints for limit (default 20, max 100). This compensates for the sparse schema.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Get a list of mixes uploaded by a Mixcloud user.' This clearly distinguishes it from sibling tools like search_cloudcasts, get_cloudcast, or get_user_followers, which have different scopes.

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

Usage Guidelines3/5

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

The description implies usage (to retrieve a user's uploads) but does not explicitly state when to use this over alternatives or mention exclusions. The context is clear but not fully spelled out.

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

get_user_followersA

Get a list of followers for a Mixcloud user.

Args: username: The Mixcloud username, e.g. "NTSRadio" limit: Number of results to return (default 20, max 100)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
usernameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It adds useful constraints like the default (20) and maximum (100) for the limit parameter, which go beyond the schema. However, it does not describe pagination behavior, ordering, or error responses, leaving some behavioral aspects opaque. The read-only nature is implied by 'Get' but not explicitly confirmed.

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

Conciseness5/5

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

The description is compact and front-loaded. The first sentence states the purpose, followed by a clean args list. Every word contributes value, with no redundancy or irrelevant detail. It is exemplary for a tool with only two parameters.

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

Completeness4/5

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

Despite having no annotations, the tool is simple with only two parameters, and an output schema exists (confirmed by context signals) to document return values. The description covers the essential purpose and all parameter semantics. It lacks explicit mention of pagination or boundaries, but given the existence of an output schema and the tool's simplicity, it is sufficiently complete for effective use.

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

Parameters5/5

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 thoroughly. Both parameters are explained: username is defined as 'the Mixcloud username' with an example, and limit is described as 'Number of results to return' with default and max bounds. This adds meaning far beyond the bare schema and effectively documents both parameters.

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

Purpose5/5

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

The description clearly states the tool's function: 'Get a list of followers for a Mixcloud user.' This is a specific verb+resource pairing that distinguishes it from siblings like get_user_following, which retrieves accounts the user follows. The purpose is unambiguous and immediately actionable.

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

Usage Guidelines4/5

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

The description provides clear context by specifying the exact resource (followers of a user) and the required username. It does not explicitly name alternatives or exclusions, but the sibling get_user_following exists and the distinction is implied by the tool name and description. This is a clear usage context without explicit alternative guidance.

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

get_user_followingA

Get a list of users that a Mixcloud user is following.

Args: username: The Mixcloud username, e.g. "NTSRadio" limit: Number of results to return (default 20, max 100)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
usernameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/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 of behavioral disclosure. It only states the read operation and the maximum limit value; it fails to mention authentication requirements, rate limits, pagination behavior, or any potential side effects. This is a significant gap for a tool with no annotation safety hints.

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

Conciseness5/5

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

The description is highly concise, with a clear one-sentence purpose followed by a compact Args section. Every element earns its place, and the most important information (what the tool does) is front-loaded.

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

Completeness4/5

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

For a simple read-only listing tool with an output schema, the description covers the essential input parameters and defaults/max limits. It does not address error conditions or pagination beyond the limit, but given the simplicity and available output schema, the coverage is adequate.

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

Parameters4/5

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

The schema provides almost no descriptions beyond types and a default, so the description adds valuable meaning. It gives a concrete example for username ('NTSRadio') and specifies the maximum limit of 100, which is not present in the schema. This meaningfully compensates for the 0% schema description coverage.

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

Purpose5/5

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

The description uses the specific verb 'Get' and identifies the resource as 'users that a Mixcloud user is following,' clearly distinguishing it from sibling tool get_user_followers which would return the user's followers. The scope is unambiguous and differentiates the tool from other get_user_* siblings.

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

Usage Guidelines3/5

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

The tool's name and description make it clear that this is for fetching the 'following' list, which is opposite to get_user_followers. However, the description does not explicitly contrast it with siblings or state when to prefer this over alternatives, so usage guidance is only implied rather than explicitly stated.

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

search_cloudcastsA

Search Mixcloud for mixes (cloudcasts) by keyword.

Args: query: Search term, e.g. "deep house" or "NTS Radio" limit: Number of results to return (default 20, max 100)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
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 the search behavior and the limit parameter's default/max, but does not mention details like pagination, ordering, or response format. The output schema may cover return values, so this is minimally 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/5

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

The description is extremely concise: a clear purpose sentence and a structured Args section. Every sentence earns its place, with no fluff or redundancy.

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

Completeness4/5

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

For a simple search tool with two parameters and an output schema, the description covers the essential usage. It omits advanced behavioral details, but the output schema and intuitiveness of search make this acceptable.

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

Parameters5/5

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

The description provides substantial meaning beyond the schema: query gets examples ('deep house', 'NTS Radio'), and limit gets a default and maximum. This fully compensates for the 0% schema description coverage.

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

Purpose5/5

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

The description states a specific action: 'Search Mixcloud for mixes (cloudcasts) by keyword.' This clearly identifies the resource (Mixcloud mixes) and the operation (search), distinguishing it from siblings like get_cloudcast or upload_cloudcast.

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

Usage Guidelines4/5

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

The context clarifies this tool is for keyword-based discovery, implying when to use it (when you need to find mixes by search term). It does not explicitly mention alternatives or exclusions, but the sibling tool names make the distinction apparent.

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

upload_cloudcastA

Upload a recording to Mixcloud. Opens a file picker UI.

Args: name: Optional mix or show title to pre-fill in the upload form.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only mentions that a file picker UI opens, but does not specify whether the operation is synchronous, requires prior authentication, what it returns, or how the upload is completed. This is insufficient for a write tool.

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

Conciseness5/5

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

The description is compact and front-loaded: it states the core action first, then only one additional parameter explanation. No wasted words.

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

Completeness3/5

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

The tool is simple with one optional parameter, and the description covers the purpose and param semantics. However, it lacks operational context such as whether the tool blocks awaiting user input, how the upload is completed, or any permissions required. The presence of an output schema offsets the need for return-value details, so this is incomplete but not fatally so.

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

Parameters5/5

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

The description provides a clear explanation of the 'name' parameter as an optional pre-fill for the upload form, which the schema entirely lacks. This fully compensates for the 0% schema coverage.

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

Purpose5/5

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

The description clearly states the tool's action: 'Upload a recording to Mixcloud.' The verb 'upload' and resource 'Mixcloud' are specific, and the mention of opening a file picker UI distinguishes it from the read-only sibling tools like search_cloudcasts and get_cloudcast.

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

Usage Guidelines3/5

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

The description implies this is the upload tool since all siblings are read operations, but it does not explicitly state when to use it or provide exclusions or prerequisites. The file picker mention hints that it requires user interaction but does not specify when an agent should invoke it.

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. Dates show when Glama detected each change.

  1. 7 tool updatesv0.3.1
    • First observedget_cloudcast
    • First observedget_user
    • First observedget_user_cloudcasts
    • First observedget_user_followers
    • First observedget_user_following
    • First observedsearch_cloudcasts
    • First observedupload_cloudcast

TDQS

A4/5.0
Disambiguation5/5

Each tool targets a distinct resource and action: search vs. direct retrieval, user profile vs. user's cloudcasts vs. follower/following lists. No two tools overlap in purpose, making selection unambiguous.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern: search_cloudcasts, get_cloudcast, get_user, get_user_cloudcasts, get_user_followers, get_user_following, upload_cloudcast. The naming is uniform and predictable.

Tool Count5/5

Seven tools is well-scoped for a Mixcloud server, covering search, direct lookups, user exploration, and upload. The count feels appropriate and not bloated or thin.

Completeness4/5

The surface covers core Mixcloud workflows: discovery, retrieval, user relationships, and upload. Minor gaps like likes or comments exist, but the primary functionality is well covered.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Integrates Apple Music with MCP clients to search the global catalog, manage personal playlists, and access library data. It enables users to perform actions like creating playlists, adding tracks, and viewing recommendations through natural language commands.
    1
    -
  • A
    license
    B
    quality
    C
    maintenance
    MCP server for the Spotify Web API — gives Claude and other AI assistants tools to search music, control playback, manage playlists, library, and podcasts.
    59
    MIT

Latest Blog Posts

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/nelsonra/mixcloud-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server