Skip to main content
Glama

Smart Link Controls

dynamoi_smart_link_controls
Destructive

Sync the native catalog, change artist-wide Smart Link availability, replace tracking IDs, or record a promote request. Confirm the requested change first. Disabling requires confirmedArtistName matching the artist name. Tracking requires all three IDs (null clears) and forwards expectedVersion from artistHub.version. Availability is unversioned. Catalog sync previews at most 25 frozen links. Show the exact count and titles, then repeat the original limit/offset with phase=confirm, previewId and matching confirmedCount. No background catalog continuation is started; another batch requires a new preview and confirmation. Promote request requires playLinkId; it only records the native platform analytics event, sends no message and starts no paid work. Omitted platform uses the native default (iOS).

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": {
      "action": "<action>",
      "artistId": "<artistId>"
    },
    "name": "dynamoi_smart_link_controls"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNo
phaseNopreview
actionYes
offsetNo
artistIdYes
platformNo
trackingNo
isEnabledNo
previewIdNo
playLinkIdNo
confirmedCountNo
clientRequestIdNo
expectedVersionNo
confirmedArtistNameNo

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. Changed6 schema fields changed
    • addedInput schema / properties / clientRequestId
      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"
      +}
    • 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"
      +}
  2. Added

TDQS

A4/5.0
Behavior4/5

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

With destructiveHint=true and idempotentHint=false already declared, the description still adds real value: it discloses that availability is unversioned while tracking forwards expectedVersion, that no background catalog continuation is started, that a further batch needs a fresh preview, and that promote_request triggers no messaging or paid work. It does not spell out what the catalog sync actually alters on existing links, which is the largest remaining transparency gap for a destructive tool.

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?

The most consequential constraint (confirm first) is front-loaded, and subsequent sentences are ordered roughly by action. Density is high and a few sentences pack multiple rules, but almost nothing is filler given 14 parameters and four action branches.

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

Completeness4/5

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

For a destructive, non-idempotent, open-world tool with 14 parameters, a nested object, no parameter descriptions and an existing output schema, the description supplies nearly everything an agent needs to invoke it safely. Remaining omissions are the meaning of clientRequestId/isEnabled and what sync_catalog mutates in the native catalog.

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?

Schema description coverage is 0%, so the description carries the full burden and mostly succeeds: it explains confirmedArtistName, the three-ID tracking object with null semantics, expectedVersion sourced from artistHub.version, the previewId/confirmedCount/limit/offset/phase confirmation loop, playLinkId, and the omitted-platform default of iOS. It leaves clientRequestId and the exact role of isEnabled and artistId unaddressed.

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?

The opening sentence enumerates four concrete verb+resource pairs (sync the native catalog, change artist-wide availability, replace tracking IDs, record a promote request), so an agent knows exactly what domain this tool governs. It falls short of a 5 because it never names or distinguishes itself from the many sibling smart-link tools (e.g. dynamoi_update_smart_link_artist_settings, dynamoi_update_smart_link), leaving overlap with those ambiguous.

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?

Guidance is per-action and concrete: confirmation is required first ('Confirm the requested change first'), disabling needs confirmedArtistName matching the artist name, tracking needs all three IDs with null clearing, and catalog sync demands a preview/confirm round-trip with matching previewId and confirmedCount. It also scopes promote_request ('only records the native platform analytics event, sends no message and starts no paid work'). No explicit exclusion telling the agent when to reach for a sibling tool instead.

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.