MCPQuickstart

Quickstart

End-to-end flow: authenticate, upload, submit, and monitor.

1. Authenticate

Get an access token using JSON-RPC or HTTP:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "auth_login",
    "arguments": {
      "username": "user@email.com",
      "password": "..."
    }
  }
}

2. Upload Assets

Choose the method that fits your file location and size:

MethodUse case
upload_fileSmall local files (base64)
upload_file_from_urlLarge public URLs
POST /api/mcp/uploadHTTP multipart upload
Chunked uploadLarge local files (>6MB chunks)

Each upload returns a fileUrl to use in the submission.

3. Submit Release

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "submit_release",
    "arguments": {
      "access_token": "<token>",
      "release": {
        "title": "My Release",
        "primary_artist_name": "Artist Name",
        "genre": "Pop",
        "release_date": "2026-02-01",
        "cover_art_file_url": "/api/files/cover-art/USER_ID/cover.jpg"
      },
      "tracks": [
        {
          "title": "My Release",
          "primary_artist_name": "Artist Name",
          "audio_file_url": "/api/files/audio/USER_ID/track.wav",
          "explicit_flag": false,
          "writers": [{ "name": "First Last" }]
        }
      ]
    }
  }
}

4. Monitor Status

Poll these tools to track processing:

  • get_release_status — Store delivery status
  • get_release_job — Processing job status
  • get_release_metadata — Current metadata state
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "get_release_status",
    "arguments": {
      "access_token": "<token>",
      "releaseId": "<release-id>"
    }
  }
}