MCP tools reference
SoundCloud MCP tools
14 tools for SoundCloud on the Cotlet MCP server. Your agent picks them from tools/list.
- MCP server
- https://cotlet.dev/mcp/v1
- Connects with
- Your own SoundCloud account (Artist Pro for audience Insights and scheduled releases)
- Integration page
- SoundCloud
| Endpoint | Access | Description |
|---|---|---|
| soundcloud_list_tracks | read | Your uploads, newest first, with privacy, release date and lifetime counts. |
| soundcloud_get_track | read | Full track details: title, description, genre, tags, privacy, secret link, comment and download settings and counts. |
| soundcloud_get_insights | read | Plays, likes, comments, reposts and downloads for a period, for your profile or one track, with top tracks. |
| soundcloud_get_audience | read | Top 50 listeners, countries, cities or play sources for a period. Needs Artist Pro. |
| soundcloud_list_comments | read | Comments on your tracks, newest first, with author, text, waveform timestamp and whether you replied. |
| soundcloud_list_conversations | read | Your direct message threads with the other person, last message and unread state. |
| soundcloud_upload_track | write | Upload an audio file as a private track. Nobody sees it until you make it public or it is released. |
| soundcloud_update_track | write | Change the title, description, genre, tags, artwork or comment and download settings of a track. |
| soundcloud_schedule_release | write | Set when a private track goes public and lands in followers' feeds. Needs Artist Pro. |
| soundcloud_set_track_privacy | write | Make a track public now, or private with a secret link you can share. |
| soundcloud_create_playlist | write | New playlist from your tracks. Private by default, with a secret link. |
| soundcloud_reply_to_comment | write | Reply as you under a comment on your track. |
| soundcloud_delete_comment | write | Permanently remove a comment from your track, optionally reporting it as spam. |
| soundcloud_send_message | write | Send a direct message to one user, optionally with one of your tracks attached. |
List tracks
readMCP tool soundcloud_list_tracks
Lists the tracks on your profile, newest first. Privacy is public, private or scheduled, and scheduled tracks show their release time. Counts are lifetime plays, likes, comments and reposts; get_insights returns them for a period. Pages hold up to 200 tracks; pass next_cursor back as cursor.
Parameters
| Name | Type | Description |
|---|---|---|
| privacy | enum | all, public, private or scheduled. Default: all. |
| limit | integer | 1 to 200. Default: 50. |
| cursor | string | Next page cursor from the previous call. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "soundcloud_list_tracks",
"arguments": {}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"tracks": [
{
"track_id": "2148839017",
"title": "Night Drive",
"privacy": "scheduled",
"release_at": "2026-10-16T18:00:00+02:00",
"genre": "House",
"plays": 0,
"likes": 0,
"comments": 0,
"reposts": 0,
"url": "https://soundcloud.com/yourname/night-drive"
},
{
"track_id": "2141120034",
"title": "Harbour Lights",
"privacy": "public",
"release_at": null,
"genre": "House",
"plays": 4210,
"likes": 188,
"comments": 31,
"reposts": 42,
"url": "https://soundcloud.com/yourname/harbour-lights"
}
],
"next_cursor": null
},
"isError": false
} Get track
readMCP tool soundcloud_get_track
Returns one of your tracks with its full description, tags and privacy. A private track includes its secret link. Comment and download settings show whether comments are on and whether the track can be downloaded.
Parameters
| Name | Type | Description |
|---|---|---|
| track_id required | string | Track ID from list_tracks. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "soundcloud_get_track",
"arguments": {
"track_id": "track_8c41d2"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"track_id": "2148839017",
"title": "Night Drive",
"description": "Late-night deep house, 124 BPM.",
"genre": "House",
"tags": [
"deep house",
"night"
],
"privacy": "private",
"secret_url": "https://soundcloud.com/yourname/night-drive/s-Ab12Cd34Ef",
"comments_enabled": true,
"downloadable": false,
"plays": 0,
"likes": 0,
"comments": 0,
"reposts": 0
},
"isError": false
} Get Insights
readMCP tool soundcloud_get_insights
Returns the numbers SoundCloud shows in Insights for the period you set, for your whole profile or one track. The response lists top tracks by plays, highest first. Available to every account. Counts match the Insights page at the time of the call.
Parameters
| Name | Type | Description |
|---|---|---|
| from | date | Start of the period, inclusive. |
| to | date | End of the period, inclusive. Default: today. |
| track_id | string | Limit to one track. Default: all tracks. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "soundcloud_get_insights",
"arguments": {}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"from": "2026-10-05",
"to": "2026-10-11",
"totals": {
"plays": 1840,
"likes": 96,
"comments": 14,
"reposts": 22,
"downloads": 5
},
"top_tracks": [
{
"track_id": "2141120034",
"title": "Harbour Lights",
"plays": 1210
},
{
"track_id": "2139904418",
"title": "Slow Burn",
"plays": 630
}
]
},
"isError": false
} Get audience
readMCP tool soundcloud_get_audience
Returns the top 50 for one breakdown and any period you set, highest first. Top listeners include only signed-in listeners, and plays from your own account are not counted. Sources show where plays came from, such as the SoundCloud app, a playlist or an embed on another website. Needs Artist Pro; other accounts get a permission error.
Parameters
| Name | Type | Description |
|---|---|---|
| breakdown required | enum | top_listeners, countries, cities or sources. |
| from | date | Start of the period, inclusive. |
| to | date | End of the period, inclusive. Default: today. |
| track_id | string | Limit to one track. Default: all tracks. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "soundcloud_get_audience",
"arguments": {
"breakdown": "cities",
"from": "2026-04-01",
"to": "2026-09-30"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"breakdown": "countries",
"from": "2026-07-01",
"to": "2026-09-30",
"items": [
{
"name": "Germany",
"plays": 5120
},
{
"name": "United Kingdom",
"plays": 3874
},
{
"name": "United States",
"plays": 2950
}
]
},
"isError": false
} List comments
readMCP tool soundcloud_list_comments
Lists comments on your tracks, newest first. Each has the author, the text, the position on the waveform where it was left and a flag for whether you already replied. Use since to read only what came in after your last check and unanswered_only to skip answered ones.
Parameters
| Name | Type | Description |
|---|---|---|
| track_id | string | Limit to one track. Default: all tracks. |
| since | date | Only comments posted on or after this date. |
| unanswered_only | boolean | Skip comments you already replied to. |
| cursor | string | Next page cursor from the previous call. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "soundcloud_list_comments",
"arguments": {}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"comments": [
{
"comment_id": "3347102215",
"track_id": "2141120034",
"author": "Mira K.",
"body": "That bass line!",
"at_seconds": 83,
"created_at": "2026-10-09T20:14:00Z",
"replied": false
},
{
"comment_id": "3347102498",
"track_id": "2141120034",
"author": "promo_bot_77",
"body": "Follow me for free beats http://spam.example",
"at_seconds": 12,
"created_at": "2026-10-09T21:02:00Z",
"replied": false
}
],
"next_cursor": null
},
"isError": false
} List conversations
readMCP tool soundcloud_list_conversations
Lists your direct message threads, most recent first, with the other person, the last messages and whether the thread is unread. Set unread_only to see only what needs an answer. Pass conversation_id or the person's profile URL to send_message.
Parameters
| Name | Type | Description |
|---|---|---|
| unread_only | boolean | Only threads with unread messages. |
| limit | integer | 1 to 50. Default: 20. |
| cursor | string | Next page cursor from the previous call. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "soundcloud_list_conversations",
"arguments": {}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"conversations": [
{
"conversation_id": "cv_5521",
"with": {
"name": "Jonas Weber",
"profile_url": "https://soundcloud.com/jonas-weber"
},
"unread": true,
"last_message": "Love Night Drive. Want to do a remix?",
"updated_at": "2026-10-10T08:30:00Z"
}
],
"next_cursor": null
},
"isError": false
} Upload track
writeMCP tool soundcloud_upload_track
Uploads an audio file from a URL and creates a private track with the details you give. Private tracks are hidden from followers and search, and reached only through a secret link. upload_track reaches no one and one call to set_track_privacy or a delete in SoundCloud undoes it, so it runs without asking first.
Parameters
| Name | Type | Description |
|---|---|---|
| file_url required | string | URL of the audio file. |
| title required | string | Track title. |
| description | string | Track description. |
| genre | string | Genre, e.g. House. |
| tags | string[] | Additional tags. |
| artwork_url | string | URL of a square image for the artwork. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "soundcloud_upload_track",
"arguments": {
"file_url": "https://example.com",
"title": "title"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"track_id": "2148839017",
"title": "Night Drive",
"privacy": "private",
"status": "processing",
"secret_url": "https://soundcloud.com/yourname/night-drive/s-Ab12Cd34Ef"
},
"isError": false
} Update track details
writeMCP tool soundcloud_update_track
Changes the fields you pass and leaves the rest as they are. The audio file itself cannot be replaced after upload. Changes show on the public track page right away. update_track reaches no one directly and the old values can be set again with one call, so it runs without asking first.
Parameters
| Name | Type | Description |
|---|---|---|
| track_id required | string | Track ID from list_tracks. |
| fields required | object | Any of title, description, genre, tags, artwork_url, comments_enabled, downloadable. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "soundcloud_update_track",
"arguments": {
"track_id": "track_8c41d2",
"fields": "fields"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"track_id": "2148839017",
"updated": [
"title",
"tags"
],
"title": "Night Drive (Extended)",
"tags": [
"deep house",
"night",
"extended"
]
},
"isError": false
} MCP tool soundcloud_schedule_release
Schedules a private track to go public at the time you give. At that time it is released and appears in followers' Feeds. Only Artist Pro creators can schedule, only single tracks, and only tracks that are private. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| track_id required | string | Track ID from list_tracks. |
| release_at required | datetime | ISO 8601 with time zone. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "soundcloud_schedule_release",
"arguments": {
"track_id": "2148839017",
"release_at": "2026-10-16T18:00:00+02:00"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"track_id": "2148839017",
"title": "Night Drive",
"privacy": "scheduled",
"status": "scheduled",
"release_at": "2026-10-16T18:00:00+02:00",
"url": "https://soundcloud.com/yourname/night-drive"
},
"isError": false
} MCP tool soundcloud_set_track_privacy
Makes a track public, so followers and search can see it, or private, so only people with its secret link can. Going public from private is a first release and reaches followers' Feeds. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| track_id required | string | Track ID from list_tracks. |
| privacy required | enum | public or private. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "soundcloud_set_track_privacy",
"arguments": {
"track_id": "track_8c41d2",
"privacy": "public"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"track_id": "2148839017",
"privacy": "private",
"secret_url": "https://soundcloud.com/yourname/night-drive/s-Ab12Cd34Ef"
},
"isError": false
} Create playlist
writeMCP tool soundcloud_create_playlist
Creates a playlist from your tracks in the order you give. It is private by default and the response includes its secret link; anyone with that link can listen. Private tracks in a public playlist are not visible to listeners. create_playlist reaches no one until you share the link and is undone by deleting the playlist in SoundCloud, so it runs without asking first.
Parameters
| Name | Type | Description |
|---|---|---|
| title required | string | Playlist title. |
| track_ids required | string[] | Track IDs in play order. |
| description | string | Playlist description. |
| privacy | enum | private or public. Default: private. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "soundcloud_create_playlist",
"arguments": {
"title": "title",
"track_ids": [
"track ids"
]
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"playlist_id": "1877340021",
"title": "Demos for Jan",
"privacy": "private",
"track_count": 3,
"secret_url": "https://soundcloud.com/yourname/sets/demos-for-jan/s-Qw98Er76Ty"
},
"isError": false
} MCP tool soundcloud_reply_to_comment
Posts a reply under a comment on one of your tracks. The reply appears under your name. SoundCloud may block commenting for a while if many similar messages go out quickly. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| comment_id required | string | Comment ID from list_comments. |
| body required | string | Reply text. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "soundcloud_reply_to_comment",
"arguments": {
"comment_id": "3347102215",
"body": "Thank you! The bass line came together at 3 a.m."
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"comment_id": "3347102560",
"reply_to": "3347102215",
"status": "published"
},
"isError": false
} MCP tool soundcloud_delete_comment
Removes a comment from one of your tracks. Deleted comments cannot be restored. With report_spam the comment is also reported for review by SoundCloud. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| comment_id required | string | Comment ID from list_comments. |
| report_spam | boolean | Also report it as spam. Default: false. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "soundcloud_delete_comment",
"arguments": {
"comment_id": "comment_8c41d2"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"comment_id": "3347102498",
"status": "deleted",
"reported_as_spam": true
},
"isError": false
} MCP tool soundcloud_send_message
Sends a direct message to one SoundCloud user, or into an existing conversation, under your name. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| to required | string | Profile URL or conversation ID from list_conversations. |
| body required | string | Message text. |
| track_id | string | Attach one of your tracks. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "soundcloud_send_message",
"arguments": {
"to": "to",
"body": "body"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"conversation_id": "cv_5521",
"message_id": "msg_88410",
"status": "sent",
"sent_at": "2026-10-11T09:05:00+02:00"
},
"isError": false
}