protogrid

Search / io.github.chrisschouk/spotcheck

SpotCheck

R0· no sign-in

Score Spotify playlists for bot-farm patterns and triage an artificial streaming warning.

v1.0.1 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality82new
Trust97of 100
Uptime, 30 days100%
Latency p50303 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "spotcheck": {
      "type": "http",
      "url": "https://spotcheck.cc/api/mcp"
    }
  }
}
claude mcp add --transport http spotcheck https://spotcheck.cc/api/mcp
[mcp_servers.spotcheck]
url = "https://spotcheck.cc/api/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "spotcheck": {
      "type": "remote",
      "url": "https://spotcheck.cc/api/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "spotcheck": {
      "type": "http",
      "url": "https://spotcheck.cc/api/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=spotcheck&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vc3BvdGNoZWNrLmNjL2FwaS9tY3AifQ%3D%3D"
}
{
  "servers": {
    "spotcheck": {
      "type": "http",
      "url": "https://spotcheck.cc/api/mcp"
    }
  }
}
{
  "mcpServers": {
    "spotcheck": {
      "httpUrl": "https://spotcheck.cc/api/mcp"
    }
  }
}
extensions:
  "spotcheck":
    enabled: true
    name: "spotcheck"
    type: streamable_http
    uri: "https://spotcheck.cc/api/mcp"
    timeout: 300

Quality 82 / 100new

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2024-11-05; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene88 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length2 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations7 of 7 tools declare readOnlyHint or destructiveHint
  • warn
    tools.directory_hints2 of 7 tools declare all four hints; missing: get_curator_contacts (destructiveHint, idempotentHint); check_playlist (destructiveHint, idempotentHint); scan_warning_playlists (destructiveHint, idempotentHint); …
  • pass
    tools.token_costabout 2,118 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
  • pass
    tools.hidden_textno hidden text in tool names, descriptions, schemas or annotations
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pull, stability.new_linkstool history recorded for 5 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

7 tools, about 2,118 tokens to load them all · tool set 72a8bbc24531 · tools last changed 2026-11-09 · checked 2026-11-14 08:10 UTC

Tool changes

  • scan_warning_playlistschangeddescription, annotations
    before

    Scores every Spotify playlist an artist pastes after a distributor flags a track for artificial streaming (the full list from Spotify for Artists). Returns each playlist ranked by bot-risk score with skip reasons for invalid or unavailable links. Free accounts get up to 2 scans a day with only the worst flagged playlist unlocked; Pro and Premium are unlimited with the full ranked report. Requires a signed-in account (anonymous callers are not supported). Supply artistName, trackName and distributor to also receive drafted reply text once the report is unlocked.

    after · 88% of words in common

    Scores every Spotify playlist an artist pastes after a distributor flags a track for artificial streaming (the full list from Spotify for Artists). Use it for a batch of up to 50 links; for one playlist, use check_playlist, which also works anonymously. Returns each playlist ranked by bot-risk score with skip reasons for invalid or unavailable links. Free accounts get up to 2 scans a day with only the worst flagged playlist unlocked; Pro and Premium are unlimited with the full ranked report. Requires a signed-in account (anonymous callers are not supported). Supply artistName, trackName and distributor to also receive drafted reply text once the report is unlocked.

  • get_account_statuschangeddescription, annotationsmeaning changed
    before

    Returns the authenticated user account status, subscription tier (Free, Pro £4.99, Premium £14.99), remaining free check allowances, and enabled features.

    after · 11% of words in common

    Describes who SpotCheck thinks the caller is and what they can do right now. Returns email (null when anonymous), tier (free, pro or premium), isAnonymous, authMethod (oauth, session, api_key, anonymous or env_override), features (playlistChecking, fullFactorBreakdown, historicalTrends, curatorContacts, cloudMonitoring, maxMonitors), allowance (dailyChecksRemaining and unlimited; usageUnavailable is set when today's count could not be read) and upgradeUrl (null on paid tiers). Use it before other calls to plan: whether check_playlist has checks left today (anonymous 1 a day, Free 3, Pro and Premium unlimited), whether get_curator_contacts and the monitor tools will work (Premium, £14.99/mo), and whether the full factor breakdown is unlocked (Pro, £4.99/mo, or Premium). Takes no arguments, works without signing in, costs nothing and does not use up a check. Read-only and safe to repeat.

  • remove_monitorchangeddescription, input schema, annotationsmeaning changed
    before

    Stops automated monitoring and alert tracking for a Spotify playlist.

    after · 6% of words in common

    Stops cloud monitoring for one playlist on the signed-in Premium account. The daily follower snapshot, the spike and drop alert emails and the track-removed alert all stop for that playlist on this account, and it disappears from list_monitors. Returns { ok, message, playlistId }. Side effects: deletes this account's monitor entry, including its custom name and track_id. Follower snapshots already stored for the playlist are kept and still appear in check_playlist, and other accounts monitoring the same playlist are unaffected. Reversible with add_monitor, but the name and track_id have to be supplied again. Idempotent: removing a playlist that is not monitored still returns ok: true. Use it to free a slot when the account is at the 25-monitor limit, or to change a monitor's name or tracked track (there is no update tool, so remove it and call add_monitor with the new values). Call list_monitors first if you need the exact playlist id. Requires Premium (£14.99/mo) and a signed-in account: returns FORBIDDEN on other tiers, UNAUTHORIZED without an account, and INVALID_PARAMS for a link that is not a playlist.

  • add_monitorchangeddescription, annotations
    before

    Enrolls a Spotify playlist in automated cloud monitoring for daily follower snapshots, growth trend analysis, and inorganic spike alerts. Allows up to 25 monitored playlists per Premium account.

    after · 62% of words in common

    Enrolls a Spotify playlist in automated cloud monitoring for daily follower snapshots, growth trend analysis, and inorganic spike alerts. Allows up to 25 monitored playlists per Premium account. Adding a playlist that is already monitored leaves its existing name and track_id unchanged; to change them, call remove_monitor first.

  • list_monitorschangeddescription, annotations
    before

    Lists all playlists currently tracked under 24/7 cloud monitoring for the authenticated account, including 24-hour and 7-day follower deltas, anomaly flags, and latest snapshot timestamps.

    after · 69% of words in common

    Lists all playlists currently tracked under 24/7 cloud monitoring for the authenticated account, including 24-hour and 7-day follower deltas, anomaly flags, and latest snapshot timestamps. For one playlist's full 31-day snapshot series, call check_playlist with its playlist_id.

  • get_curator_contactschangedannotations
  • check_playlistchangeddescription, input schema, annotationsmeaning changed
    before

    Analyses a Spotify playlist for inorganic follower inflation and bot activity. Returns a 0-100 risk score, risk level (low, medium, high, editorial), heuristic factor breakdown (follower/track ratios, generic naming patterns, sudden follower spikes), and historical snapshot trends.

    after · 14% of words in common

    Scores one Spotify playlist for bot and fake-follower risk. Returns the playlist (id, name, curator, followers, tracks, url), botRisk.score from 0 to 100, botRisk.level (low, medium, high or editorial), the warning factors behind the score (follower-to-track ratio, generic naming, sudden follower spikes and similar), the caller tier, and the follower snapshots SpotCheck holds for the last 31 days. Use it when the question is about a single playlist, such as one an artist is about to pitch to or has just been added to. For a whole list pasted from Spotify for Artists after a distributor artificial-streaming warning, use scan_warning_playlists instead: it ranks up to 50 playlists in one call and drafts the replies. Limits: anonymous callers get 1 check a day and signed-in Free accounts 3; Free responses show only the most severe factor (lockedFactors counts the hidden ones) and no snapshots. Pro (£4.99/mo) and Premium (£14.99/mo) are unlimited and get every factor and the snapshot history. Call get_account_status to see what is left today. Read-only: it reads public Spotify data and stored snapshots and changes nothing apart from the daily usage count, which is refunded if Spotify fails. Errors: INVALID_PARAMS (not a playlist link), NOT_FOUND (deleted or private), SPOTIFY_PLAYLIST (Spotify-owned editorial or algorithmic playlists, which the API does not expose), UNVERIFIABLE, RATE_LIMITED (daily allowance used).

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 97 / 100

provenance90
liveness100
freshness100
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-100% +updated-5d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://spotcheck.cc/api/mcp streamable-httpnoneyes100%303 ms2024-11-052026-11-14

Tools (7)

add_monitorEnrolls a Spotify playlist in automated cloud monitoring for daily follower snapshots, growth trend analysis, and inorganic spike alerts. Allows up to 25 monitored playlists per Premium account. Adding a playlist that is already monitored leaves its existing name and track_id unchanged; to change them, call remove_monitor first.
check_playlistread-onlyScores one Spotify playlist for bot and fake-follower risk. Returns the playlist (id, name, curator, followers, tracks, url), botRisk.score from 0 to 100, botRisk.level (low, medium, high or editorial), the warning factors behind the score (follower-to-track ratio, generic naming, sudden follower spikes and similar), the caller tier, and the follower snapshots SpotCheck holds for the last 31 days. Use it when the question is about a single playlist, such as one an artist is about to pitch to or has just been added to. For a whole list pasted from Spotify for Artists after a distributor artificial-streaming warning, use scan_warning_playlists instead: it ranks up to 50 playlists in one call and drafts the replies. Limits: anonymous callers get 1 check a day and signed-in Free accounts 3; Free responses show only the most severe factor (lockedFactors counts the hidden ones) and no snapshots. Pro (£4.99/mo) and Premium (£14.99/mo) are unlimited and get every factor and the snapshot history. Call get_account_status to see what is left today. Read-only: it reads public Spotify data and stored snapshots and changes nothing apart from the daily usage count, which is refunded if Spotify fails. Errors: INVALID_PARAMS (not a playlist link), NOT_FOUND (deleted or private), SPOTIFY_PLAYLIST (Spotify-owned editorial or algorithmic playlists, which the API does not expose), UNVERIFIABLE, RATE_LIMITED (daily allowance used).
get_account_statusread-onlyDescribes who SpotCheck thinks the caller is and what they can do right now. Returns email (null when anonymous), tier (free, pro or premium), isAnonymous, authMethod (oauth, session, api_key, anonymous or env_override), features (playlistChecking, fullFactorBreakdown, historicalTrends, curatorContacts, cloudMonitoring, maxMonitors), allowance (dailyChecksRemaining and unlimited; usageUnavailable is set when today's count could not be read) and upgradeUrl (null on paid tiers). Use it before other calls to plan: whether check_playlist has checks left today (anonymous 1 a day, Free 3, Pro and Premium unlimited), whether get_curator_contacts and the monitor tools will work (Premium, £14.99/mo), and whether the full factor breakdown is unlocked (Pro, £4.99/mo, or Premium). Takes no arguments, works without signing in, costs nothing and does not use up a check. Read-only and safe to repeat.
get_curator_contactsread-onlyExtracts public submission contact channels (emails, Instagram, X/Twitter, TikTok handles, and submission links) from a Spotify playlist description, along with researched curator pitch guidance when available.
list_monitorsread-onlyLists all playlists currently tracked under 24/7 cloud monitoring for the authenticated account, including 24-hour and 7-day follower deltas, anomaly flags, and latest snapshot timestamps. For one playlist's full 31-day snapshot series, call check_playlist with its playlist_id.
remove_monitordestructiveStops cloud monitoring for one playlist on the signed-in Premium account. The daily follower snapshot, the spike and drop alert emails and the track-removed alert all stop for that playlist on this account, and it disappears from list_monitors. Returns { ok, message, playlistId }. Side effects: deletes this account's monitor entry, including its custom name and track_id. Follower snapshots already stored for the playlist are kept and still appear in check_playlist, and other accounts monitoring the same playlist are unaffected. Reversible with add_monitor, but the name and track_id have to be supplied again. Idempotent: removing a playlist that is not monitored still returns ok: true. Use it to free a slot when the account is at the 25-monitor limit, or to change a monitor's name or tracked track (there is no update tool, so remove it and call add_monitor with the new values). Call list_monitors first if you need the exact playlist id. Requires Premium (£14.99/mo) and a signed-in account: returns FORBIDDEN on other tiers, UNAUTHORIZED without an account, and INVALID_PARAMS for a link that is not a playlist.
scan_warning_playlistsread-onlyScores every Spotify playlist an artist pastes after a distributor flags a track for artificial streaming (the full list from Spotify for Artists). Use it for a batch of up to 50 links; for one playlist, use check_playlist, which also works anonymously. Returns each playlist ranked by bot-risk score with skip reasons for invalid or unavailable links. Free accounts get up to 2 scans a day with only the worst flagged playlist unlocked; Pro and Premium are unlimited with the full ranked report. Requires a signed-in account (anonymous callers are not supported). Supply artistName, trackName and distributor to also receive drafted reply text once the report is unlocked.

Schemas: list_tools.

Similar MCP servers

More from io.github.chrisschouk

Official server.json
{
  "name": "io.github.chrisschouk/spotcheck",
  "icons": [
    {
      "src": "https://spotcheck.cc/icon.svg",
      "sizes": [
        "any"
      ],
      "mimeType": "image/svg+xml"
    },
    {
      "src": "https://spotcheck.cc/apple-icon.png",
      "sizes": [
        "180x180"
      ],
      "mimeType": "image/png"
    }
  ],
  "title": "SpotCheck",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://spotcheck.cc/api/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.1",
  "repository": {
    "url": "https://github.com/chrisschouk/spotcheck",
    "source": "github"
  },
  "websiteUrl": "https://spotcheck.cc",
  "description": "Score Spotify playlists for bot-farm patterns and triage an artificial streaming warning."
}