SoundCloud search for DJs and AI agents, with BPM and key measured from the audio.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Measure BPM and musical key (with Camelot code) from the audio of a SoundCloud track, using a 30-second window starting at `position` ms. BPM is corrected for half/double-time errors using the track's genre. First call takes ~5–15 s; repeat calls are cached for 30 days. Limited to 6 calls per minute per client. Preview snippets (≤60 s) are rejected.
SoundCloud track URL
Start of the analysis window in ms; use it for long mixes
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http beatseek https://beatseek.io/api/mcp
Measure BPM and musical key (with Camelot code) from the audio of a SoundCloud track, using a 30-second window starting at `position` ms. BPM is corrected for half/double-time errors using the track's genre. First call takes ~5–15 s; repeat calls are cached for 30 days. Limited to 6 calls per minute per client. Preview snippets (≤60 s) are rejected.
| Argument | Type | Description |
|---|---|---|
| url* | string | SoundCloud track URL |
| position | integer | Start of the analysis window in ms; use it for long mixes |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"pattern": "^https?:\\/\\/(soundcloud\\.com|on\\.soundcloud\\.com)\\/",
"description": "SoundCloud track URL"
},
"position": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Start of the analysis window in ms; use it for long mixes"
}
}
}List the tracks of a SoundCloud playlist or album URL.
| Argument | Type | Description |
|---|---|---|
| url* | string | SoundCloud playlist URL |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"pattern": "^https?:\\/\\/(soundcloud\\.com|on\\.soundcloud\\.com)\\/",
"description": "SoundCloud playlist URL"
}
}
}Find the best SoundCloud URL for a known artist + title (e.g. a line from a tracklist). Returns the best match and up to 3 alternates, each with a confidence score in [0, 1]; match is null when nothing fits.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Candidates to score |
| title* | string | |
| artist | string | Primary artist; strongly improves accuracy |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"title"
],
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Candidates to score"
},
"title": {
"type": "string",
"minLength": 1
},
"artist": {
"type": "string",
"description": "Primary artist; strongly improves accuracy"
}
}
}Free-text search of SoundCloud tracks, playlists or albums (e.g. 'melodic techno 2026'). Each result carries BPM and key; prefer values with bpmSource/keySource 'analyzed' (measured from audio) over 'uploader' (tags, often wrong). For a known artist + title, use resolve_track instead.
| Argument | Type | Description |
|---|---|---|
| sort | string | 'both' blends recency and popularity |
| type | string | |
| limit | integer | |
| query* | string | Search text |
| maxBpm | number | |
| minBpm | number | |
| toDate | string | ISO date |
| fromDate | string | ISO date, e.g. 2026-01-01 |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"sort": {
"enum": [
"both",
"date",
"likes"
],
"type": "string",
"default": "both",
"description": "'both' blends recency and popularity"
},
"type": {
"enum": [
"tracks",
"playlists",
"albums"
],
"type": "string",
"default": "tracks"
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1
},
"query": {
"type": "string",
"minLength": 1,
"description": "Search text"
},
"maxBpm": {
"type": "number",
"maximum": 300,
"minimum": 1
},
"minBpm": {
"type": "number",
"maximum": 300,
"minimum": 1
},
"toDate": {
"type": "string",
"description": "ISO date"
},
"fromDate": {
"type": "string",
"description": "ISO date, e.g. 2026-01-01"
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 7, 2026.