LeashIndex Get the report

Index / devtools

io.github.khglynn/spotify-bulk-actions-mcp

io-github-khglynn-spotify-bulk-actions-mcp declares 32 capabilities across 32 tools, with 2 critical issues.

79/100 exposureHigh exposure

Manifest recorded 2026-10-26 from tools/list answered by the PyPI package spotify-bulk-actions-mcp==0.1.1 (published to PyPI as spotify-bulk-actions-mcp, listed in the official MCP registry as io.github.khglynn/spotify-bulk-actions-mcp 0.1.1), run in an isolated container with no network access and placeholder credentials. The date changes only when the manifest does. Not verified by a maintainer.

Issues

These describe what this server's manifest declares. A product can provide controls that MCP has no way to express — token revocation, an admin console, audit logs — and this page cannot see them. The absence of a declaration is not evidence that a control is absent.

critical · no-revocation · All 32 tools

32 of 32 tools declare no way for the customer to switch them off once granted. This applies to every tool because MCP has no field in which to declare a revocation mechanism; the product may provide one outside MCP that a manifest cannot show.

critical · irreversible-uncapped · 3 of 32 tools

3 tools are classified as irreversible and declare no limit.

high · no-expiry · All 32 tools

32 of 32 tools declare no expiry. This applies to every tool because MCP has no field in which to declare an expiry; the product may provide one outside MCP that a manifest cannot show.

high · no-audit-trail · All 32 tools

32 of 32 tools declare no record of their actions that the customer can read. This applies to every tool because MCP has no field in which to declare an audit requirement; the product may provide one outside MCP that a manifest cannot show.

high · uncapped-write · 10 of 32 tools

10 tools can modify data and declare no limit.

low · uncapped-read · 19 of 32 tools

19 tools can read data and declare no limit.

Declared capabilities

How each tool was read. declared means the server's own annotation said so — self-reported and unverified. inferred is from the tool's name. assumed means nothing indicated either way.

ToolRead asBasis
check_auth_statusread inferred
get_top_artistsread inferred
get_top_tracksread inferred
get_recently_playedread inferred
get_followed_artistsread inferred
get_saved_tracksread inferred
get_library_artistsread inferred
get_albums_by_song_countread inferred
export_library_summaryread inferred
follow_artistswrite assumed
unfollow_artistswrite assumed
save_trackswrite assumed
unsave_tracksdelete inferred
search_trackread inferred
search_track_fuzzyread inferred
batch_search_tracksread inferred
get_track_preview_urlread inferred
create_playlistwrite inferred
add_tracks_to_playlistwrite inferred
create_playlist_from_search_resultsread inferred
import_and_create_playlistwrite inferred
add_reviewed_trackswrite inferred
get_playlist_inforead inferred
get_playlist_tracksread inferred
export_playlist_to_csvwrite assumed
compare_playlistsread inferred
find_duplicate_tracksread inferred
remove_duplicate_tracksdelete inferred
remove_tracks_from_playlistdelete inferred
reorder_playlist_trackswrite inferred
parse_song_list_csvread inferred
export_review_csvwrite assumed
Answering this question about your own agent? The self-serve stack report applies the same reading to your own stack or server and gives you a dated document you can hand to a customer's security review. It is generated in your browser, with nobody to wait for. Buying one does not change this page, its score or its place in the index — see Independence.
Maintain this server? If this page misreads your manifest, or your server has changed, submit its current tools/list response and it will be re-scored and dated. Corrections are published alongside the original, not in place of it.