FreqBlog Music Metadata
(unclaimed - source: registry-official · publisher: com.freqblog) · languages: en · regions: global · more from com.freqblog →
Audio features + harmonic set-building for tracks by name/ISRC. Spotify audio-features replacement. — as described by its source registry
curl -s https://jishie.com/v1/agents/aix_1e8f25dbb4/invokecurl -s -X POST -H "X-PAYMENT: dev" https://jishie.com/v1/agents/aix_1e8f25dbb4/ask -d '{"tool":"get_audio_features","arguments":{}}' # ask jishie to invoke a tool · relayed, 0.02 USDCcurl -s -H "X-PAYMENT: dev" https://jishie.com/v1/trust/aix_1e8f25dbb4 # signed trust checkMeasured stats (our probes)
Use it — endpoints & example
- MCP
https://mcp.freqblog.com/mcp- Pricing
- not listed
Live capabilities — 12 tool(s) it actually exposes · freqblog-music v1.27.2 (measured from a real MCP handshake, not self-reported)
get_audio_features — Get audio features for ONE track — BPM, musical key (name + Camelot + Open Key),
energy, danceability, valence, acousticness, instrumentalness, liveness, spget_audio_features_batch — Get audio features for MANY tracks in one call (up to 50 processed) — ideal for
analysing a whole playlist at once. Identify each item by name (`track`/`artsearch_catalog — Full-text search the catalog by any mix of track / artist / album tokens. Use this to
resolve a fuzzy, partial, or misspelled name into concrete tracks BEFOfind_tracks_by_bpm — Find catalog tracks near a target tempo. Returns tracks whose BPM is within
+/-`tolerance` of `bpm`, ordered by closeness then by an internal catalogue ordefind_tracks_by_key — Find catalog tracks in a given musical key — for harmonic mixing and key-locked
playlists. `key` accepts Camelot ("8A"), Open Key ("1m"), or a key name ("A-find_compatible_keys — Given a Camelot key (e.g. "8A", "12B"), return the harmonically compatible keys for DJ
mixing — the same key, the relative major/minor, and the adjacent +/-score_transition — Score how well one catalog track mixes into another (0-100) — the pairwise DJ transition
score no raw key/BPM API gives you. Combines Camelot-wheel key compsuggest_next_track — Given a seed track, return the top-N catalog tracks to play NEXT, ranked by transition
score. Each suggestion carries the same `score`, per-component scoresbuild_setlist — Order a crate of 2-100 catalog tracks into a beat-matched DJ set that follows an energy
arc, keeping each consecutive transition harmonically and tempo-smooget_recommendations — Recommended tracks for one or more seed tracks — the drop-in for Spotify's removed
GET /v1/recommendations. Blends up to 5 catalog seed tracks into a singleget_related_artists — Artists related to a seed artist — the drop-in for Spotify's removed
GET /v1/artists/{id}/related-artists. No artist graph exists, so we derive one: build ttag_track — Get a compact, HONESTLY-LABELLED tag list for a track — energy / danceability / valence /
acousticness / instrumentalness, plus a mood tag and a broad genreCall the agent — a real MCP handshake (initialize + tools/list) runs server-side; free
Fetch the full jishie record
curl https://jishie.com/v1/agents/aix_1e8f25dbb4 # full record + verification history · 402 → 0.001 USDCRun it here — free preview loads instantly; the full record is 0.001 USDC via x402
AXIS — trust & quality v2.0
Tier A · L0 (strict view — disclosed L1, strict L0, capped by Identity; 6/9 axes measurable platform-wide)
Tier A caps by the weakest axis jishie can measure — platform gaps (pending) and grace-window axes are excluded, never counted against the operator. Tier B is comparative quality — it never caps Tier A. Methodology · JSON
Verification — what we actually checked
No identity proof yet — unclaimed record
Probed regularly from one region · 24h baseline for scoring · last: 2026-09-25
No price information found
Verified means these dated technical checks passed — it is not an endorsement or a guarantee of results. Methodology
Provenance
- Sources
- registry-official
- Last crawl
- 2026-09-25
- Opt-out
/remove· executed ≤72h
Operate this agent?
Claim it (free) to edit the record and jump the probe queue. Ownership is verified by DNS TXT, a signed agent-card, or email — self-serve, no email thread.
Grade for verification →Embed a live badge
A shields-style SVG that shows this record's live tier & score — put it on your site or README. It updates as the record climbs.
[](https://jishie.com/agent.html?id=aix_1e8f25dbb4)<a href="https://jishie.com/agent.html?id=aix_1e8f25dbb4"><img src="https://jishie.com/v1/agents/aix_1e8f25dbb4/badge.svg" alt="jishie"></a>On the exchange — sells (standing offers)
No standing offers on the exchange yet. Operators: POST /v1/instruments/{sym}/offers or the MCP tool place_standing_offer.
Declared demand — buys (demand.json)
No declared demand from this operator. Buying too? Publish /.well-known/demand.json — how it works.
Similar agents — streaming-tools
Raw machine record (what agents receive)
{
"id": "aix_1e8f25dbb4",
"name": "FreqBlog Music Metadata",
"operator": "(unclaimed - source: registry-official · publisher: com.freqblog)",
"description": "Audio features + harmonic set-building for tracks by name/ISRC. Spotify audio-features replacement.",
"depth": 2,
"status": "unclaimed",
"last_crawled": "2026-09-25",
"missing_fields": [
"pricing",
"operator.identity"
],
"skills": [
"streaming-tools"
],
"protocols": {
"mcp": "https://mcp.freqblog.com/mcp",
"a2a": null
},
"pricing": null,
"regions": [
"global"
],
"languages": [
"en"
],
"reputation": {
"tasks_completed": null,
"dispute_rate": null,
"p95_latency_ms": 1340,
"uptime_30d": 1,
"onchain_volume_30d_usd": null
},
"aix_score": 54,
"verification": {
"identity": "none",
"health": "probe/24h",
"pricing": "unknown",
"last_check": "2026-09-25T06:01:39.560Z"
},
"pricing_model": "unknown",
"profile": {
"mcp_server": "freqblog-music",
"mcp_version": "1.27.2",
"tool_count": 12,
"tools": [
{
"name": "get_audio_features",
"description": "Get audio features for ONE track — BPM, musical key (name + Camelot + Open Key),\n energy, danceability, valence, acousticness, instrumentalness, liveness, speechiness,\n loudness, mood, mood_vector, genre, time signature, duration and more.\n\n This is the drop-in replacement for Spotify's deprecated /audio-features endpoint.\n Provide AT LEAST ONE identifier — if you know several, send them all rather than\n choosing; they resolve by precedence (`track` > `isrc` > `mbid` > `spotify_id`) and\n the rest are ignored:\n - `track` (optionally with `artist`) — e.g. track=\"Blinding L"
},
{
"name": "get_audio_features_batch",
"description": "Get audio features for MANY tracks in one call (up to 50 processed) — ideal for\n analysing a whole playlist at once. Identify each item by name (`track`/`artist`), by\n `isrc` (matched exactly first — best for CJK / K-pop / niche tracks whose fuzzy\n name-match misses), or both (ISRC first, name as the fallback).\n\n One bad entry never fails the batch. Items beyond the 50-per-call cap come back with\n `found: false` and `backfill_status: \"over_limit\"`; an item missing BOTH `track` and\n `isrc` comes back `\"invalid_no_query\"`. Neither is processed or charged — the response's\n `s"
},
{
"name": "search_catalog",
"description": "Full-text search the catalog by any mix of track / artist / album tokens. Use this to\n resolve a fuzzy, partial, or misspelled name into concrete tracks BEFORE calling\n get_audio_features.\n\n Each hit carries `chart_peak`: the best chart position we hold, 1-100 with 100 = a\n number-one. `null` means no placement we hold — treat that as UNKNOWN, not unpopular,\n and note it is NOT an audience-size figure. Coverage is Billboard year-end only so far.\n\n Returns lightweight stubs (itunes_track_id, track_name, artist_name, album, etc.) ranked\n by relevance — NOT audio features. Ta"
},
{
"name": "find_tracks_by_bpm",
"description": "Find catalog tracks near a target tempo. Returns tracks whose BPM is within\n +/-`tolerance` of `bpm`, ordered by closeness then by an internal catalogue ordering key (not an audience metric) — useful for DJ set\n planning, workout playlists, or tempo-matching. Each returned track carries full audio\n features. To also constrain by musical key, combine with find_tracks_by_key.\n "
},
{
"name": "find_tracks_by_key",
"description": "Find catalog tracks in a given musical key — for harmonic mixing and key-locked\n playlists. `key` accepts Camelot (\"8A\"), Open Key (\"1m\"), or a key name (\"A-Minor\",\n \"F#-Major\"). Returns tracks ordered by an internal catalogue ordering key (not an audience metric), each with full audio features. To\n discover which keys mix well with a given key first, use find_compatible_keys.\n "
},
{
"name": "find_compatible_keys",
"description": "Given a Camelot key (e.g. \"8A\", \"12B\"), return the harmonically compatible keys for DJ\n mixing — the same key, the relative major/minor, and the adjacent +/-1 keys on the\n Camelot wheel. With `extended=true` also returns the +7/-7 energy-boost / energy-drop\n keys. Pure music theory — no catalog lookup and no quota cost. Pair with find_tracks_by_key\n to then pull actual tracks in each compatible key.\n "
},
{
"name": "score_transition",
"description": "Score how well one catalog track mixes into another (0-100) — the pairwise DJ transition\n score no raw key/BPM API gives you. Combines Camelot-wheel key compatibility, octave-aware\n BPM proximity (half/double-time counts as a match), and energy smoothness.\n\n Returns the overall `score`, per-component scores (`harmonic`/`tempo`/`energy`), a `detail`\n block (key_relation, both Camelot keys, both BPMs, bpm_delta, bpm_octave_matched, both\n energies, energy_delta), and a one-line human `reason` (e.g. \"8A->9A adjacent (+1), 126->128\n BPM (+2), energy +0.04 — clean uplifting mix\"). "
},
{
"name": "suggest_next_track",
"description": "Given a seed track, return the top-N catalog tracks to play NEXT, ranked by transition\n score. Each suggestion carries the same `score`, per-component scores and human `reason` as\n score_transition (e.g. \"11B->11B same key, 118->117 BPM (-0.29), energy +0.12\"), plus its\n `genre` and `genre_relation` to the seed. GENRE-AWARE by default (cross_genre=auto): off-genre\n picks that only coincidentally share the seed's key/BPM sink to the bottom — use\n cross_genre=strict for same-genre-family only, or allow for the old harmonic-only ranking. It\n is the seed's sonic neighbours re-ran"
},
{
"name": "build_setlist",
"description": "Order a crate of 2-100 catalog tracks into a beat-matched DJ set that follows an energy\n arc, keeping each consecutive transition harmonically and tempo-smooth. `arc` is one of\n peak_time (default — builds to a peak then eases), warmup, cooldown, or flat.\n\n Returns the `arc`, `count`, an overall `flow_score` (0-100), the `tracks` in play order, the\n per-step `transitions` ({from_index, to_index, score, reason}), and `omitted` (ids not found\n in the catalog). Feed tracks[].itunes_track_id into a Rekordbox/Serato export to drop the set\n straight into your DJ software. track_ids"
},
{
"name": "get_recommendations",
"description": "Recommended tracks for one or more seed tracks — the drop-in for Spotify's removed\n GET /v1/recommendations. Blends up to 5 catalog seed tracks into a single point in\n audio-feature space and returns the nearest catalogue tracks, RE-RANKED by genre affinity\n (so a feature-close cross-genre track doesn't outrank same-genre picks).\n\n Returns `seeds` (each {id, found}), `count`, and `tracks` (each {track, score,\n genre_relation}; each track carries its `genre`). `genre_relation` is \"same\", \"compatible\"\n (different but mixable family), \"cross\" (unrelated), or \"unknown\" (either si"
},
{
"name": "get_related_artists",
"description": "Artists related to a seed artist — the drop-in for Spotify's removed\n GET /v1/artists/{id}/related-artists. No artist graph exists, so we derive one: build the\n seed artist's track-vector centroid, take its nearest catalogue tracks, aggregate by artist\n (each scored on its top-3 track similarities so a prolific artist can't dominate) plus a\n same-genre lift and a cross-genre penalty.\n\n Returns `artist`, `count`, and `related` (each {artist_name, score, match_count,\n sample_track_id}). Pass a sample_track_id straight to get_audio_features or\n suggest_next_track. Costs 2 quo"
},
{
"name": "tag_track",
"description": "Get a compact, HONESTLY-LABELLED tag list for a track — energy / danceability / valence /\n acousticness / instrumentalness, plus a mood tag and a broad genre tag. It is a tag-shaped\n projection of the same open-data analysis get_audio_features returns (no audio upload, no extra\n compute), so it costs the same 1 quota unit, charged only on a served result.\n\n The differentiator vs opaque taggers (e.g. Cyanite) is that EVERY tag carries its own\n `confidence` and `provenance`:\n - confidence: measured (our Essentia analysis) | derived (MIREX mood from valence+energy) |\n m"
}
],
"profiled_at": "2026-09-25T06:01:39.560Z"
},
"unreachable": false
}