Skip to main content
Glama

Create Free Smart Links for Spotify Artist

dynamoi_create_smart_links_from_spotify_artist
DestructiveIdempotent

Preview at most 25 Spotify album/single Smart Links, then show the exact count, titles and existing/new counts to the user. Creation requires a separate confirmed call with phase=confirm, the returned previewId and confirmedCount matching count. Preview creates no artist or Smart Links. Omit artistId to create the first artist only after confirmation. The target list is frozen; one confirmation never starts an unbounded catalog job. A nextOffset requires a new preview and confirmation. Retain the exact original request and clientRequestId for replay, including the original short URL. Replays observe the saved plan before URL resolution. First-artist previews include the reviewed workspace and confirmation cannot choose another. Only settlement=expired_before_execution proves an expired preview started no catalog writes; a generic conflict, timeout or local expiry does not. An in-progress or ambiguous result retains its key and never starts another write. Smart Links are free and may remain in verification hold. Lead with public URLs; this does not create a paid campaign.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "spotifyArtistUrl": "<spotifyArtistUrl>"
    },
    "name": "dynamoi_create_smart_links_from_spotify_artist"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNo
phaseNopreview
formatNo
offsetNo
artistIdNo
previewIdNo
confirmedCountNo
clientRequestIdNo
spotifyArtistUrlYes
userIntentSummaryNo

Output Schema

NameRequiredDescriptionDefault
codeNo
dataNo
kindNo
fieldNo
statusYes
draftIdNo
messageNo
retryableNo
nextActionNo
failureStageNo
prerequisiteNo
screeningResultNo
retryAfterSecondsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / data / properties / settlement
      Added value: +{
      +  "const": "expired_before_execution",
      +  "type": "string"
      +}
    • addedOutput schema / properties / data / properties / workspace
      Added value: +{
      +  "oneOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "kind": {
      +          "const": "existing",
      +          "type": "string"
      +        },
      +        "organizationId": {
      +          "type": "string"
      +        },
      +        "organizationName": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "kind",
      +        "organizationId",
      +        "organizationName"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "kind": {
      +          "const": "new",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "kind"
      +      ],
      +      "type": "object"
      +    }
      +  ]
      +}
  2. Changed31 schema fields changed
    • addedInput schema / properties / confirmedCount
      Added value: +{
      +  "maximum": 25,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / limit
      Added value: +{
      +  "default": 25,
      +  "maximum": 25,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "default": 0,
      +  "maximum": 10000,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / phase
      Added value: +{
      +  "default": "preview",
      +  "enum": [
      +    "preview",
      +    "confirm"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / previewId
      Added value: +{
      +  "format": "uuid",
      +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +  "type": "string"
      +}
    • removedOutput schema / properties / data / properties / artistCreatedFromSpotify
      Removed value: -{
      -  "type": "boolean"
      -}
    • removedOutput schema / properties / data / properties / artistHubUrl
      Removed value: -{
      -  "type": "string"
      -}
    • changedOutput schema / properties / data / properties / artistId / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / data / properties / artistName
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / data / properties / catalogImportStatus
      Removed value: -{
      -  "enum": [
      -    "started",
      -    "start_failed"
      -  ],
      -  "type": "string"
      -}
    • addedOutput schema / properties / data / properties / count
      Added value: +{
      +  "maximum": 25,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • removedOutput schema / properties / data / properties / currentSmartLinkCount
      Removed value: -{
      -  "type": "number"
      -}
    • addedOutput schema / properties / data / properties / existingCount / maximum
      Added value: +25
    • addedOutput schema / properties / data / properties / existingCount / minimum
      Added value: +0
    • changedOutput schema / properties / data / properties / existingCount / type
      Previous value: -"number"New value: +"integer"
    • addedOutput schema / properties / data / properties / expiresAt
      Added value: +{
      +  "format": "date-time",
      +  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      +  "type": "string"
      +}
    • removedOutput schema / properties / data / properties / initialSmartLink
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "additionalProperties": false,
      -      "properties": {
      -        "artistHubUrl": {
      -          "type": "string"
      -        },
      -        "artistId": {
      -          "type": "string"
      -        },
      -        "artistName": {
      -          "type": "string"
      -        },
      -        "claimStatus": {
      -          "enum": [
      -            "auto_approved",
      -            "pending_ops_review",
      -            "verification_deferred",
      -            "approved_by_ops",
      -            "rejected"
      -          ],
      -          "type": "string"
      -        },
      -        "createdAt": {
      -          "type": "string"
      -        },
      -        "id": {
      -          "type": "string"
      -        },
      -        "isPublic": {
      -          "type": "boolean"
      -        },
      -        "localizedPublicUrls": {
      -          "items": {
      -            "type": "string"
      -          },
      -          "type": "array"
      -        },
      -        "publicUrl": {
      -          "type": "string"
      -        },
      -        "publishState": {
      -          "enum": [
      -            "published",
      -            "unpublished"
      -          ],
      -          "type": "string"
      -        },
      -        "releaseSlug": {
      -          "type": "string"
      -        },
      -        "releaseTitle": {
      -          "type": "string"
      -        },
      -        "releaseType": {
      -          "type": "string"
      -        },
      -        "renderState": {
      -          "enum": [
      -            "queued",
      -            "rendering",
      -            "rendered",
      -            "failed"
      -          ],
      -          "type": "string"
      -        },
      -        "spotifyUrl": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "takedownStatus": {
      -          "enum": [
      -            "none",
      -            "active",
      -            "resolved"
      -          ],
      -          "type": "string"
      -        },
      -        "theme": {
      -          "enum": [
      -            "classic",
      -            "brutalist",
      -            "aurora",
      -            "cinematic"
      -          ],
      -          "type": "string"
      -        },
      -        "updatedAt": {
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "artistHubUrl",
      -        "artistId",
      -        "artistName",
      -        "claimStatus",
      -        "createdAt",
      -        "id",
      -        "isPublic",
      -        "publicUrl",
      -        "publishState",
      -        "releaseSlug",
      -        "releaseTitle",
      -        "releaseType",
      -        "renderState",
      -        "spotifyUrl",
      -        "takedownStatus",
      -        "theme",
      -        "updatedAt"
      -      ],
      -      "type": "object"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ]
      -}
    • addedOutput schema / properties / data / properties / items
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "message": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "playLinkId": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "publicUrl": {
      +        "anyOf": [
      +          {
      +            "format": "uri",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "spotifyUrl": {
      +        "format": "uri",
      +        "type": "string"
      +      },
      +      "status": {
      +        "enum": [
      +          "created",
      +          "existing",
      +          "failed"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "message",
      +      "playLinkId",
      +      "publicUrl",
      +      "spotifyUrl",
      +      "status"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 25,
      +  "type": "array"
      +}
    • addedOutput schema / properties / data / properties / message
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / data / properties / newCount
      Added value: +{
      +  "maximum": 25,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • removedOutput schema / properties / data / properties / newlyAvailableCount
      Removed value: -{
      -  "type": "number"
      -}
    • removedOutput schema / properties / data / properties / nextActions
      Removed value: -{
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • addedOutput schema / properties / data / properties / nextOffset
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / data / properties / previewId
      Added value: +{
      +  "format": "uuid",
      +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +  "type": "string"
      +}
    • removedOutput schema / properties / data / properties / smartLinks
      Removed value: -{
      -  "items": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "artistHubUrl": {
      -        "type": "string"
      -      },
      -      "artistId": {
      -        "type": "string"
      -      },
      -      "artistName": {
      -        "type": "string"
      -      },
      -      "claimStatus": {
      -        "enum": [
      -          "auto_approved",
      -          "pending_ops_review",
      -          "verification_deferred",
      -          "approved_by_ops",
      -          "rejected"
      -        ],
      -        "type": "string"
      -      },
      -      "createdAt": {
      -        "type": "string"
      -      },
      -      "id": {
      -        "type": "string"
      -      },
      -      "isPublic": {
      -        "type": "boolean"
      -      },
      -      "localizedPublicUrls": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "publicUrl": {
      -        "type": "string"
      -      },
      -      "publishState": {
      -        "enum": [
      -          "published",
      -          "unpublished"
      -        ],
      -        "type": "string"
      -      },
      -      "releaseSlug": {
      -        "type": "string"
      -      },
      -      "releaseTitle": {
      -        "type": "string"
      -      },
      -      "releaseType": {
      -        "type": "string"
      -      },
      -      "renderState": {
      -        "enum": [
      -          "queued",
      -          "rendering",
      -          "rendered",
      -          "failed"
      -        ],
      -        "type": "string"
      -      },
      -      "spotifyUrl": {
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "takedownStatus": {
      -        "enum": [
      -          "none",
      -          "active",
      -          "resolved"
      -        ],
      -        "type": "string"
      -      },
      -      "theme": {
      -        "enum": [
      -          "classic",
      -          "brutalist",
      -          "aurora",
      -          "cinematic"
      -        ],
      -        "type": "string"
      -      },
      -      "updatedAt": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "artistHubUrl",
      -      "artistId",
      -      "artistName",
      -      "claimStatus",
      -      "createdAt",
      -      "id",
      -      "isPublic",
      -      "publicUrl",
      -      "publishState",
      -      "releaseSlug",
      -      "releaseTitle",
      -      "releaseType",
      -      "renderState",
      -      "spotifyUrl",
      -      "takedownStatus",
      -      "theme",
      -      "updatedAt"
      -    ],
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • addedOutput schema / properties / data / properties / spotifyArtistUrl / format
      Added value: +"uri"
    • addedOutput schema / properties / data / properties / status
      Added value: +{
      +  "enum": [
      +    "preview",
      +    "completed",
      +    "in_progress",
      +    "failed"
      +  ],
      +  "type": "string"
      +}
    • removedOutput schema / properties / data / properties / summary
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / data / properties / targets
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "existing": {
      +        "type": "boolean"
      +      },
      +      "releaseName": {
      +        "type": "string"
      +      },
      +      "spotifyUrl": {
      +        "format": "uri",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "existing",
      +      "releaseName",
      +      "spotifyUrl"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 25,
      +  "type": "array"
      +}
    • removedOutput schema / properties / data / properties / warnings
      Removed value: -{
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • changedOutput schema / properties / data / required
      Previous value: -[
      -  "artistHubUrl",
      -  "artistId",
      -  "artistName",
      -  "catalogImportStatus",
      -  "currentSmartLinkCount",
      -  "existingCount",
      -  "initialSmartLink",
      -  "newlyAvailableCount",
      -  "nextActions",
      -  "smartLinks",
      -  "spotifyArtistUrl",
      -  "summary"
      -]New value: +[
      +  "artistId",
      +  "count",
      +  "existingCount",
      +  "expiresAt",
      +  "items",
      +  "message",
      +  "newCount",
      +  "nextOffset",
      +  "previewId",
      +  "spotifyArtistUrl",
      +  "status",
      +  "targets"
      +]
  3. Changed1 schema field changed
    • changedOutput schema / properties / code / enum
      Previous value: -[
      -  "ACCOUNT_READ_ONLY",
      -  "INVALID_SPOTIFY_SOURCE",
      -  "CAPABILITY_REQUIRED",
      -  "INSUFFICIENT_SCOPE",
      -  "STATE_CONFLICT",
      -  "QUOTE_CHANGED",
      -  "RATE_LIMITED",
      -  "OUTPUT_INVALID",
      -  "UNKNOWN_EFFECT"
      -]New value: +[
      +  "ACCOUNT_READ_ONLY",
      +  "INVALID_SPOTIFY_SOURCE",
      +  "CAPABILITY_REQUIRED",
      +  "INSUFFICIENT_SCOPE",
      +  "TENANT_ACCESS_DENIED",
      +  "STATE_CONFLICT",
      +  "QUOTE_CHANGED",
      +  "RATE_LIMITED",
      +  "OUTPUT_INVALID",
      +  "UNKNOWN_EFFECT"
      +]
  4. Changed3 schema fields changed
    • changedOutput schema / properties / data / properties / initialSmartLink / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "artistHubUrl": {
      -        "type": "string"
      -      },
      -      "artistId": {
      -        "type": "string"
      -      },
      -      "artistName": {
      -        "type": "string"
      -      },
      -      "claimStatus": {
      -        "enum": [
      -          "auto_approved",
      -          "pending_ops_review",
      -          "verification_deferred",
      -          "approved_by_ops",
      -          "rejected"
      -        ],
      -        "type": "string"
      -      },
      -      "createdAt": {
      -        "type": "string"
      -      },
      -      "id": {
      -        "type": "string"
      -      },
      -      "isPublic": {
      -        "type": "boolean"
      -      },
      -      "localizedPublicUrls": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "publicUrl": {
      -        "type": "string"
      -      },
      -      "publishState": {
      -        "enum": [
      -          "published",
      -          "unpublished"
      -        ],
      -        "type": "string"
      -      },
      -      "releaseSlug": {
      -        "type": "string"
      -      },
      -      "releaseTitle": {
      -        "type": "string"
      -      },
      -      "releaseType": {
      -        "type": "string"
      -      },
      -      "renderState": {
      -        "enum": [
      -          "queued",
      -          "rendering",
      -          "rendered",
      -          "failed"
      -        ],
      -        "type": "string"
      -      },
      -      "spotifyUrl": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "takedownStatus": {
      -        "enum": [
      -          "none",
      -          "active",
      -          "resolved"
      -        ],
      -        "type": "string"
      -      },
      -      "theme": {
      -        "enum": [
      -          "classic",
      -          "brutalist",
      -          "aurora",
      -          "cinematic"
      -        ],
      -        "type": "string"
      -      },
      -      "updatedAt": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "artistHubUrl",
      -      "artistId",
      -      "artistName",
      -      "claimStatus",
      -      "createdAt",
      -      "id",
      -      "isPublic",
      -      "publicUrl",
      -      "publishState",
      -      "releaseSlug",
      -      "releaseTitle",
      -      "releaseType",
      -      "renderState",
      -      "spotifyUrl",
      -      "takedownStatus",
      -      "theme",
      -      "updatedAt"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "artistHubUrl": {
      +        "type": "string"
      +      },
      +      "artistId": {
      +        "type": "string"
      +      },
      +      "artistName": {
      +        "type": "string"
      +      },
      +      "claimStatus": {
      +        "enum": [
      +          "auto_approved",
      +          "pending_ops_review",
      +          "verification_deferred",
      +          "approved_by_ops",
      +          "rejected"
      +        ],
      +        "type": "string"
      +      },
      +      "createdAt": {
      +        "type": "string"
      +      },
      +      "id": {
      +        "type": "string"
      +      },
      +      "isPublic": {
      +        "type": "boolean"
      +      },
      +      "localizedPublicUrls": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "publicUrl": {
      +        "type": "string"
      +      },
      +      "publishState": {
      +        "enum": [
      +          "published",
      +          "unpublished"
      +        ],
      +        "type": "string"
      +      },
      +      "releaseSlug": {
      +        "type": "string"
      +      },
      +      "releaseTitle": {
      +        "type": "string"
      +      },
      +      "releaseType": {
      +        "type": "string"
      +      },
      +      "renderState": {
      +        "enum": [
      +          "queued",
      +          "rendering",
      +          "rendered",
      +          "failed"
      +        ],
      +        "type": "string"
      +      },
      +      "spotifyUrl": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "takedownStatus": {
      +        "enum": [
      +          "none",
      +          "active",
      +          "resolved"
      +        ],
      +        "type": "string"
      +      },
      +      "theme": {
      +        "enum": [
      +          "classic",
      +          "brutalist",
      +          "aurora",
      +          "cinematic"
      +        ],
      +        "type": "string"
      +      },
      +      "updatedAt": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "artistHubUrl",
      +      "artistId",
      +      "artistName",
      +      "claimStatus",
      +      "createdAt",
      +      "id",
      +      "isPublic",
      +      "publicUrl",
      +      "publishState",
      +      "releaseSlug",
      +      "releaseTitle",
      +      "releaseType",
      +      "renderState",
      +      "spotifyUrl",
      +      "takedownStatus",
      +      "theme",
      +      "updatedAt"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / data / properties / smartLinks / items / properties / spotifyUrl / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / data / properties / smartLinks / items / properties / spotifyUrl / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  5. Changed3 schema fields changed
    • addedOutput schema / properties / draftId
      Added value: +{
      +  "format": "uuid",
      +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +  "type": "string"
      +}
    • addedOutput schema / properties / failureStage
      Added value: +{
      +  "maxLength": 120,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / screeningResult
      Added value: +{
      +  "maxLength": 120,
      +  "minLength": 1,
      +  "type": "string"
      +}
  6. Changed2 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedOutput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
  7. Changed2 schema fields changed
    • addedInput schema / $schema
      Added value: +"http://json-schema.org/draft-07/schema#"
    • addedOutput schema / $schema
      Added value: +"http://json-schema.org/draft-07/schema#"
  8. Changed9 schema fields changed
    • addedOutput schema / properties / code
      Added value: +{
      +  "enum": [
      +    "ACCOUNT_READ_ONLY",
      +    "INVALID_SPOTIFY_SOURCE",
      +    "CAPABILITY_REQUIRED",
      +    "INSUFFICIENT_SCOPE",
      +    "STATE_CONFLICT",
      +    "QUOTE_CHANGED",
      +    "RATE_LIMITED",
      +    "OUTPUT_INVALID",
      +    "UNKNOWN_EFFECT"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / data / properties / initialSmartLink / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "artistHubUrl": {
      -        "type": "string"
      -      },
      -      "artistId": {
      -        "type": "string"
      -      },
      -      "artistName": {
      -        "type": "string"
      -      },
      -      "claimStatus": {
      -        "enum": [
      -          "auto_approved",
      -          "pending_ops_review",
      -          "verification_deferred",
      -          "approved_by_ops",
      -          "rejected"
      -        ],
      -        "type": "string"
      -      },
      -      "createdAt": {
      -        "type": "string"
      -      },
      -      "id": {
      -        "type": "string"
      -      },
      -      "isPublic": {
      -        "type": "boolean"
      -      },
      -      "localizedPublicUrls": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "odesliStatus": {
      -        "enum": [
      -          "pending",
      -          "resolved",
      -          "failed"
      -        ],
      -        "type": "string"
      -      },
      -      "publicUrl": {
      -        "type": "string"
      -      },
      -      "publishState": {
      -        "enum": [
      -          "published",
      -          "unpublished"
      -        ],
      -        "type": "string"
      -      },
      -      "releaseSlug": {
      -        "type": "string"
      -      },
      -      "releaseTitle": {
      -        "type": "string"
      -      },
      -      "releaseType": {
      -        "type": "string"
      -      },
      -      "renderState": {
      -        "enum": [
      -          "queued",
      -          "rendering",
      -          "rendered",
      -          "failed"
      -        ],
      -        "type": "string"
      -      },
      -      "spotifyUrl": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "takedownStatus": {
      -        "enum": [
      -          "none",
      -          "active",
      -          "resolved"
      -        ],
      -        "type": "string"
      -      },
      -      "theme": {
      -        "enum": [
      -          "classic",
      -          "brutalist",
      -          "aurora",
      -          "cinematic"
      -        ],
      -        "type": "string"
      -      },
      -      "updatedAt": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "artistHubUrl",
      -      "artistId",
      -      "artistName",
      -      "claimStatus",
      -      "createdAt",
      -      "id",
      -      "isPublic",
      -      "odesliStatus",
      -      "publicUrl",
      -      "publishState",
      -      "releaseSlug",
      -      "releaseTitle",
      -      "releaseType",
      -      "renderState",
      -      "spotifyUrl",
      -      "takedownStatus",
      -      "theme",
      -      "updatedAt"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "artistHubUrl": {
      +        "type": "string"
      +      },
      +      "artistId": {
      +        "type": "string"
      +      },
      +      "artistName": {
      +        "type": "string"
      +      },
      +      "claimStatus": {
      +        "enum": [
      +          "auto_approved",
      +          "pending_ops_review",
      +          "verification_deferred",
      +          "approved_by_ops",
      +          "rejected"
      +        ],
      +        "type": "string"
      +      },
      +      "createdAt": {
      +        "type": "string"
      +      },
      +      "id": {
      +        "type": "string"
      +      },
      +      "isPublic": {
      +        "type": "boolean"
      +      },
      +      "localizedPublicUrls": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "publicUrl": {
      +        "type": "string"
      +      },
      +      "publishState": {
      +        "enum": [
      +          "published",
      +          "unpublished"
      +        ],
      +        "type": "string"
      +      },
      +      "releaseSlug": {
      +        "type": "string"
      +      },
      +      "releaseTitle": {
      +        "type": "string"
      +      },
      +      "releaseType": {
      +        "type": "string"
      +      },
      +      "renderState": {
      +        "enum": [
      +          "queued",
      +          "rendering",
      +          "rendered",
      +          "failed"
      +        ],
      +        "type": "string"
      +      },
      +      "spotifyUrl": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "takedownStatus": {
      +        "enum": [
      +          "none",
      +          "active",
      +          "resolved"
      +        ],
      +        "type": "string"
      +      },
      +      "theme": {
      +        "enum": [
      +          "classic",
      +          "brutalist",
      +          "aurora",
      +          "cinematic"
      +        ],
      +        "type": "string"
      +      },
      +      "updatedAt": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "artistHubUrl",
      +      "artistId",
      +      "artistName",
      +      "claimStatus",
      +      "createdAt",
      +      "id",
      +      "isPublic",
      +      "publicUrl",
      +      "publishState",
      +      "releaseSlug",
      +      "releaseTitle",
      +      "releaseType",
      +      "renderState",
      +      "spotifyUrl",
      +      "takedownStatus",
      +      "theme",
      +      "updatedAt"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / data / properties / smartLinks / items / properties / odesliStatus
      Removed value: -{
      -  "enum": [
      -    "pending",
      -    "resolved",
      -    "failed"
      -  ],
      -  "type": "string"
      -}
    • changedOutput schema / properties / data / properties / smartLinks / items / required
      Previous value: -[
      -  "artistHubUrl",
      -  "artistId",
      -  "artistName",
      -  "claimStatus",
      -  "createdAt",
      -  "id",
      -  "isPublic",
      -  "odesliStatus",
      -  "publicUrl",
      -  "publishState",
      -  "releaseSlug",
      -  "releaseTitle",
      -  "releaseType",
      -  "renderState",
      -  "spotifyUrl",
      -  "takedownStatus",
      -  "theme",
      -  "updatedAt"
      -]New value: +[
      +  "artistHubUrl",
      +  "artistId",
      +  "artistName",
      +  "claimStatus",
      +  "createdAt",
      +  "id",
      +  "isPublic",
      +  "publicUrl",
      +  "publishState",
      +  "releaseSlug",
      +  "releaseTitle",
      +  "releaseType",
      +  "renderState",
      +  "spotifyUrl",
      +  "takedownStatus",
      +  "theme",
      +  "updatedAt"
      +]
    • addedOutput schema / properties / field
      Added value: +{
      +  "maxLength": 120,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / nextAction
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "field": {
      +      "maxLength": 120,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "kind": {
      +      "enum": [
      +        "provide_input",
      +        "read_status",
      +        "reconnect",
      +        "handoff"
      +      ],
      +      "type": "string"
      +    },
      +    "reason": {
      +      "maxLength": 240,
      +      "minLength": 1,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "kind"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / prerequisite
      Added value: +{
      +  "maxLength": 240,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / retryAfterSeconds
      Added value: +{
      +  "maximum": 86400,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / retryable
      Added value: +{
      +  "type": "boolean"
      +}
  9. Changed5 schema fields changed
    • changedOutput schema / additionalProperties
      Previous value: -{}New value: +false
    • addedOutput schema / properties / data
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "artistCreatedFromSpotify": {
      +      "type": "boolean"
      +    },
      +    "artistHubUrl": {
      +      "type": "string"
      +    },
      +    "artistId": {
      +      "type": "string"
      +    },
      +    "artistName": {
      +      "type": "string"
      +    },
      +    "catalogImportStatus": {
      +      "enum": [
      +        "started",
      +        "start_failed"
      +      ],
      +      "type": "string"
      +    },
      +    "currentSmartLinkCount": {
      +      "type": "number"
      +    },
      +    "existingCount": {
      +      "type": "number"
      +    },
      +    "initialSmartLink": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "artistHubUrl": {
      +              "type": "string"
      +            },
      +            "artistId": {
      +              "type": "string"
      +            },
      +            "artistName": {
      +              "type": "string"
      +            },
      +            "claimStatus": {
      +              "enum": [
      +                "auto_approved",
      +                "pending_ops_review",
      +                "verification_deferred",
      +                "approved_by_ops",
      +                "rejected"
      +              ],
      +              "type": "string"
      +            },
      +            "createdAt": {
      +              "type": "string"
      +            },
      +            "id": {
      +              "type": "string"
      +            },
      +            "isPublic": {
      +              "type": "boolean"
      +            },
      +            "localizedPublicUrls": {
      +              "items": {
      +                "type": "string"
      +              },
      +              "type": "array"
      +            },
      +            "odesliStatus": {
      +              "enum": [
      +                "pending",
      +                "resolved",
      +                "failed"
      +              ],
      +              "type": "string"
      +            },
      +            "publicUrl": {
      +              "type": "string"
      +            },
      +            "publishState": {
      +              "enum": [
      +                "published",
      +                "unpublished"
      +              ],
      +              "type": "string"
      +            },
      +            "releaseSlug": {
      +              "type": "string"
      +            },
      +            "releaseTitle": {
      +              "type": "string"
      +            },
      +            "releaseType": {
      +              "type": "string"
      +            },
      +            "renderState": {
      +              "enum": [
      +                "queued",
      +                "rendering",
      +                "rendered",
      +                "failed"
      +              ],
      +              "type": "string"
      +            },
      +            "spotifyUrl": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "takedownStatus": {
      +              "enum": [
      +                "none",
      +                "active",
      +                "resolved"
      +              ],
      +              "type": "string"
      +            },
      +            "theme": {
      +              "enum": [
      +                "classic",
      +                "brutalist",
      +                "aurora",
      +                "cinematic"
      +              ],
      +              "type": "string"
      +            },
      +            "updatedAt": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "artistHubUrl",
      +            "artistId",
      +            "artistName",
      +            "claimStatus",
      +            "createdAt",
      +            "id",
      +            "isPublic",
      +            "odesliStatus",
      +            "publicUrl",
      +            "publishState",
      +            "releaseSlug",
      +            "releaseTitle",
      +            "releaseType",
      +            "renderState",
      +            "spotifyUrl",
      +            "takedownStatus",
      +            "theme",
      +            "updatedAt"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "newlyAvailableCount": {
      +      "type": "number"
      +    },
      +    "nextActions": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "smartLinks": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "artistHubUrl": {
      +            "type": "string"
      +          },
      +          "artistId": {
      +            "type": "string"
      +          },
      +          "artistName": {
      +            "type": "string"
      +          },
      +          "claimStatus": {
      +            "enum": [
      +              "auto_approved",
      +              "pending_ops_review",
      +              "verification_deferred",
      +              "approved_by_ops",
      +              "rejected"
      +            ],
      +            "type": "string"
      +          },
      +          "createdAt": {
      +            "type": "string"
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "isPublic": {
      +            "type": "boolean"
      +          },
      +          "localizedPublicUrls": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "odesliStatus": {
      +            "enum": [
      +              "pending",
      +              "resolved",
      +              "failed"
      +            ],
      +            "type": "string"
      +          },
      +          "publicUrl": {
      +            "type": "string"
      +          },
      +          "publishState": {
      +            "enum": [
      +              "published",
      +              "unpublished"
      +            ],
      +            "type": "string"
      +          },
      +          "releaseSlug": {
      +            "type": "string"
      +          },
      +          "releaseTitle": {
      +            "type": "string"
      +          },
      +          "releaseType": {
      +            "type": "string"
      +          },
      +          "renderState": {
      +            "enum": [
      +              "queued",
      +              "rendering",
      +              "rendered",
      +              "failed"
      +            ],
      +            "type": "string"
      +          },
      +          "spotifyUrl": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "takedownStatus": {
      +            "enum": [
      +              "none",
      +              "active",
      +              "resolved"
      +            ],
      +            "type": "string"
      +          },
      +          "theme": {
      +            "enum": [
      +              "classic",
      +              "brutalist",
      +              "aurora",
      +              "cinematic"
      +            ],
      +            "type": "string"
      +          },
      +          "updatedAt": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "artistHubUrl",
      +          "artistId",
      +          "artistName",
      +          "claimStatus",
      +          "createdAt",
      +          "id",
      +          "isPublic",
      +          "odesliStatus",
      +          "publicUrl",
      +          "publishState",
      +          "releaseSlug",
      +          "releaseTitle",
      +          "releaseType",
      +          "renderState",
      +          "spotifyUrl",
      +          "takedownStatus",
      +          "theme",
      +          "updatedAt"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "spotifyArtistUrl": {
      +      "type": "string"
      +    },
      +    "summary": {
      +      "type": "string"
      +    },
      +    "warnings": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "artistHubUrl",
      +    "artistId",
      +    "artistName",
      +    "catalogImportStatus",
      +    "currentSmartLinkCount",
      +    "existingCount",
      +    "initialSmartLink",
      +    "newlyAvailableCount",
      +    "nextActions",
      +    "smartLinks",
      +    "spotifyArtistUrl",
      +    "summary"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / kind
      Added value: +{
      +  "enum": [
      +    "validation",
      +    "business",
      +    "platform",
      +    "unknown"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / message
      Added value: +{
      +  "type": "string"
      +}
    • changedOutput schema / properties / status / enum
      Previous value: -[
      -  "success",
      -  "partial_success",
      -  "error"
      -]New value: +[
      +  "success",
      +  "error"
      +]
  10. Changed1 schema field changed
    • changedInput schema / required
      Previous value: -[
      -  "artistId",
      -  "spotifyArtistUrl"
      -]New value: +[
      +  "spotifyArtistUrl"
      +]
  11. Added

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructive, idempotent, open-world, and non-read-only behavior, but the description adds crucial details: preview performs no writes, confirmation is separate, target lists are frozen, replay is keyed by clientRequestId, and ambiguous results must not trigger another write. It also specifies that only settlement=expired_before_execution proves no catalog writes occurred.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the preview/confirm model, then packs in operational constraints; most sentences encode non-obvious safety or replay behavior rather than filler. It is dense with internal terms such as nextOffset and settlement=expired_before_execution and would benefit from clearer structure, but the length is justified by the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, destructive, idempotent two-phase tool, the description covers the preview contract, confirmation requirements, replay semantics, ambiguous failure handling, and the free/verification-hold context. With an output schema present and only low-stakes optional parameters unmentioned, an agent has enough information to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage across 10 parameters, the description explains the meaningful roles of phase, previewId, confirmedCount, artistId, clientRequestId, and limit, and clarifies pagination through nextOffset. It leaves format and userIntentSummary unexplained and refers to nextOffset rather than the schema's offset parameter, so the coverage is substantial but not complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific two-phase operation: preview up to 25 album/single Smart Links and create only through a separate confirmed call. It clarifies first-artist and frozen-target behavior, but never contrasts itself with the singular create_smart_link_from_spotify sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear procedural context: preview first, confirm with previewId and matching confirmedCount, omit artistId for the first artist, and re-preview for a nextOffset. It does not explicitly route between this bulk tool and the singular create tool or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.