io.github.labelgrid/labelgrid-mcp
NPM · @LABELGRID/MCP · SCANNED AUG 3
Official LabelGrid MCP server — manage your music catalog, releases, analytics and distribution.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to labelgrid/labelgrid-mcp). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 6 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability77
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 5227 tokens (~137/item across 38 items; 29 tools + 9 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage96
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 88% of tool parameters carry a description.Partial
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · @labelgrid/mcp
claude mcp add labelgrid-labelgrid-mcp -- npx -y @labelgrid/mcp
codex mcp add labelgrid-labelgrid-mcp -- npx -y @labelgrid/mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"labelgrid-labelgrid-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"@labelgrid/mcp"
],
"enabled": true
}
}
} openclaw mcp add labelgrid-labelgrid-mcp --command npx --arg -y --arg @labelgrid/mcp
mcp_servers:
labelgrid-labelgrid-mcp:
command: "npx"
args: ["-y", "@labelgrid/mcp"] {
"mcpServers": {
"labelgrid-labelgrid-mcp": {
"command": "npx",
"args": [
"-y",
"@labelgrid/mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 2 Aug 26 +51
- Install scripts: unverified → pass ▲ security
- Known CVEs: unverified → partial ▲ security
- Provenance: unverified → pass ▲ security
- Malware scan: unverified → pass ▲ security
- Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
- The attested source repository moved: labelgrid/labelgrid-mcp security
- Schema quality: unverified → good ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Maintenance: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- License: unverified → pass ▲ functional
- Licence: MIT functional
- 1 Aug 26 +20
- Tool coverage: unverified → 100 ▲ functional
- Schema quality: unverified → 100 ▲ functional
- 31 Jul 26 −50
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 −30
- Malware scan: pass → unverified ▼ security
- Provenance: pass → unverified ▼ security
- The attested source repository moved: labelgrid/labelgrid-mcp security
- 29 Jul 26 +34
- Known CVEs: unverified → partial ▲ security
- Provenance: unverified → pass ▲ security
- Install scripts: unverified → pass ▲ security
- The attested source repository moved: labelgrid/labelgrid-mcp security
- License: unverified → pass ▲ functional
- Maintenance: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Licence: MIT functional
- 28 Jul 26 0
- Package version: 0.3.1 → 0.4.0 functional
- 27 Jul 26 51
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/@labelgrid/[email protected]
Provenance verified
Ecosystem: npm · Outcome: verified
Reason: verified
- Source repo:
- labelgrid/labelgrid-mcp
- Certificate issuer:
- https://token.actions.githubusercontent.com
- Certificate SAN:
- https://github.com/labelgrid/labelgrid-mcp/.github/workflows/publish.yml@refs/tags/v0.4.0
- Rekor log index:
- 2224755496
- Predicate type:
- https://slsa.dev/provenance/v1
- Subject digest:
- sha512:f53609844e42fa33c80c13658ee08b978fa957f8f6b52bd5a0c2e8530a55894ba41a9f15b73ad75e27ddff8d1ebda07dfce30b4e6afeaba2bf5c4a984
- Discovery method:
- attestation_endpoint
Dependencies 96 packages
96 packages in the resolved dependency tree · 95 deprecated · 29 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
add_review_issue_note Add a note to a review issue ~65
Add a note to a release review issue — to explain a fix or add reviewer context. `review_issue_id` comes from get_release_review view issues.
| Name | Type | Req | Description |
|---|---|---|---|
| note | string | yes | The note text to attach to the issue. |
| review_issue_id | integer | yes | — |
No output schema declared.
No examples provided.
confirm_review Confirm a held release into review ~55
Confirm a release that Preflight QC placed on hold, moving it into distribution review. Use after you have reviewed the quality report and accept the release as-is. Safe to repeat.
| Name | Type | Req | Description |
|---|---|---|---|
| release_id | integer | yes | The release id. |
No output schema declared.
No examples provided.
create_catalog_item Create a catalog item ~418
Create a catalog entity. Pick the kind with `entity` and pass its attributes in `fields` — the API owns all validation. Required and common fields per entity: label — required: name, default_email; optional: support email, website/platform URLs, default copyright lines, isrc_base. artist — required: artist_name; optional: full_name, email, location, bios, isni, default_language, platform profile URLs. writer — required: first_name, last_name; optional: middle_name, display_credits, email, country, pro, ipi, isni, publisher_id (or publisher_name/publisher_pro/publisher_ipi). publisher — required: name; optional: ipi, pro, isni, controlled_publisher. release — required on create: content_type, label_id, artists, titles, cat (catalog number), artwork_ai_usage, primary_genre_id; many optional fields (dates, copyright lines, genres, per-outlet URLs). Once submitted or distributed some fields are locked — changing one returns a 403 with code RELEASE_LOCKED_FIELDS naming exactly which fields cannot change. track — required on create: release_id, disc, track_num, composition_type, artists, audio_ai_usage, composition_ai_usage, commercial_samples, audio_language, contributors, and recording_country (ISO 3166-1 alpha-2, e.g. "US"); optional: titles, isrc, iswc, writers, publishers, splits, and more. A release is created in DRAFT state — add tracks, then run the release checks before distributing. `idempotency_key` is honored for release and track only.
| Name | Type | Req | Description |
|---|---|---|---|
| entity | string | yes | The catalog entity kind. |
| fields | object | yes | The entity attributes, forwarded verbatim. |
| idempotency_key | string | — | Honored for release and track only: the server deduplicates by this key for 24h — reuse the SAME key when retrying an unobserved call. Ignored for other entities. |
No output schema declared.
No examples provided.
delete_asset Delete a release/track asset ~118
Delete a track or release asset file. track_stereo|track_dolby|track_lyrics delete a track asset; release_motion_square|release_motion_tall delete an animated cover (motion artwork) video. Allowed only while the parent release is still an editable draft; the API refuses once the release is locked or distributed. Cover art has no delete endpoint and cannot be deleted here.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | The track id (track_*) or release id (release_motion_*). |
| target | string | yes | Which asset to delete. |
No output schema declared.
No examples provided.
delete_catalog_item Delete a catalog item ~123
Delete a catalog entity by id. The API refuses deletes that would orphan data — label: refused while the label still has releases — remove or reassign its releases first. artist: refused while still referenced by releases or tracks. writer: refused while still referenced by tracks. publisher: refused while still referenced by writers. release: only a never-submitted draft can be deleted. track: allowed while the parent release is an editable draft; refused once submitted or distributed.
| Name | Type | Req | Description |
|---|---|---|---|
| entity | string | yes | The catalog entity kind. |
| id | integer | yes | The entity id. |
No output schema declared.
No examples provided.
distribute_release Distribute a release ~137
Submit a release for distribution to the stores/outlets — the FINAL, consequential action that sends the release out; run_release_checks (check validate) should pass first. The server enforces your account’s weekly submission limit and returns a structured error if exceeded. Pass idempotency_key and reuse the SAME value when retrying an unobserved call; without a key each call is a new submission.
| Name | Type | Req | Description |
|---|---|---|---|
| idempotency_key | string | — | The server deduplicates by this key for 24h — reuse the SAME key when retrying a call whose outcome you did not observe. |
| release_id | integer | yes | The release id. |
No output schema declared.
No examples provided.
download_statement Download a statement file ~239
Download statement files. `format: 'csv'` downloads statement line items — pass invoice_number for one statement, OR a start_date/end_date range to export across statements; with save_to_path (an absolute path whose parent directory exists) the CSV is written there and the byte count returned; otherwise it is returned inline, truncated at 100KB (truncated: true) — use save_to_path for large exports. `format: 'invoice_pdf'` downloads the invoice PDF — invoice_number and save_to_path are both REQUIRED (the PDF is binary). An existing file is never overwritten (returns FILE_EXISTS).
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | string | — | CSV export range end, YYYY-MM-DD. |
| format | string | yes | Which file: csv (line items) or invoice_pdf (the invoice PDF). |
| invoice_number | string | — | Single-statement invoice number. Required for format invoice_pdf. |
| save_to_path | string | — | Absolute path (existing parent dir) to write the file to. Optional for csv (otherwise returned inline); required for invoice_pdf. |
| start_date | string | — | CSV export range start, YYYY-MM-DD. |
No output schema declared.
No examples provided.
enable_beatport Request Beatport onboarding for a label ~48
Request Beatport onboarding for a label. A one-time action that cannot be un-requested, so confirm the label is correct first.
| Name | Type | Req | Description |
|---|---|---|---|
| label_id | integer | yes | The label id. |
No output schema declared.
No examples provided.
get_account Get account ~87
Read the authenticated LabelGrid account. Pick ONE view with `view`: `profile` returns the account profile — including the release submission limit/quota and terms-acceptance status — use it to confirm which account your API token belongs to before making other calls; `balance` returns your accounting summary — current balance and related account-level financial totals.
| Name | Type | Req | Description |
|---|---|---|---|
| view | string | yes | Which account read. |
No output schema declared.
No examples provided.
get_analytics Get streaming analytics ~250
Retrieve a streaming analytics summary for your catalog in a single call. `start_date` and `end_date` (both YYYY-MM-DD) are required and the window is capped at 30 days by the server. Optionally narrow the result by `platform` (SPOTIFY, ITUNES, APPLE_MUSIC), `release_id`, `isrc`, `upc`, or `artist_names`. By default all 15 metric sections are returned; pass `metrics` (see its enum) to request only a subset. Rate-limited (about 60 requests per minute); a 429 response carries retry_after_seconds.
| Name | Type | Req | Description |
|---|---|---|---|
| artist_names | array | — | Filter to one or more artist names. |
| end_date | string | yes | End of the reporting window, YYYY-MM-DD (max 30-day span). |
| isrc | string | — | — |
| limit | integer | — | — |
| metrics | array | — | Subset of metric sections to return; omit for all 15. |
| platform | string | — | — |
| release_id | integer | — | — |
| start_date | string | yes | Start of the reporting window, YYYY-MM-DD. |
| upc | string | — | — |
No output schema declared.
No examples provided.
get_asset Get an asset ~247
Read a track or release asset. Valid selector matrices: (1) mode='info', parent='track', asset stereo|dolby|lyrics — file metadata (not the bytes) incl. processing state. (2) mode='info', parent='release', asset square|tall — animated cover (motion artwork) video metadata incl. processing state. (3) mode='download_url', parent='track', asset audio_16|audio_24|audio_32 (WAV master at that bit depth) or audio_preview_full|audio_preview_clip (generated MP3 preview) — returns { download_url, expires_in }: a signed URL that expires roughly 10 minutes after issue; fetch it directly — do not send your API token to it. Any other combination has no endpoint and returns a structured error. mode defaults to info.
| Name | Type | Req | Description |
|---|---|---|---|
| asset | string | yes | Which asset — see the description for the valid parent/mode pairings. |
| id | integer | yes | The track id or release id, per `parent`. |
| mode | string | — | info (default) returns file metadata; download_url returns a signed URL. |
| parent | string | yes | Whose asset. |
No output schema declared.
No examples provided.
get_catalog_item Get a catalog item ~147
Retrieve one catalog entity by id, with its full detail — a label’s settings, an artist’s identifiers and links, a writer’s PRO/IPI, a release’s metadata and track listing, a track’s contributors and royalty splits. Pick the kind with `entity`: label, artist, writer, publisher, release, or track. response_format:'detailed' returns the verbatim API response.
| Name | Type | Req | Description |
|---|---|---|---|
| entity | string | yes | The catalog entity kind. |
| id | integer | yes | The entity id. |
| response_format | string | — | 'concise' (default) keeps only the high-signal fields (ids always kept); 'detailed' returns the verbatim API response. |
No output schema declared.
No examples provided.
get_delivery_queue Get the distribution queue ~178
List the distribution queue entries for your account, paginated — one entry per (release, outlet) delivery with its current status (e.g. pending review, processing, scheduled, complete, error) — where a release is in the delivery pipeline to each store. Filter by `release_id`, `outlet_id`, or `status`. response_format:'detailed' returns the verbatim API response.
| Name | Type | Req | Description |
|---|---|---|---|
| outlet_id | integer | — | Filter to one outlet/store. |
| page | integer | — | — |
| per_page | integer | — | — |
| release_id | integer | — | Filter to one release. |
| response_format | string | — | 'concise' (default) keeps only the high-signal fields (ids always kept); 'detailed' returns the verbatim API response. |
| status | string | — | Filter by delivery status. |
No output schema declared.
No examples provided.
get_landing_config Get a release landing-page config ~72
Retrieve the smart-link landing-page configuration for a release: whether the links page is enabled, its style/mode, custom copy, the action list and any pre-order links. Pair with manage_release_links (action update_landing_config) to change it.
| Name | Type | Req | Description |
|---|---|---|---|
| release_id | integer | yes | The release id. |
No output schema declared.
No examples provided.
get_release_review Get release review results ~198
Read a release's automated quality-check results. Pick ONE view with `view`: `issues` lists the review issues raised against the release — each carries a code (see list_reference_data type issue_definitions), severity, and whether it blocks distribution; use it to see what must be fixed before the release can go out. `quality_report` retrieves the Preflight QC quality report — the customer-facing issues found by the automated checks, to review before confirming the release into distribution; Preflight QC is an optional add-on — without it the API returns a 403, surfaced verbatim. response_format:'detailed' returns the verbatim API response.
| Name | Type | Req | Description |
|---|---|---|---|
| release_id | integer | yes | The release id. |
| response_format | string | — | 'concise' (default) keeps only the high-signal fields (ids always kept); 'detailed' returns the verbatim API response. |
| view | string | yes | Which review read. |
No output schema declared.
No examples provided.
list_reference_data List reference data ~183
Fetch a LabelGrid reference dataset used to resolve the IDs and codes the catalog and release tools expect. Pick ONE dataset with `type`: `genres` and `genre_categories` (genre IDs), `languages` (audio/metadata language codes), `contributor_roles`, `instruments`, `distro_outlets` (the outlets/stores available to your account), `territories` (country codes), `issue_definitions` (each review issue code’s title, description, severity and whether it blocks distribution; codes are string slugs), or `webhook_event_types` (every webhook event type with its payload schema). Call this when you need a valid ID or code. The same datasets are exposed as MCP resources at labelgrid://reference/{type}; this tool is the fallback for clients that don’t surface resources.
| Name | Type | Req | Description |
|---|---|---|---|
| type | string | yes | — |
No output schema declared.
No examples provided.
list_track_licenses List track licenses ~88
List the licenses attached to a track (e.g. cover/mechanical or sample clearances), paginated. Pass `license_id` to retrieve one license by its id instead.
| Name | Type | Req | Description |
|---|---|---|---|
| license_id | integer | — | Retrieve one license by id instead of listing. |
| page | integer | — | — |
| per_page | integer | — | — |
| track_id | integer | yes | The track id. |
No output schema declared.
No examples provided.
manage_release_links Manage a release smart link ~161
Manage a release's smart-link landing page. Pick ONE action with `action`: `update_landing_config` replaces the landing-page configuration with `config` (required for this action) — `config.actions` uses the current (v2) action-list contract (one entry per call-to-action); other keys: links_page_enabled, config_mode, page_style, custom_cta_text, custom_description, pre_order_links. `create_short_url` creates (or returns the existing) short URL for the release's smart-link landing page — safe to repeat.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Which action. |
| config | object | — | The landing-page configuration to set (required for update_landing_config). |
| release_id | integer | yes | The release id. |
No output schema declared.
No examples provided.
manage_track_license Manage a track license ~279
Manage the license documents attached to a track (for a cover or a cleared sample). Pick ONE action with `action`: `upload` attaches a new license — `file_path` required, `type` ('cover' or 'sample') selects the kind; optionally record license_id, license_provider, license_provider_name, original_track_link. `update` replaces the file and/or metadata of an existing license — `track_license_id` (from list_track_licenses) and `file_path` required. `delete` permanently deletes a license and its file — `track_license_id` required; cannot be undone. Licenses are immutability-governed once the release is live.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Which license action. |
| file_path | string | — | Local path to the license file. Required for upload/update. |
| license_id | string | — | The license/clearance reference number, if any. |
| license_provider | string | — | Where the license came from. |
| license_provider_name | string | — | The name of the license provider. |
| original_track_link | string | — | URL to the original/source track. |
| track_id | integer | yes | The track id. |
| track_license_id | integer | — | From list_track_licenses. Required for update/delete. |
| type | string | — | Kind of license (upload). |
No output schema declared.
No examples provided.
query_artificial_streaming Query artificial-streaming data ~345
Query artificial-streaming (streaming-integrity) data for your catalog. Pick ONE view with `view`: `flags` lists Stream Radar early-warning flags surfacing possible artificial-streaming activity so you can act early, paginated — `filters`: status, severity, dsp, isrc, release_id, detected_from/detected_to (YYYY-MM-DD). `flag_detail` retrieves one flag by `flag_id` (required). Stream Radar is an optional add-on; without it the API returns a 403, surfaced verbatim. `records` lists the artificial-streaming records reported for your catalog, cursor-paginated — the per-record detail behind any artificial-streaming fee; `filters`: dsp (spotify or apple), start_date/end_date, release_id, isrc. `fee_breakdown` retrieves the per-release breakdown of an artificial-streaming fee for one billing period — `period` (required) is YYYY-MM. response_format:'detailed' returns the verbatim API response.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | — | Pagination cursor (view records). |
| filters | object | — | Filter names → values, passed through verbatim. |
| flag_id | integer | — | Required for view flag_detail. |
| page | integer | — | 1-based page number (view flags). |
| per_page | integer | — | Items per page. |
| period | string | — | YYYY-MM. Required for view fee_breakdown. |
| response_format | string | — | 'concise' (default) keeps only the high-signal fields (ids always kept); 'detailed' returns the verbatim API response. |
| view | string | yes | Which artificial-streaming read. |
No output schema declared.
No examples provided.
query_financials Query financial data ~374
Query your financial data. Pick ONE view with `view`: `statements` lists your royalty statements, paginated — `filters`: label_id, release_id, isrc, upc, start_date/end_date; group_by="release" rolls totals up per release. `statement_detail` retrieves one statement by `invoice_number` (required). `transactions` lists account transactions, paginated — same `filters`; sort with `sort`; group_by="release" rolls up per release. `royalty_breakdown` returns a cursor-paginated royalty breakdown — `group_by` is REQUIRED for this view: a comma-separated, ordered subset of: track, dsp, release, territory, period (e.g. "release,dsp"); same `filters`; pass `cursor` to page. Use download_statement for statement line items (CSV) or the invoice PDF. response_format:'detailed' returns the verbatim API response.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | — | Pagination cursor (view royalty_breakdown). |
| filters | object | — | label_id, release_id, isrc, upc, start_date, end_date — passed through verbatim. |
| group_by | string | — | REQUIRED for royalty_breakdown (ordered subset: track, dsp, release, territory, period); "release" rolls statements/transactions up per release. |
| invoice_number | string | — | Required for view statement_detail. |
| page | integer | — | 1-based page number. |
| per_page | integer | — | Items per page. |
| response_format | string | — | 'concise' (default) keeps only the high-signal fields (ids always kept); 'detailed' returns the verbatim API response. |
| sort | string | — | Sort expression (view transactions). |
| view | string | yes | Which financial read. |
No output schema declared.
No examples provided.
revoke_api_token Revoke an API token ~70
Revoke a LabelGrid API token. Pass token_id to revoke a specific token; omit it to revoke the token currently in use. WARNING: revoking the current token immediately ends this session — the server loses access and stops working until you configure a new token.
| Name | Type | Req | Description |
|---|---|---|---|
| token_id | integer | — | — |
No output schema declared.
No examples provided.
run_release_checks Run release checks ~145
Run an automated check on a release. Pick ONE with `check`: `validate` returns any problems that would block distribution, as a human-readable `errors` list and a machine-readable `errors_structured` list — it changes nothing and is safe to repeat; run it before distributing. `refresh_quality_report` re-runs the Preflight QC checks and refreshes the quality report (read it with get_release_review view quality_report); the server applies an hourly refresh budget, so frequent calls may be rate-limited. Preflight QC is an optional add-on.
| Name | Type | Req | Description |
|---|---|---|---|
| check | string | yes | Which check to run. |
| release_id | integer | yes | The release id. |
No output schema declared.
No examples provided.
search_catalog Search the catalog ~263
List catalog entities of one kind, paginated. Pick the kind with `entity`: label, artist, writer, publisher, release, or track. `filters` takes the endpoint’s own filter names, passed through verbatim — label: no documented filters — paginate with page/per_page. artist: artist_name (filter by artist name). writer: name (writer name), ipi (IPI number). publisher: name (publisher name), ipi (IPI number). release: label_id (owning label id), is_live (1 = live/distributed only), barcode_number (UPC/EAN), cat (catalog number). track: release_id (one release’s tracks), isrc (filter by ISRC). Use get_catalog_item for one entity's full detail. response_format:'detailed' returns the verbatim API response.
| Name | Type | Req | Description |
|---|---|---|---|
| entity | string | yes | The catalog entity kind. |
| filters | object | — | Filter names → values, passed through verbatim. |
| page | integer | — | 1-based page number. |
| per_page | integer | — | Items per page. |
| response_format | string | — | 'concise' (default) keeps only the high-signal fields (ids always kept); 'detailed' returns the verbatim API response. |
No output schema declared.
No examples provided.
setup Set up the LabelGrid connection ~86
This LabelGrid MCP server is not connected to an account yet because no API token is configured. Call this tool to get step-by-step instructions to walk the user through creating a LabelGrid API token and adding it to their MCP client configuration. Returns the setup steps, ready-to-copy client config examples (with a placeholder token), a security note, and the optional settings. Makes no API calls.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
takedown_release Take down a release ~53
Take a release down from ALL outlets/stores — a final, consequential action that removes it everywhere it was delivered. Re-distribution afterward is a fresh submission.
| Name | Type | Req | Description |
|---|---|---|---|
| release_id | integer | yes | The release id. |
No output schema declared.
No examples provided.
update_catalog_item Update a catalog item ~125
Update a catalog entity. Pick the kind with `entity`, supply only the fields you want to change in `fields` (same field sets as create_catalog_item). For releases: once submitted or distributed, some fields are locked — changing one returns a 403 with code RELEASE_LOCKED_FIELDS naming exactly which fields cannot change. Track fields lock the same way once the parent release is submitted or distributed.
| Name | Type | Req | Description |
|---|---|---|---|
| entity | string | yes | The catalog entity kind. |
| fields | object | yes | The fields to change, forwarded verbatim. |
| id | integer | yes | The entity id. |
No output schema declared.
No examples provided.
upload_asset Upload a release/track asset ~209
Upload a finalized track or release asset from a local file. `id` is the track id for track_* targets, the release id for release_*. `track_stereo` (stereo audio, WAV/FLAC/AIFF), `track_dolby` (Dolby Atmos, WAV) and `track_lyrics` (LRC) upload directly to storage and process asynchronously — check state with get_asset (mode info). `release_cover_art` uploads or replaces the release's static cover art image. `release_motion_square` / `release_motion_tall` upload the animated cover (motion artwork) video — square or tall/portrait — also processed asynchronously. ALL of these become immutable once the release is distributed — upload the final files before distributing.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | Local path to the file to upload. |
| id | integer | yes | The track id (track_*) or release id (release_*). |
| target | string | yes | Which asset to upload. |
No output schema declared.
No examples provided.
upload_image Upload a catalog image ~120
Upload a label image or an artist photo from a local file. `target`: label_logo, label_logo_dark (a dark-mode variant), label_background, or artist_photo. `id` is the label id for label_* and the artist id for artist_photo. `file_path` must be a local image file.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | Local path to the image file to upload. |
| id | integer | yes | The label id (label_*) or artist id (artist_photo). |
| target | string | yes | Which image asset to upload. |
No output schema declared.
No examples provided.