Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

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

+25 this week 76 Trust /100
Trust breakdown (6 categories)

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.

Install

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

# add to Claude Code
claude mcp add labelgrid-labelgrid-mcp -- npx -y @labelgrid/mcp
# add to Codex CLI
codex mcp add labelgrid-labelgrid-mcp -- npx -y @labelgrid/mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "labelgrid-labelgrid-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@labelgrid/mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add labelgrid-labelgrid-mcp --command npx --arg -y --arg @labelgrid/mcp
# ~/.hermes/config.yaml
mcp_servers:
  labelgrid-labelgrid-mcp:
    command: "npx"
    args: ["-y", "@labelgrid/mcp"]
// mcp.json
{
  "mcpServers": {
    "labelgrid-labelgrid-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@labelgrid/mcp"
      ]
    }
  }
}
Changelog

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.

Diagnostics

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.

MCP tools — 29 exposed · ~4,883 tokens

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.

Tool Tokens
add_review_issue_note ~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.

NameTypeReqDescription
notestringyesThe note text to attach to the issue.
review_issue_idintegeryes

No output schema declared.

No examples provided.

confirm_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.

NameTypeReqDescription
release_idintegeryesThe release id.

No output schema declared.

No examples provided.

create_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.

NameTypeReqDescription
entitystringyesThe catalog entity kind.
fieldsobjectyesThe entity attributes, forwarded verbatim.
idempotency_keystringHonored 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 ~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.

NameTypeReqDescription
idintegeryesThe track id (track_*) or release id (release_motion_*).
targetstringyesWhich asset to delete.

No output schema declared.

No examples provided.

delete_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.

NameTypeReqDescription
entitystringyesThe catalog entity kind.
idintegeryesThe entity id.

No output schema declared.

No examples provided.

distribute_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.

NameTypeReqDescription
idempotency_keystringThe server deduplicates by this key for 24h — reuse the SAME key when retrying a call whose outcome you did not observe.
release_idintegeryesThe release id.

No output schema declared.

No examples provided.

download_statement ~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).

NameTypeReqDescription
end_datestringCSV export range end, YYYY-MM-DD.
formatstringyesWhich file: csv (line items) or invoice_pdf (the invoice PDF).
invoice_numberstringSingle-statement invoice number. Required for format invoice_pdf.
save_to_pathstringAbsolute path (existing parent dir) to write the file to. Optional for csv (otherwise returned inline); required for invoice_pdf.
start_datestringCSV export range start, YYYY-MM-DD.

No output schema declared.

No examples provided.

enable_beatport ~48

Request Beatport onboarding for a label. A one-time action that cannot be un-requested, so confirm the label is correct first.

NameTypeReqDescription
label_idintegeryesThe label id.

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
viewstringyesWhich account read.

No output schema declared.

No examples provided.

get_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.

NameTypeReqDescription
artist_namesarrayFilter to one or more artist names.
end_datestringyesEnd of the reporting window, YYYY-MM-DD (max 30-day span).
isrcstring
limitinteger
metricsarraySubset of metric sections to return; omit for all 15.
platformstring
release_idinteger
start_datestringyesStart of the reporting window, YYYY-MM-DD.
upcstring

No output schema declared.

No examples provided.

get_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.

NameTypeReqDescription
assetstringyesWhich asset — see the description for the valid parent/mode pairings.
idintegeryesThe track id or release id, per `parent`.
modestringinfo (default) returns file metadata; download_url returns a signed URL.
parentstringyesWhose asset.

No output schema declared.

No examples provided.

get_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.

NameTypeReqDescription
entitystringyesThe catalog entity kind.
idintegeryesThe entity id.
response_formatstring'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 ~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.

NameTypeReqDescription
outlet_idintegerFilter to one outlet/store.
pageinteger
per_pageinteger
release_idintegerFilter to one release.
response_formatstring'concise' (default) keeps only the high-signal fields (ids always kept); 'detailed' returns the verbatim API response.
statusstringFilter by delivery status.

No output schema declared.

No examples provided.

get_landing_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.

NameTypeReqDescription
release_idintegeryesThe release id.

No output schema declared.

No examples provided.

get_release_review ~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.

NameTypeReqDescription
release_idintegeryesThe release id.
response_formatstring'concise' (default) keeps only the high-signal fields (ids always kept); 'detailed' returns the verbatim API response.
viewstringyesWhich review read.

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
typestringyes

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
license_idintegerRetrieve one license by id instead of listing.
pageinteger
per_pageinteger
track_idintegeryesThe track id.

No output schema declared.

No examples provided.

manage_release_links ~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.

NameTypeReqDescription
actionstringyesWhich action.
configobjectThe landing-page configuration to set (required for update_landing_config).
release_idintegeryesThe release id.

No output schema declared.

No examples provided.

manage_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.

NameTypeReqDescription
actionstringyesWhich license action.
file_pathstringLocal path to the license file. Required for upload/update.
license_idstringThe license/clearance reference number, if any.
license_providerstringWhere the license came from.
license_provider_namestringThe name of the license provider.
original_track_linkstringURL to the original/source track.
track_idintegeryesThe track id.
track_license_idintegerFrom list_track_licenses. Required for update/delete.
typestringKind of license (upload).

No output schema declared.

No examples provided.

query_artificial_streaming ~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.

NameTypeReqDescription
cursorstringPagination cursor (view records).
filtersobjectFilter names → values, passed through verbatim.
flag_idintegerRequired for view flag_detail.
pageinteger1-based page number (view flags).
per_pageintegerItems per page.
periodstringYYYY-MM. Required for view fee_breakdown.
response_formatstring'concise' (default) keeps only the high-signal fields (ids always kept); 'detailed' returns the verbatim API response.
viewstringyesWhich artificial-streaming read.

No output schema declared.

No examples provided.

query_financials ~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.

NameTypeReqDescription
cursorstringPagination cursor (view royalty_breakdown).
filtersobjectlabel_id, release_id, isrc, upc, start_date, end_date — passed through verbatim.
group_bystringREQUIRED for royalty_breakdown (ordered subset: track, dsp, release, territory, period); "release" rolls statements/transactions up per release.
invoice_numberstringRequired for view statement_detail.
pageinteger1-based page number.
per_pageintegerItems per page.
response_formatstring'concise' (default) keeps only the high-signal fields (ids always kept); 'detailed' returns the verbatim API response.
sortstringSort expression (view transactions).
viewstringyesWhich financial read.

No output schema declared.

No examples provided.

revoke_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.

NameTypeReqDescription
token_idinteger

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
checkstringyesWhich check to run.
release_idintegeryesThe release id.

No output schema declared.

No examples provided.

search_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.

NameTypeReqDescription
entitystringyesThe catalog entity kind.
filtersobjectFilter names → values, passed through verbatim.
pageinteger1-based page number.
per_pageintegerItems per page.
response_formatstring'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 ~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 ~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.

NameTypeReqDescription
release_idintegeryesThe release id.

No output schema declared.

No examples provided.

update_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.

NameTypeReqDescription
entitystringyesThe catalog entity kind.
fieldsobjectyesThe fields to change, forwarded verbatim.
idintegeryesThe entity id.

No output schema declared.

No examples provided.

upload_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.

NameTypeReqDescription
file_pathstringyesLocal path to the file to upload.
idintegeryesThe track id (track_*) or release id (release_*).
targetstringyesWhich asset to upload.

No output schema declared.

No examples provided.

upload_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.

NameTypeReqDescription
file_pathstringyesLocal path to the image file to upload.
idintegeryesThe label id (label_*) or artist id (artist_photo).
targetstringyesWhich image asset to upload.

No output schema declared.

No examples provided.