Dynamoi
Server Details
Music marketing for AI agents: free Smart Links, promotion campaigns, analytics, and distribution.
- Status
- Healthy
- Uptime
- 100.0% over 47 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- getDynamoi/mcp
- GitHub Stars
- 3
- Server Listing
- Dynamoi MCP
TDQS
Scored across 19 tools
Most tools target clearly distinct resources and actions, and descriptions aggressively cross-reference each other (e.g. dynamoi_search vs search, dynamoi_list_campaigns vs dynamoi_get_campaign). The closest overlaps are the create_smart_link pair and the two search/fetch tools, but descriptions specify when to use each.
The dominant pattern is a clean dynamoi_verb_noun convention, but two tools (fetch, search) drop the prefix entirely, and there is an inconsistent singular/plural pairing (dynamoi_create_smart_link_from_spotify vs dynamoi_create_smart_links_from_spotify_artist). Readable but not uniform.
19 tools is on the heavier side but justified by a broad multi-domain surface (distribution, campaigns, smart links, platform status, YouTube analytics, search). No tool looks obviously redundant, though the pair of bare search/fetch tools is arguably extra.
Smart Links have full create/get/list/update coverage and distribution has apply/status, but campaigns only expose list/get despite descriptions referencing 'launch' and 'campaign mutation' — implying missing create/update tools. Artist creation and campaign lifecycle operations are notable gaps.
Available Tools
19 toolsdynamoi_aboutAbout DynamoiARead-onlyIdempotentInspect
Use this when the user asks what Dynamoi is, who it is for, or what it offers — including before sign-in or before choosing a tool. Returns the canonical About Dynamoi text plus a short structured summary covering free Smart Links, managed Smart Campaigns, YouTube campaigns, distribution, company facts, support, and getting started. This is read-only product information, not account data.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| data | No | |
| kind | No | |
| field | No | |
| status | Yes | |
| draftId | No | |
| message | No | |
| retryable | No | |
| nextAction | No | |
| failureStage | No | |
| prerequisite | No | |
| screeningResult | No | |
| retryAfterSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag read-only, non-destructive, idempotent behavior. The description adds the valuable clarification that this is product information rather than account data, and describes the two-part return shape: canonical text plus a structured summary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler. The trigger condition is front-loaded, followed by the return contents and a clarifying scope note. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only informational tool with an output schema and full annotations, the description gives everything an agent needs: when to use it, what it returns, and how it differs from account-data tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is fully covered, so parameter-level description is unnecessary. The baseline for no-parameter tools is 4; the description adds no irrelevant or missing parameter detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear purpose: answer questions about what Dynamoi is, who it is for, and what it offers. It distinguishes itself from account-data tools by explicitly saying it returns product information, not account data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit trigger conditions ('when the user asks what Dynamoi is, who it is for, or what it offers') and includes useful timing context ('including before sign-in or before choosing a tool'). It also provides an exclusion by clarifying it is not account data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dynamoi_apply_for_distributionApply for Music DistributionAIdempotentInspect
Submit an artist's application for Dynamoi music distribution after the user explicitly asks to apply and all five eligibility requirements are met. This records an application for manual review; it does not approve distribution, accept an agreement, submit a release, transfer rights, configure splits or tax forms, or deliver music to stores. All three valid ISO 3166-1 alpha-2 country or territory codes, an adult signer attestation, confirmApplicationSubmission=true, and a concise userIntentSummary are required. Country, tax, payout, sanctions, and provider-delivery checks remain manual progression gates after intake; a valid code does not imply approval. Repeated submission is idempotent for an active application.
| Name | Required | Description | Default |
|---|---|---|---|
| artistId | Yes | ||
| payoutCountry | Yes | ||
| applicantCountry | Yes | ||
| userIntentSummary | Yes | ||
| taxResidencyCountry | Yes | ||
| adultSignerAttestation | Yes | ||
| confirmApplicationSubmission | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| data | No | |
| kind | No | |
| field | No | |
| status | Yes | |
| draftId | No | |
| message | No | |
| retryable | No | |
| nextAction | No | |
| failureStage | No | |
| prerequisite | No | |
| screeningResult | No | |
| retryAfterSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes far beyond the annotations by disclosing that this only records an application for manual review, that country/tax/payout/sanctions/provider checks remain manual gates, that a valid code does not imply approval, and that repeated submission is idempotent for an active application. This gives the agent an accurate model of side effects and non-effects. No contradiction with readOnlyHint=false or idempotentHint=true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence earns its place: trigger conditions, non-effects, required inputs, manual review gates, and idempotency. The description is long but appropriately dense for a high-stakes application tool with many boundary cases. The main purpose is front-loaded before the caveats.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the essential operational context: prerequisites, required fields, what happens after intake, what does not happen, and idempotent retry behavior. Minor gaps remain: artistId is not described, and 'all five eligibility requirements' is not explicitly enumerated. Given the presence of an output schema and strong annotations, this is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates well: it identifies the three country parameters as valid ISO 3166-1 alpha-2 codes and explains the role of adultSignerAttestation, confirmApplicationSubmission=true, and userIntentSummary. However, it never mentions artistId, one of the seven required parameters, leaving its semantics entirely to the schema. Strong compensation, but not complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('Submit an artist's application'), the target resource (Dynamoi distribution), and the trigger condition. It also distinguishes itself from related operations by listing what it does NOT do: approve, accept, submit a release, transfer rights, configure splits/tax forms, or deliver to stores. This prevents confusion with siblings like dynamoi_get_distribution_application.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to invoke: after the user explicitly asks to apply and all five eligibility requirements are met. It also gives clear exclusions for what this tool will not accomplish. However, it does not name a specific sibling tool for alternative operations, so the when-not guidance is somewhat implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dynamoi_create_smart_link_from_spotifyCreate Free Smart Link from SpotifyADestructiveIdempotentInspect
Use this when the user wants to create one free Dynamoi Smart Link from a Spotify album or track URL/URI, or a single starter release from a Spotify artist URL. For full-catalog artist imports or artist hub requests, prefer dynamoi_create_smart_links_from_spotify_artist. Smart Links are free to create and manage. High-popularity or unverifiable artist links may stay unpublished in verification hold until Dynamoi can verify the client relationship. This does not create a paid ad campaign. Spotify playlist URLs are not supported today. This is also how to add a release missing from an artist's imported catalog: the user pastes that release's exact Spotify album, single, or EP URL. If the Smart Link already exists, return the existing link instead of creating a duplicate; if customDescription is provided, update that Smart Link's public description. In the final answer, lead with the public URL and do not expose internal IDs unless asked.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | ||
| artistId | Yes | ||
| spotifyUrl | Yes | ||
| clientRequestId | No | ||
| customDescription | No | ||
| userIntentSummary | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| data | No | |
| kind | No | |
| field | No | |
| status | Yes | |
| draftId | No | |
| message | No | |
| retryable | No | |
| nextAction | No | |
| failureStage | No | |
| prerequisite | No | |
| screeningResult | No | |
| retryAfterSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations flag idempotentHint and destructiveHint, and the description goes well beyond them: it explains the dedupe branch (return existing link rather than duplicate), the update branch triggered by customDescription, and the verification-hold state for high-popularity or unverifiable artist links. These are hidden behavioral traits the agent could not infer from the schema. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Long but front-loaded and purposeful: the core action and the sibling alternative come first, followed by caveats, idempotency, and output guidance. Nearly every sentence carries actionable information, though the final answer-formatting instruction could sit more cleanly apart.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be described, and the description still adds the key post-call guidance (lead with public URL, don't expose internal IDs). Behavioral edge cases are well covered; only the three undocumented parameters leave a gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the semantic load. It clarifies spotifyUrl (album/track/artist URL, playlists rejected) and customDescription (updates an existing link's public description), but format, clientRequestId, and userIntentSummary are left entirely undocumented. Partial compensation for a six-parameter schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (create one free Smart Link) and scopes the input types precisely: Spotify album/track URL, single starter release from an artist URL. It explicitly contrasts itself with dynamoi_create_smart_links_from_spotify_artist, so an agent can route between them without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the alternative tool for full-catalog/artist-hub cases, states exclusions (playlist URLs unsupported, no paid ad campaign), and covers a non-obvious use case (adding a missing release to an imported catalog). Clear when-to-use, when-not-to-use, and what to do instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dynamoi_create_smart_links_from_spotify_artistCreate Free Smart Links for Spotify ArtistAIdempotentInspect
Use this when the user gives a Spotify artist URL and wants Dynamoi to create, import, or refresh free Smart Links for the artist catalog and return the artist hub. If the signed-in user has no Dynamoi artist yet, omit artistId so Dynamoi can create the first artist from the Spotify artist profile. This starts the background catalog import so the user does not need to open the dashboard. Smart Links are free to create and manage. High-popularity or unverifiable artist catalog links may stay unpublished in verification hold until Dynamoi can verify the client relationship. This does not create a paid ad campaign. In the final answer, lead with the artist hub URL and current public Smart Link URLs; do not expose internal IDs unless asked.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | ||
| artistId | No | ||
| clientRequestId | No | ||
| spotifyArtistUrl | Yes | ||
| userIntentSummary | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| data | No | |
| kind | No | |
| field | No | |
| status | Yes | |
| draftId | No | |
| message | No | |
| retryable | No | |
| nextAction | No | |
| failureStage | No | |
| prerequisite | No | |
| screeningResult | No | |
| retryAfterSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses that a background catalog import is kicked off, that link creation/management is free, that high-popularity or unverifiable catalogs may sit in a verification hold, and that artistId can be omitted to auto-create the first artist. It also prescribes answer formatting and ID redaction, which is genuinely useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the trigger and the core behavior, then layers constraints and output guidance. It is on the long side at seven sentences, but each sentence carries a distinct piece of information, so little is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-param mutation tool with an output schema, the description covers the important non-obvious behavior (auto-creation, background import, verification hold, free tier) and need not restate return values since an output schema exists. The gap is parameter-level detail for format/clientRequestId/userIntentSummary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for 5 parameters, so the description must carry the load. It explains only artistId (omit to let Dynamoi create the first artist) and leaves format, clientRequestId, userIntentSummary, and spotifyArtistUrl undocumented in both schema and prose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('create, import, or refresh free Smart Links for the artist catalog') plus the concrete return object ('return the artist hub'). This is distinguishable from the singular sibling dynamoi_create_smart_link_from_spotify by its catalog-wide scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear trigger ('when the user gives a Spotify artist URL and wants ... Smart Links') and an explicit exclusion ('This does not create a paid ad campaign'), plus the omit-artistId condition. It stops short of telling the agent when to prefer the sibling single-link tool or whether a paid-campaign tool should be used instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dynamoi_get_account_overviewGet Account OverviewARead-onlyInspect
Use this when the user explicitly asks about the signed-in Dynamoi account itself, such as who is logged in, how many organizations or artists it can access, or whether account-level platform connections exist. Pass intent to match that explicit account question; it defaults to account_overview. Do not use this to confirm a specific Meta or YouTube onboarding attempt because this account-level state can span multiple artists; use dynamoi_get_platform_status for the target artist instead. Do not use this to enumerate artists one by one; use dynamoi_list_artists for that. Never use this to 'check context' before answering generic Instagram, lyrics, songwriting, or marketing-advice questions, even if Dynamoi is attached.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | ||
| intent | No | account_overview |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| data | No | |
| kind | No | |
| field | No | |
| status | Yes | |
| draftId | No | |
| message | No | |
| retryable | No | |
| nextAction | No | |
| failureStage | No | |
| prerequisite | No | |
| screeningResult | No | |
| retryAfterSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly and non-destructive behavior. The description adds useful context about the account-level scope and that state can span multiple artists, which goes beyond the annotations. No contradictions or hidden behaviors omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat long but each sentence adds value: purpose, usage, exclusions, and alternatives. It is front-loaded with the primary use case and structured logically. Could be slightly trimmed, but no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values are covered. The description covers purpose, when to use, when not to use, alternatives, and the intent parameter. Nothing essential for selecting and calling the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the intent parameter's purpose and default, and maps the intent values to example use cases. However, it does not explain the format parameter or elaborate on all enum values (e.g., artist_access_check). Partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: reporting on the signed-in Dynamoi account itself, including login, access counts, and platform connections. It distinguishes from siblings by explicitly naming what it is not for (platform status, listing artists), making it easy for an agent to differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use (explicit account question) and when-not-to-use scenarios, with named alternatives (dynamoi_get_platform_status, dynamoi_list_artists). Also warns against using it for generic context-checking. This is exemplary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dynamoi_get_artist_analyticsGet Artist AnalyticsARead-onlyInspect
Use this when the user wants artist-level performance across all campaigns, including 30-day rollups or daily breakdowns. Pass granularity=DAILY when the user asks for a daily breakdown. Pass format=summary when the user wants a written rollup, a strongest-campaign verdict, or a direct answer you can relay immediately. If this tool already returned the requested strongest-campaign comparison, stop and answer instead of calling more analytics tools. For one campaign's metrics, use dynamoi_get_campaign with includeAnalytics=true.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | ||
| artistId | Yes | ||
| dateRange | No | ||
| granularity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| data | No | |
| kind | No | |
| field | No | |
| status | Yes | |
| draftId | No | |
| message | No | |
| retryable | No | |
| nextAction | No | |
| failureStage | No | |
| prerequisite | No | |
| screeningResult | No | |
| retryAfterSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds useful behavioral detail: format=summary returns a written rollup or strongest-campaign verdict, and the tool should be treated as a terminal source for comparisons. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence carries operational value: the use case, two parameter-specific instructions, a stop rule, and an alternative tool. It is front-loaded with the primary purpose and avoids any filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core use case, key parameter choices, how to avoid redundant calls, and the alternative tool. With an output schema availableaiman, return structure is handled elsewhere. Some context about default date range and TOTAL granularity is implicit rather than explicit, but the overall guidance is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the semantics of format and granularity well ('Pass granularity=DAILY when...', 'Pass format=summary when...'), but offers no guidance on artistId or dateRange, which are required or meaningful parameters. This leaves a clear gap in parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: retrieving artist-level performance across all campaigns with rollups or daily breakdowns. It is distinct from sibling tools, especially by explicitly contrasting with dynamoi_get_campaign for single-campaign metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit when-to-use guidance ('when the user wants artist-level performance across all campaigns') and names a concrete alternative for a different scenario ('For one campaign's metrics, use dynamoi_get_campaign with includeAnalytics=true'). It also instructs when to stop calling further analytics tools, which is strong practical guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dynamoi_get_campaignGet CampaignARead-onlyInspect
Use this when the user wants full details for one campaign, including budget, targeting, platform status, and next actions. YouTube campaigns return youtubeStrategy and strategyGuide: read the guide's goal and judgeBy before interpreting results. Set includeAnalytics=true for paid delivery, includeChannelResults=true for observed YouTube channel results with paid and organic views (never attributed to the campaign), includeDeploymentStatus=true for delivery/deployment blockers, and includeCountries=true only when the full country list is needed. Do not use this for a campaign list; use dynamoi_list_campaigns instead. After a successful launch or campaign mutation, prefer format=summary when you need a follow-up read to relay the final answer.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | ||
| campaignId | Yes | ||
| includeAnalytics | No | ||
| includeCountries | No | ||
| analyticsDateRange | No | ||
| analyticsGranularity | No | ||
| includeChannelResults | No | ||
| includeDeploymentStatus | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| data | No | |
| kind | No | |
| field | No | |
| status | Yes | |
| draftId | No | |
| message | No | |
| retryable | No | |
| nextAction | No | |
| failureStage | No | |
| prerequisite | No | |
| screeningResult | No | |
| retryAfterSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered; the description adds real behavioral context beyond that — YouTube campaigns return youtubeStrategy/strategyGuide that must be interpreted via goal and judgeBy, and channel results are 'never attributed to the campaign'. It stops short of stating auth needs, latency, or rate limits, so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose and the list_campaigns exclusion, then packs per-flag guidance into a single dense sentence. Slightly run-on in the middle stretch, but every clause carries actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return-value documentation is unnecessary, and the description focuses correctly on behavior and flag selection. It covers the interpretation caveat and the post-mutation format=summary workflow, but says nothing about the analyticsDateRange/analyticsGranularity interaction, which is the one remaining blind spot for an 8-parameter call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 8 parameters, so the description must compensate and it does for roughly half: includeAnalytics, includeChannelResults, includeDeploymentStatus, includeCountries and format are each given triggering conditions. analyticsDateRange, analyticsGranularity, and campaignId receive no semantic explanation, leaving a real gap on the structured date/granularity inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('full details for one campaign') and enumerates the payload categories (budget, targeting, platform status, next actions). It also explicitly excludes the sibling use case ('Do not use this for a campaign list; use dynamoi_list_campaigns instead'), so an agent can distinguish it without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use conditions for each optional flag (includeAnalytics for paid delivery, includeChannelResults for observed channel results, includeDeploymentStatus for blockers, includeCountries 'only when the full country list is needed'), names the alternative for the list case, and advises format=summary after a launch or mutation. Nothing about routing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dynamoi_get_distribution_applicationCheck Distribution ApplicationARead-onlyInspect
Use this when the user asks whether an artist qualifies for Dynamoi music distribution, wants the five application requirements, or wants the status of an existing distribution application. It checks Spotify connection, at least 1,000 Spotify followers, at least 10,000 verified Soundcharts monthly listeners, connected Facebook Page plus Instagram professional identity, and a connected YouTube channel. Meeting all five requirements permits an application but never guarantees approval. When the connection tools are available, use purpose=distribution_identity for missing Meta or YouTube identity; otherwise tell the user: 'You can do this in the Dynamoi dashboard at https://dynamoi.com/dashboard.' Identity connections do not require advertising billing.
| Name | Required | Description | Default |
|---|---|---|---|
| artistId | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| data | No | |
| kind | No | |
| field | No | |
| status | Yes | |
| draftId | No | |
| message | No | |
| retryable | No | |
| nextAction | No | |
| failureStage | No | |
| prerequisite | No | |
| screeningResult | No | |
| retryAfterSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark read-only and non-destructive; the description adds meaningful behavioral context: meeting all five requirements only permits an application, never guarantees approval, and identity connections don't require advertising billing. It also prescribes the fallback for missing connections.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with use conditions, then lists criteria in a compact enumeration, then gives fallback instructions. Every sentence carries either selection guidance or behavioral caveats; nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a simple one-parameter schema and an output schema, so the description doesn't need return-value details. It covers triggers, criteria, approval caveat, missing-connection handling, and billing nuance, making it complete for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one required parameter, artistId, and the description consistently frames the operation as evaluating 'an artist', making the parameter's role clear without naming it. It doesn't add format details, but the schema's format/pattern fully covers validation, and no enum/choice ambiguity exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence names a specific action ('check whether an artist qualifies'), the exact resource (Dynamoi music distribution application), and three triggering user intents. It lists the five concrete criteria, which differentiates it from sibling apply_for_distribution and other status tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'Use this when...' and enumerates the three request types. It also tells the agent when to delegate missing identity connections to purpose=distribution_identity and gives the exact fallback message, so the agent knows when not to use this tool alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dynamoi_get_platform_statusGet Platform StatusARead-onlyInspect
Use this when the user wants to know whether Spotify, Meta, or YouTube are connected and what setup steps still block launches. When polling after a connection-start flow, pass the returned onboardingAttemptId and onboardingFlow so Dynamoi ops can correlate the browser step. Do not use this for detailed billing questions. Never use this to personalize generic Instagram or marketing-advice questions.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | ||
| artistId | Yes | ||
| onboardingFlow | No | ||
| onboardingAttemptId | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| data | No | |
| kind | No | |
| field | No | |
| status | Yes | |
| draftId | No | |
| message | No | |
| retryable | No | |
| nextAction | No | |
| failureStage | No | |
| prerequisite | No | |
| screeningResult | No | |
| retryAfterSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful context about the tool reporting setup blockers and about passing onboardingAttemptId/onboardingFlow when polling after a connection-start flow. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the primary use case, then polling parameter guidance, then clear exclusions. Every sentence earns its place with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, exclusions, and polling behavior, and an output schema exists so return values need not be explained. However, the required artistId parameter is left unexplained and format is not mentioned, which makes the definition incomplete for a 4-parameter tool with zero schema-level parameter descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains onboardingAttemptId and onboardingFlow, but it does not explain the required artistId parameter or the optional format parameter, both of which are undocumented in the schema. This is a significant gap for a required parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource and purpose: checking whether Spotify, Meta, or YouTube are connected and what setup steps block launches. It also differentiates the tool from billing and marketing-advice tasks, making its scope unambiguous among the sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides an explicit use condition ('Use this when...'), polling-specific guidance, and strong negative guidance ('Do not use for detailed billing questions', 'Never use this to personalize generic Instagram or marketing-advice questions'). This gives an agent clear boundaries even though it does not name a specific alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dynamoi_get_smart_linkGet Smart LinkARead-onlyInspect
Use this when the user wants full details for one free Smart Link, including release, Spotify URL, public play.dynamoi.com URL, current status, theme source, and next actions. Set includeAnalytics=true for visit/click analytics and includeArtistSettings=true for artist-level theme/pixel settings. In the final answer, lead with the public URL and do not expose internal IDs unless asked.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | ||
| artistId | No | ||
| dateRange | No | ||
| playLinkId | No | ||
| spotifyUrl | No | ||
| granularity | No | ||
| includeAnalytics | No | ||
| includeBreakdowns | No | ||
| includeArtistSettings | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| data | No | |
| kind | No | |
| field | No | |
| status | Yes | |
| draftId | No | |
| message | No | |
| retryable | No | |
| nextAction | No | |
| failureStage | No | |
| prerequisite | No | |
| screeningResult | No | |
| retryAfterSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context beyond annotations: it instructs the agent to lead with the public URL in the final answer and to avoid exposing internal IDs unless asked. It also clarifies that includeAnalytics and includeArtistSettings control optional data inclusion. It does not mention rate limits or pagination, but for a read-only single-resource tool this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, all information-dense and front-loaded. The first sentence states the tool's purpose and output categories; the second explains the two optional flags; the third gives output presentation guidance. No filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 9 parameters, 0 required, an output schema, and nested objects, so complexity is moderate. The description covers the tool's purpose, key optional flags, and output presentation. It does not explain several parameters (format, dateRange, granularity, includeBreakdowns, artistId) or how they interact, but the output schema and the tool's read-only nature reduce the risk of misuse. A 4 is appropriate; a 5 would require covering the remaining parameters or explicitly routing to siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for parameter meaning. It explicitly explains includeAnalytics and includeArtistSettings, which are otherwise bare booleans in the schema. It also names the resource being fetched (Smart Link) and the output categories, which helps infer playLinkId/spotifyUrl semantics. However, it does not explain format, dateRange, granularity, includeBreakdowns, or artistId, leaving several parameters under-documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('get'), a specific resource ('one free Smart Link'), and enumerates the exact detail categories returned (release, Spotify URL, public URL, status, theme source, next actions). It also distinguishes itself from siblings by focusing on a single Smart Link's full details, which is distinct from list_smart_links and create_smart_link tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description opens with 'Use this when the user wants full details for one free Smart Link', which gives clear context for when to invoke it. It also explains when to set includeAnalytics and includeArtistSettings. However, it does not explicitly state when NOT to use it or name alternative tools like list_smart_links or get_artist_analytics, so it misses the exclusion/alternative guidance that would earn a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dynamoi_get_youtube_channel_dataGet YouTube Channel DataARead-onlyInspect
Use this for data science on an artist's own connected YouTube channel: daily rows straight from the YouTube Analytics warehouse, paged. Pick one dataset: channel_daily (views, watch time, subscribers gained and lost, likes, shares, playlist starts, estimated revenue, ad revenue, gross revenue, monetized playbacks, CPM and playback-based CPM), video_daily (per-video metrics with titles; filter with videoIds), country_daily, traffic_source_daily, search_term_daily (YouTube search terms for the whole channel), subscribed_status_daily, device_daily, operating_system_daily, playback_location_daily, creator_content_type_daily, or video_catalog (video titles and publish dates). traffic_source_daily rows with source ADVERTISING carry trafficClass=paid and every other source carries trafficClass=organic, but that label only groups sources and is not organic proof: ad clicks that land in a playlist are credited mostly to PLAYLIST and SUBSCRIBER, so trafficClass=organic rows include ad sessions. Organic lift is growth in sources ads do not touch (YT_SEARCH, RELATED_VIDEO, browse features) or lift that persists after spend stops. Data is observed on the channel, not attributed to any campaign; compare periods yourself and use the campaigns block (dates, strategy, promoted videos) as context. YouTube data arrives about 2-3 days late and revenue can lag further: check coverage before comparing, and treat placeholderDays and missingDays as unknown, never zero. Not available yet: audience demographics, per-video traffic sources and per-video search terms. Needs a connected channel; a channel that must be reconnected is refused. Returns no ad spend. Before judging a campaign's strategy, read the strategyGuide from dynamoi_get_campaign. Page with nextCursor; format=summary returns only the summary and coverage.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| format | No | ||
| dataset | Yes | ||
| endDate | Yes | ||
| artistId | Yes | ||
| videoIds | No | ||
| startDate | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| data | No | |
| kind | No | |
| field | No | |
| status | Yes | |
| draftId | No | |
| message | No | |
| retryable | No | |
| nextAction | No | |
| failureStage | No | |
| prerequisite | No | |
| screeningResult | No | |
| retryAfterSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/destructive annotations, it discloses late-arriving data (2-3 days, revenue lags further), the meaning of placeholderDays and missingDays ('treat as unknown, never zero'), the refusal behavior for stale connections, that it returns no ad spend, paging via nextCursor, and the important trafficClass caveat that 'organic' includes ad sessions. This is rich operational context the annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and dataset list are front-loaded, and most sentences earn their place with non-obvious guidance. It is dense as a single block, and the multi-sentence trafficClass/organic discussion is long for a tool description, though the nuance is relevant to correct interpretation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description covers everything else an agent needs: dataset selection, filtering, paging, latency and coverage semantics, refusal conditions, and what the tool deliberately omits. Nothing material for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the load, and it largely does: it explains each of the 11 dataset enum values and the metrics they contain, the videoIds filter's applicability to video_daily, paging via cursor/nextCursor, and format=summary. It leaves limit, startDate/endDate semantics (inclusivity, timezone), and artistId unexplained, so it is strong but not fully compensating.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Get YouTube Channel Data'), scopes it to an artist's own connected YouTube channel, and states the shape of the result (daily rows from the YouTube Analytics warehouse, paged). It enumerates every dataset the tool can return, making it unmistakable against siblings like dynamoi_get_artist_analytics or dynamoi_get_campaign.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use ('for data science on an artist's own connected YouTube channel'), when-not ('Not available yet: audience demographics, per-video traffic sources and per-video search terms'), prerequisites ('Needs a connected channel; a channel that must be reconnected is refused'), and routing ('Before judging a campaign's strategy, read the strategyGuide from dynamoi_get_campaign'). It also tells the agent to compare periods itself rather than rely on attribution.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dynamoi_list_artistsList ArtistsARead-onlyInspect
Use this when the user wants to see which artists or YouTube channels they manage, along with billing status, active campaign count, and their role. Pass artistId when you need the full profile/readiness details for one artist instead of a roster page. Do not use this for campaign details; use dynamoi_list_campaigns or dynamoi_get_campaign. Never use this for generic social-media or marketing advice, including Instagram follower-growth questions, unless the user explicitly asked about their Dynamoi roster. If the result is empty, the user is brand-new — do not stop with 'no records found'; route through dynamoi_get_account_overview.recommendedNextActions.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| format | No | ||
| artistId | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| data | No | |
| kind | No | |
| field | No | |
| status | Yes | |
| draftId | No | |
| message | No | |
| retryable | No | |
| nextAction | No | |
| failureStage | No | |
| prerequisite | No | |
| screeningResult | No | |
| retryAfterSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/destructive annotations, the description discloses the result payload, the roster-vs-detail behavior triggered by artistId, and the special meaning of an empty result ('user is brand-new... route through dynamoi_get_account_overview.recommendedNextActions'). This is behavior an agent could not infer from annotations or schema alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The main use case is front-loaded, and each subsequent sentence earns its place: the artistId nuance, the campaign exclusion, the generic-advice exclusion, and the empty-result routing. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter optional-input listing tool, the description covers what the tool is for, what the output signals, how to get single-artist detail, and what to do on empty results. The output schema exists and the annotations cover safety, so nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description compensates only for artistId ('Pass artistId when you need the full profile/readiness details'). limit, cursor, and format receive no semantics in the description, so the agent must infer their meaning from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb/resource pairing: 'see which artists or YouTube channels they manage' and enumerates the roster fields (billing status, active campaign count, role). It also distinguishes the roster call from the single-artist profile call via artistId, which makes it easy to tell apart from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit 'use this when' conditions and explicit exclusions: 'Do not use this for campaign details; use dynamoi_list_campaigns or dynamoi_get_campaign.' It even states the empty-result routing to dynamoi_get_account_overview, leaving no ambiguity about when this tool is the right call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dynamoi_list_campaignsList CampaignsARead-onlyInspect
Use this when the user wants to browse campaigns for one artist, optionally filtered by type or status. Do not use this for a single campaign deep dive; use dynamoi_get_campaign for that. Never use this to personalize generic marketing advice. If the user has no artists yet, do not call this — route via dynamoi_get_account_overview first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| format | No | ||
| status | No | ||
| artistId | Yes | ||
| campaignType | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| data | No | |
| kind | No | |
| field | No | |
| status | Yes | |
| draftId | No | |
| message | No | |
| retryable | No | |
| nextAction | No | |
| failureStage | No | |
| prerequisite | No | |
| screeningResult | No | |
| retryAfterSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds little beyond that, only mentioning 'browse' which aligns with read-only behavior. No additional context like rate limits or side effects is given, but the annotations carry the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero waste, front-loaded with the primary use case and followed by clear exclusions. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers when to use, exclusions, and routing. An output schema exists so return format is handled. It does not mention pagination behavior explicitly, but given the cursor parameter and typical list semantics, the description is sufficiently complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It hints at 'filtered by type or status' covering campaignType and status, and 'for one artist' for artistId, but does not explain limit, cursor, or format semantics. The enums in the schema provide some meaning, but the description does not elaborate on the summary/json format or pagination.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'browse' with resource 'campaigns' for one artist, and explicitly distinguishes from dynamoi_get_campaign for a deep dive. This directly differentiates it from its sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use (browse campaigns, optionally filtered) and when-not-to-use (single campaign deep dive → dynamoi_get_campaign, personalizing marketing advice, and routing via get_account_overview when no artists). This leaves no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dynamoi_list_smart_linksList Smart LinksARead-onlyInspect
Use this when the user wants to list free Smart Links for one artist, including release title, public URL, publish state, claim state, render state, and theme. Do not use this for paid campaign lists; use dynamoi_list_campaigns for campaigns. In the final answer, show public URLs and avoid internal IDs unless asked. If empty for an artist with connected Spotify, suggest dynamoi_create_smart_links_from_spotify_artist for catalog import or dynamoi_create_smart_link_from_spotify for one release instead of stopping at 'no Smart Links yet'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| cursor | No | ||
| format | No | ||
| artistId | Yes | ||
| claimStatus | No | ||
| renderState | No | ||
| publishState | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| data | No | |
| kind | No | |
| field | No | |
| status | Yes | |
| draftId | No | |
| message | No | |
| retryable | No | |
| nextAction | No | |
| failureStage | No | |
| prerequisite | No | |
| screeningResult | No | |
| retryAfterSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint=false, so safety is covered. The description adds real context beyond that: what the result contains, how to present it (public URLs over internal IDs), and what to suggest when the list is empty for a Spotify-connected artist. It stops short of describing pagination or filter behavior, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each doing work: use case first, exclusion second, output/fallback guidance third. Dense but front-loaded and free of filler, though the final sentence is long and could be split.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not explain return values, and annotations cover safety; the usage, exclusion, formatting and empty-result guidance make it callable. The residual gap is the unexplained filter/query/cursor parameters, which no structured field documents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 8 parameters, so the description must carry the load — and it does not mention limit, query, cursor, format, or any of the four filter enums (claimStatus, renderState, publishState). The field list it does give loosely maps to filterable output rather than input semantics, so an agent has no guidance on narrowing results.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (list free Smart Links) plus the scope (one artist) and enumerates the returned fields. It explicitly disambiguates from dynamoi_list_campaigns, so an agent can route correctly without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use ('user wants to list free Smart Links for one artist'), when-not ('Do not use this for paid campaign lists'), named alternative (dynamoi_list_campaigns), and even fallback actions on an empty result. Nothing about routing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dynamoi_preview_smart_link_themesPreview Smart Link ThemesARead-onlyInspect
Use this when the user asks what Dynamoi Smart Link pages can look like, wants to compare Smart Link themes, or asks to preview the available themes before creating or updating a free Smart Link. This is a read-only visual preview and does not create, publish, update, or promote a Smart Link.
| Name | Required | Description | Default |
|---|---|---|---|
| artistName | No | ||
| releaseTitle | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| data | No | |
| kind | No | |
| field | No | |
| status | Yes | |
| draftId | No | |
| message | No | |
| retryable | No | |
| nextAction | No | |
| failureStage | No | |
| prerequisite | No | |
| screeningResult | No | |
| retryAfterSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds value by explicitly stating it is a 'read-only visual preview' and enumerating the operations it avoids (create, publish, update, promote). This clarifies the non-mutating behavior beyond the generic annotation flags, though it doesn't add details like return format or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the usage trigger and immediately clarifying the read-only nature. Every sentence earns its place and there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers usage intent and behavioral exclusions well, and the output schema handles return values. However, it completely omits the optional parameters, which is a notable gap for a tool that accepts artistName and releaseTitle—an agent might not know it can customize the preview or whether arguments are needed. This prevents the description from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never mentions artistName or releaseTitle. The agent cannot infer whether these parameters are needed, how they affect the preview, or whether they customize the theme preview with specific content. With no schema descriptions and no description compensation, the parameters are effectively unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (preview) and resource (Smart Link themes), and clearly distinguishes it from sibling create/update tools by saying it 'does not create, publish, update, or promote a Smart Link.' This makes the tool's purpose unmistakable even without inspecting the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly gives three when-to-use triggers: user asks what Smart Link pages can look like, wants to compare themes, or asks to preview themes before creating/updating. It also states what the tool does not do, effectively excluding the mutation siblings. This leaves no ambiguity about when to call it over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dynamoi_searchSearch DynamoiARead-onlyInspect
Use this when the user mentions an artist, release, campaign, or smart link but you do not yet know the exact record to inspect. Do not use this for analytics summaries or billing questions once you already know the target record. If the result is empty for a brand-new user (no artists yet), do not respond 'no records found' as a terminal answer — instead suggest creating their first artist hub via dynamoi_create_smart_links_from_spotify_artist.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| limit | No | ||
| query | No | ||
| cursor | No | ||
| format | No | ||
| artistId | No | ||
| includeArchived | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| data | No | |
| kind | No | |
| field | No | |
| status | Yes | |
| draftId | No | |
| message | No | |
| retryable | No | |
| nextAction | No | |
| failureStage | No | |
| prerequisite | No | |
| screeningResult | No | |
| retryAfterSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description is not burdened with the safety profile. It adds useful behavioral context: empty results for brand-new users should not be treated as terminal, and the agent should instead suggest creating the first artist hub. This goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the primary usage condition, followed by an exclusion and a useful edge-case behavior. It contains minimal fluff, though it could be slightly tighter by moving the empty-result handling into a separate note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with no schema descriptions, the description is incomplete: it explains when to call the tool and what to do on empty results, but not how to shape the search (e.g., which parameters to combine, what scope artistId imposes, or how format changes the result). The output schema exists, so return-value details are not required, but parameter usage guidance is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for undocumented parameters, but it does not. It refers broadly to searching by artist/release/campaign/smart link, which loosely maps to 'query' or 'type', but gives no guidance on limit, cursor, format, artistId, or includeArchived. The 'release' mention also conflicts with the missing 'release' enum value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('search') and a clear goal: finding the exact record to inspect when the user mentions an artist, release, campaign, or smart link. It differentiates from sibling get/list tools by focusing on the pre-identification stage, though the mention of 'release' is slightly inconsistent with the schema's type enum (artist, campaign, smartlink).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance ('when... you do not yet know the exact record to inspect') and explicit when-not-to-use guidance ('Do not use this for analytics summaries or billing questions once you already know the target record'). It also names a concrete follow-up action for an empty result, which is strong usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dynamoi_update_smart_linkUpdate Smart LinkADestructiveIdempotentInspect
Use this when the user wants to change one Smart Link's public description or update artist-level Smart Link theme/pixel settings. Set action to update_description or update_artist_settings. Public availability is artist-wide in the dashboard; this tool does not publish or unpublish individual links. Theme-only updates switch instantly; description or pixel changes may queue background rendering.
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | ||
| action | Yes | ||
| artistId | No | ||
| playLinkId | No | ||
| metaPixelId | No | ||
| tiktokPixelId | No | ||
| clientRequestId | No | ||
| customDescription | No | ||
| expectedUpdatedAt | No | ||
| userIntentSummary | No | ||
| googleAdsConversionId | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| data | No | |
| kind | No | |
| field | No | |
| status | Yes | |
| draftId | No | |
| message | No | |
| retryable | No | |
| nextAction | No | |
| failureStage | No | |
| prerequisite | No | |
| screeningResult | No | |
| retryAfterSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=true. The description adds behavior annotations do not carry: theme-only updates apply instantly while description/pixel changes queue background rendering, and availability is artist-wide. It does not address reversibility or the optimistic-concurrency field, keeping it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with the trigger and the action-mode distinction, with no filler. Slightly compressed but every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, and the annotations cover safety. However, for an 11-parameter dual-mode mutation tool, the description omits the ID-to-action mapping and the expectedUpdatedAt concurrency semantics, leaving real gaps an agent must guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 11 parameters, so the description must carry the load. It maps meaning to action values and to theme/custom description/pixel settings, but leaves artistId vs playLinkId (which mode requires which), expectedUpdatedAt, clientRequestId, userIntentSummary, and googleAdsConversionId unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('change one Smart Link's public description or update artist-level Smart Link theme/pixel settings') and distinguishes the two modes via the action enum values. It is clearly separable from read siblings like dynamoi_get_smart_link, though it does not name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit when-to-use trigger ('when the user wants to change...') and a when-not constraint ('does not publish or unpublish individual links'), routing the agent away from a capability it might wrongly assume. It does not name an alternative sibling, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetchFetch (OpenAI Connectors)ARead-onlyInspect
OpenAI ChatGPT Deep Research / Connectors fetch contract. Given an id returned by search (formatted as 'artist:', 'campaign:', or 'smartlink:'), returns the full record for citation.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| data | No | |
| kind | No | |
| field | No | |
| status | Yes | |
| draftId | No | |
| message | No | |
| retryable | No | |
| nextAction | No | |
| failureStage | No | |
| prerequisite | No | |
| screeningResult | No | |
| retryAfterSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds that the result is a 'full record for citation,' but it does not disclose error behavior, rate limits, or what happens with an invalid or unknown id. With annotations covering mutation risks, this is an acceptable but not rich disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the id contract, but the opening clause 'OpenAI ChatGPT Deep Research / Connectors fetch contract' partially repeats the tool title and provides no additional actionable information. It is not wasteful enough to warrant a lower score, but it prevents a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only lookup tool, the description is complete: it tells the agent where to get the id, what formats are valid, and what kind of response to expect. The presence of an output schema and read-only annotations covers the remaining contextual needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines id as a string with length boundsaging and no description. The tool description compensates fully by specifying that the id comes from search and must be formatted as one of three prefixed patterns, which is essential metadata for constructing a valid call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: given an id, it 'returns the full record for citation.' It further specifies the accepted id formats ('artist:<uuid>', 'campaign:<uuid>', or 'smartlink:<uuid>'), which distinguishes it from the search tool and the more specific get_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The instruction 'Given an id returned by `search`' explains the correct input source and when this tool should be used. It does not explicitly enumerate when to prefer typed alternatives such as dynamoi_get_campaign or dynamoi_get_smart_link, but the id-format constraint provides strong implicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch (OpenAI Connectors)ARead-onlyInspect
OpenAI ChatGPT Deep Research / Connectors search contract. Returns matching Dynamoi artists, campaigns, and Smart Links so they can be cited in a deep-research session. For regular ChatGPT chat use dynamoi_search instead.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| data | No | |
| kind | No | |
| field | No | |
| status | Yes | |
| draftId | No | |
| message | No | |
| retryable | No | |
| nextAction | No | |
| failureStage | No | |
| prerequisite | No | |
| screeningResult | No | |
| retryAfterSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the connector/deep-research context and the types of results returned, but it does not disclose any additional behavioral traits such as matching behavior, pagination, or result limits. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the tool's purpose and quickly routing to the alternative. There is no filler or redundant restatement of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter), has an output schema, and has annotations covering the safety profile. The description covers purpose, result categories, and the sibling alternative; the only missing context is query semantics, which keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the single 'query' parameter. It implies the query is used to match artists, campaigns, and Smart Links, but it never explains what form the query should take, whether matching is fuzzy/exact, or whether it searches names or metadata. For a one-parameter tool this is a meaningful gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: a search contract that returns matching Dynamoi artists, campaigns, and Smart Links for citation in deep-research sessions. It also explicitly distinguishes itself from the dynamoi_search sibling, making the tool's role unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use context ('OpenAI ChatGPT Deep Research / Connectors search') and names the alternative for a different scenario ('For regular ChatGPT chat use dynamoi_search instead'). This leaves no room for an agent to guess which tool to invoke.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- Changed
dynamoi_create_smart_link_from_spotify8 fields changed- removed
Output schema / properties / data / properties / customDescription / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / data / properties / customDescription / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / data / properties / originalSpotifyUrl / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / data / properties / originalSpotifyUrl / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / data / properties / spotifyUrl / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / data / properties / spotifyUrl / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / data / properties / workflowWarning / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / data / properties / workflowWarning / typeAdded value: +[ + "string", + "null" +]
- Changed
dynamoi_create_smart_links_from_spotify_artist3 fields changed- changed
Output schema / properties / data / properties / initialSmartLink / anyOfPrevious 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" + } +] - removed
Output schema / properties / data / properties / smartLinks / items / properties / spotifyUrl / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / data / properties / smartLinks / items / properties / spotifyUrl / typeAdded value: +[ + "string", + "null" +]
- Added
dynamoi_get_youtube_channel_data - Changed
dynamoi_list_smart_links1 field changed- changed
Output schema / properties / data / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "nextCursor": { - "type": "string" - }, - "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" - }, - "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": "array" - } - }, - "required": [ - "smartLinks" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "nextCursor": { - "type": "string" - }, - "summary": { - "type": "string" - }, - "totalCount": { - "type": "number" - } - }, - "required": [ - "summary", - "totalCount" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "nextCursor": { + "type": "string" + }, + "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" + }, + "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" + } + }, + "required": [ + "smartLinks" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "nextCursor": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "totalCount": { + "type": "number" + } + }, + "required": [ + "summary", + "totalCount" + ], + "type": "object" + } +]
- Changed
dynamoi_update_smart_link3 fields changed- changed
Input schema / properties / expectedUpdatedAt / patternPrevious value: -"^(?:(?:\\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))$"New value: +"^(?:(?:\\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))$" - removed
Output schema / properties / data / properties / renderWarning / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / data / properties / renderWarning / typeAdded value: +[ + "string", + "null" +]
1 tool update
- Changed
dynamoi_get_campaign1 field changed- added
Input schema / properties / includeChannelResultsAdded value: +{ + "type": "boolean" +}
18 tool updates
- Changed
dynamoi_about3 fields changed- added
Output schema / properties / draftIdAdded 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" +} - added
Output schema / properties / failureStageAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / screeningResultAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +}
- Changed
dynamoi_apply_for_distribution3 fields changed- added
Output schema / properties / draftIdAdded 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" +} - added
Output schema / properties / failureStageAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / screeningResultAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +}
- Changed
dynamoi_create_smart_link_from_spotify3 fields changed- added
Output schema / properties / draftIdAdded 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" +} - added
Output schema / properties / failureStageAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / screeningResultAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +}
- Changed
dynamoi_create_smart_links_from_spotify_artist3 fields changed- added
Output schema / properties / draftIdAdded 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" +} - added
Output schema / properties / failureStageAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / screeningResultAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +}
- Changed
dynamoi_get_account_overview3 fields changed- added
Output schema / properties / draftIdAdded 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" +} - added
Output schema / properties / failureStageAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / screeningResultAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +}
- Changed
dynamoi_get_artist_analytics3 fields changed- added
Output schema / properties / draftIdAdded 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" +} - added
Output schema / properties / failureStageAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / screeningResultAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +}
- Changed
dynamoi_get_campaign3 fields changed- added
Output schema / properties / draftIdAdded 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" +} - added
Output schema / properties / failureStageAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / screeningResultAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +}
- Changed
dynamoi_get_distribution_application3 fields changed- added
Output schema / properties / draftIdAdded 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" +} - added
Output schema / properties / failureStageAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / screeningResultAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +}
- Changed
dynamoi_get_platform_status3 fields changed- added
Output schema / properties / draftIdAdded 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" +} - added
Output schema / properties / failureStageAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / screeningResultAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +}
- Changed
dynamoi_get_smart_link3 fields changed- added
Output schema / properties / draftIdAdded 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" +} - added
Output schema / properties / failureStageAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / screeningResultAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +}
- Changed
dynamoi_list_artists3 fields changed- added
Output schema / properties / draftIdAdded 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" +} - added
Output schema / properties / failureStageAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / screeningResultAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +}
- Changed
dynamoi_list_campaigns3 fields changed- added
Output schema / properties / draftIdAdded 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" +} - added
Output schema / properties / failureStageAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / screeningResultAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +}
- Changed
dynamoi_list_smart_links3 fields changed- added
Output schema / properties / draftIdAdded 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" +} - added
Output schema / properties / failureStageAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / screeningResultAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +}
- Changed
dynamoi_preview_smart_link_themes3 fields changed- added
Output schema / properties / draftIdAdded 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" +} - added
Output schema / properties / failureStageAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / screeningResultAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +}
- Changed
dynamoi_search3 fields changed- added
Output schema / properties / draftIdAdded 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" +} - added
Output schema / properties / failureStageAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / screeningResultAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +}
- Changed
dynamoi_update_smart_link3 fields changed- added
Output schema / properties / draftIdAdded 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" +} - added
Output schema / properties / failureStageAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / screeningResultAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +}
- Changed
fetch3 fields changed- added
Output schema / properties / draftIdAdded 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" +} - added
Output schema / properties / failureStageAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / screeningResultAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +}
- Changed
search3 fields changed- added
Output schema / properties / draftIdAdded 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" +} - added
Output schema / properties / failureStageAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / screeningResultAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +}
18 tool updates
- Added
dynamoi_about - Changed
dynamoi_apply_for_distribution2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_create_smart_link_from_spotify2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_create_smart_links_from_spotify_artist2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_get_account_overview4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / intent / defaultAdded value: +"account_overview" - removed
Input schema / requiredRemoved value: -[ - "intent" -] - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_get_artist_analytics2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_get_campaign2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_get_distribution_application2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_get_platform_status2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_get_smart_link2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_list_artists2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_list_campaigns2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_list_smart_links2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_preview_smart_link_themes2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_search2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_update_smart_link2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
fetch2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
search2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Output schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
17 tool updates
- Changed
dynamoi_apply_for_distribution2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Output schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_create_smart_link_from_spotify2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Output schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_create_smart_links_from_spotify_artist2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Output schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_get_account_overview2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Output schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_get_artist_analytics2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Output schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_get_campaign2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Output schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_get_distribution_application2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Output schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_get_platform_status2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Output schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_get_smart_link2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Output schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_list_artists2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Output schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_list_campaigns2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Output schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_list_smart_links2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Output schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_preview_smart_link_themes2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Output schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_search2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Output schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
dynamoi_update_smart_link2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Output schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
fetch2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Output schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
search2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Output schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
17 tool updates
- Changed
dynamoi_apply_for_distribution6 fields changed- added
Output schema / properties / codeAdded value: +{ + "enum": [ + "ACCOUNT_READ_ONLY", + "INVALID_SPOTIFY_SOURCE", + "CAPABILITY_REQUIRED", + "INSUFFICIENT_SCOPE", + "STATE_CONFLICT", + "QUOTE_CHANGED", + "RATE_LIMITED", + "OUTPUT_INVALID", + "UNKNOWN_EFFECT" + ], + "type": "string" +} - added
Output schema / properties / fieldAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / nextActionAdded 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" +} - added
Output schema / properties / prerequisiteAdded value: +{ + "maxLength": 240, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / retryAfterSecondsAdded value: +{ + "maximum": 86400, + "minimum": 0, + "type": "integer" +} - added
Output schema / properties / retryableAdded value: +{ + "type": "boolean" +}
- Changed
dynamoi_create_smart_link_from_spotify8 fields changed- added
Output schema / properties / codeAdded value: +{ + "enum": [ + "ACCOUNT_READ_ONLY", + "INVALID_SPOTIFY_SOURCE", + "CAPABILITY_REQUIRED", + "INSUFFICIENT_SCOPE", + "STATE_CONFLICT", + "QUOTE_CHANGED", + "RATE_LIMITED", + "OUTPUT_INVALID", + "UNKNOWN_EFFECT" + ], + "type": "string" +} - removed
Output schema / properties / data / properties / odesliStatusRemoved value: -{ - "enum": [ - "pending", - "resolved", - "failed" - ], - "type": "string" -} - changed
Output schema / properties / data / requiredPrevious value: -[ - "artistHubUrl", - "artistId", - "artistName", - "claimStatus", - "createdAt", - "id", - "isPublic", - "odesliStatus", - "publicUrl", - "publishState", - "releaseSlug", - "releaseTitle", - "releaseType", - "renderState", - "spotifyUrl", - "takedownStatus", - "theme", - "updatedAt", - "customDescription", - "nextActions", - "originalSpotifyUrl", - "summary", - "outcome", - "workflowWarning" -]New value: +[ + "artistHubUrl", + "artistId", + "artistName", + "claimStatus", + "createdAt", + "id", + "isPublic", + "publicUrl", + "publishState", + "releaseSlug", + "releaseTitle", + "releaseType", + "renderState", + "spotifyUrl", + "takedownStatus", + "theme", + "updatedAt", + "customDescription", + "nextActions", + "originalSpotifyUrl", + "summary", + "outcome", + "workflowWarning" +] - added
Output schema / properties / fieldAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / nextActionAdded 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" +} - added
Output schema / properties / prerequisiteAdded value: +{ + "maxLength": 240, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / retryAfterSecondsAdded value: +{ + "maximum": 86400, + "minimum": 0, + "type": "integer" +} - added
Output schema / properties / retryableAdded value: +{ + "type": "boolean" +}
- Changed
dynamoi_create_smart_links_from_spotify_artist9 fields changed- added
Output schema / properties / codeAdded value: +{ + "enum": [ + "ACCOUNT_READ_ONLY", + "INVALID_SPOTIFY_SOURCE", + "CAPABILITY_REQUIRED", + "INSUFFICIENT_SCOPE", + "STATE_CONFLICT", + "QUOTE_CHANGED", + "RATE_LIMITED", + "OUTPUT_INVALID", + "UNKNOWN_EFFECT" + ], + "type": "string" +} - changed
Output schema / properties / data / properties / initialSmartLink / anyOfPrevious 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" + } +] - removed
Output schema / properties / data / properties / smartLinks / items / properties / odesliStatusRemoved value: -{ - "enum": [ - "pending", - "resolved", - "failed" - ], - "type": "string" -} - changed
Output schema / properties / data / properties / smartLinks / items / requiredPrevious 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" +] - added
Output schema / properties / fieldAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / nextActionAdded 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" +} - added
Output schema / properties / prerequisiteAdded value: +{ + "maxLength": 240, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / retryAfterSecondsAdded value: +{ + "maximum": 86400, + "minimum": 0, + "type": "integer" +} - added
Output schema / properties / retryableAdded value: +{ + "type": "boolean" +}
- Changed
dynamoi_get_account_overview6 fields changed- added
Output schema / properties / codeAdded value: +{ + "enum": [ + "ACCOUNT_READ_ONLY", + "INVALID_SPOTIFY_SOURCE", + "CAPABILITY_REQUIRED", + "INSUFFICIENT_SCOPE", + "STATE_CONFLICT", + "QUOTE_CHANGED", + "RATE_LIMITED", + "OUTPUT_INVALID", + "UNKNOWN_EFFECT" + ], + "type": "string" +} - added
Output schema / properties / fieldAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / nextActionAdded 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" +} - added
Output schema / properties / prerequisiteAdded value: +{ + "maxLength": 240, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / retryAfterSecondsAdded value: +{ + "maximum": 86400, + "minimum": 0, + "type": "integer" +} - added
Output schema / properties / retryableAdded value: +{ + "type": "boolean" +}
- Changed
dynamoi_get_artist_analytics6 fields changed- added
Output schema / properties / codeAdded value: +{ + "enum": [ + "ACCOUNT_READ_ONLY", + "INVALID_SPOTIFY_SOURCE", + "CAPABILITY_REQUIRED", + "INSUFFICIENT_SCOPE", + "STATE_CONFLICT", + "QUOTE_CHANGED", + "RATE_LIMITED", + "OUTPUT_INVALID", + "UNKNOWN_EFFECT" + ], + "type": "string" +} - added
Output schema / properties / fieldAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / nextActionAdded 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" +} - added
Output schema / properties / prerequisiteAdded value: +{ + "maxLength": 240, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / retryAfterSecondsAdded value: +{ + "maximum": 86400, + "minimum": 0, + "type": "integer" +} - added
Output schema / properties / retryableAdded value: +{ + "type": "boolean" +}
- Changed
dynamoi_get_campaign6 fields changed- added
Output schema / properties / codeAdded value: +{ + "enum": [ + "ACCOUNT_READ_ONLY", + "INVALID_SPOTIFY_SOURCE", + "CAPABILITY_REQUIRED", + "INSUFFICIENT_SCOPE", + "STATE_CONFLICT", + "QUOTE_CHANGED", + "RATE_LIMITED", + "OUTPUT_INVALID", + "UNKNOWN_EFFECT" + ], + "type": "string" +} - added
Output schema / properties / fieldAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / nextActionAdded 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" +} - added
Output schema / properties / prerequisiteAdded value: +{ + "maxLength": 240, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / retryAfterSecondsAdded value: +{ + "maximum": 86400, + "minimum": 0, + "type": "integer" +} - added
Output schema / properties / retryableAdded value: +{ + "type": "boolean" +}
- Changed
dynamoi_get_distribution_application6 fields changed- added
Output schema / properties / codeAdded value: +{ + "enum": [ + "ACCOUNT_READ_ONLY", + "INVALID_SPOTIFY_SOURCE", + "CAPABILITY_REQUIRED", + "INSUFFICIENT_SCOPE", + "STATE_CONFLICT", + "QUOTE_CHANGED", + "RATE_LIMITED", + "OUTPUT_INVALID", + "UNKNOWN_EFFECT" + ], + "type": "string" +} - added
Output schema / properties / fieldAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / nextActionAdded 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" +} - added
Output schema / properties / prerequisiteAdded value: +{ + "maxLength": 240, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / retryAfterSecondsAdded value: +{ + "maximum": 86400, + "minimum": 0, + "type": "integer" +} - added
Output schema / properties / retryableAdded value: +{ + "type": "boolean" +}
- Changed
dynamoi_get_platform_status6 fields changed- added
Output schema / properties / codeAdded value: +{ + "enum": [ + "ACCOUNT_READ_ONLY", + "INVALID_SPOTIFY_SOURCE", + "CAPABILITY_REQUIRED", + "INSUFFICIENT_SCOPE", + "STATE_CONFLICT", + "QUOTE_CHANGED", + "RATE_LIMITED", + "OUTPUT_INVALID", + "UNKNOWN_EFFECT" + ], + "type": "string" +} - added
Output schema / properties / fieldAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / nextActionAdded 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" +} - added
Output schema / properties / prerequisiteAdded value: +{ + "maxLength": 240, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / retryAfterSecondsAdded value: +{ + "maximum": 86400, + "minimum": 0, + "type": "integer" +} - added
Output schema / properties / retryableAdded value: +{ + "type": "boolean" +}
- Changed
dynamoi_get_smart_link6 fields changed- added
Output schema / properties / codeAdded value: +{ + "enum": [ + "ACCOUNT_READ_ONLY", + "INVALID_SPOTIFY_SOURCE", + "CAPABILITY_REQUIRED", + "INSUFFICIENT_SCOPE", + "STATE_CONFLICT", + "QUOTE_CHANGED", + "RATE_LIMITED", + "OUTPUT_INVALID", + "UNKNOWN_EFFECT" + ], + "type": "string" +} - added
Output schema / properties / fieldAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / nextActionAdded 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" +} - added
Output schema / properties / prerequisiteAdded value: +{ + "maxLength": 240, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / retryAfterSecondsAdded value: +{ + "maximum": 86400, + "minimum": 0, + "type": "integer" +} - added
Output schema / properties / retryableAdded value: +{ + "type": "boolean" +}
- Changed
dynamoi_list_artists6 fields changed- added
Output schema / properties / codeAdded value: +{ + "enum": [ + "ACCOUNT_READ_ONLY", + "INVALID_SPOTIFY_SOURCE", + "CAPABILITY_REQUIRED", + "INSUFFICIENT_SCOPE", + "STATE_CONFLICT", + "QUOTE_CHANGED", + "RATE_LIMITED", + "OUTPUT_INVALID", + "UNKNOWN_EFFECT" + ], + "type": "string" +} - added
Output schema / properties / fieldAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / nextActionAdded 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" +} - added
Output schema / properties / prerequisiteAdded value: +{ + "maxLength": 240, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / retryAfterSecondsAdded value: +{ + "maximum": 86400, + "minimum": 0, + "type": "integer" +} - added
Output schema / properties / retryableAdded value: +{ + "type": "boolean" +}
- Changed
dynamoi_list_campaigns6 fields changed- added
Output schema / properties / codeAdded value: +{ + "enum": [ + "ACCOUNT_READ_ONLY", + "INVALID_SPOTIFY_SOURCE", + "CAPABILITY_REQUIRED", + "INSUFFICIENT_SCOPE", + "STATE_CONFLICT", + "QUOTE_CHANGED", + "RATE_LIMITED", + "OUTPUT_INVALID", + "UNKNOWN_EFFECT" + ], + "type": "string" +} - added
Output schema / properties / fieldAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / nextActionAdded 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" +} - added
Output schema / properties / prerequisiteAdded value: +{ + "maxLength": 240, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / retryAfterSecondsAdded value: +{ + "maximum": 86400, + "minimum": 0, + "type": "integer" +} - added
Output schema / properties / retryableAdded value: +{ + "type": "boolean" +}
- Changed
dynamoi_list_smart_links7 fields changed- added
Output schema / properties / codeAdded value: +{ + "enum": [ + "ACCOUNT_READ_ONLY", + "INVALID_SPOTIFY_SOURCE", + "CAPABILITY_REQUIRED", + "INSUFFICIENT_SCOPE", + "STATE_CONFLICT", + "QUOTE_CHANGED", + "RATE_LIMITED", + "OUTPUT_INVALID", + "UNKNOWN_EFFECT" + ], + "type": "string" +} - changed
Output schema / properties / data / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "nextCursor": { - "type": "string" - }, - "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" - } - }, - "required": [ - "smartLinks" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "nextCursor": { - "type": "string" - }, - "summary": { - "type": "string" - }, - "totalCount": { - "type": "number" - } - }, - "required": [ - "summary", - "totalCount" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "nextCursor": { + "type": "string" + }, + "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" + }, + "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": "array" + } + }, + "required": [ + "smartLinks" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "nextCursor": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "totalCount": { + "type": "number" + } + }, + "required": [ + "summary", + "totalCount" + ], + "type": "object" + } +] - added
Output schema / properties / fieldAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / nextActionAdded 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" +} - added
Output schema / properties / prerequisiteAdded value: +{ + "maxLength": 240, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / retryAfterSecondsAdded value: +{ + "maximum": 86400, + "minimum": 0, + "type": "integer" +} - added
Output schema / properties / retryableAdded value: +{ + "type": "boolean" +}
- Changed
dynamoi_preview_smart_link_themes6 fields changed- added
Output schema / properties / codeAdded value: +{ + "enum": [ + "ACCOUNT_READ_ONLY", + "INVALID_SPOTIFY_SOURCE", + "CAPABILITY_REQUIRED", + "INSUFFICIENT_SCOPE", + "STATE_CONFLICT", + "QUOTE_CHANGED", + "RATE_LIMITED", + "OUTPUT_INVALID", + "UNKNOWN_EFFECT" + ], + "type": "string" +} - added
Output schema / properties / fieldAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / nextActionAdded 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" +} - added
Output schema / properties / prerequisiteAdded value: +{ + "maxLength": 240, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / retryAfterSecondsAdded value: +{ + "maximum": 86400, + "minimum": 0, + "type": "integer" +} - added
Output schema / properties / retryableAdded value: +{ + "type": "boolean" +}
- Changed
dynamoi_search6 fields changed- added
Output schema / properties / codeAdded value: +{ + "enum": [ + "ACCOUNT_READ_ONLY", + "INVALID_SPOTIFY_SOURCE", + "CAPABILITY_REQUIRED", + "INSUFFICIENT_SCOPE", + "STATE_CONFLICT", + "QUOTE_CHANGED", + "RATE_LIMITED", + "OUTPUT_INVALID", + "UNKNOWN_EFFECT" + ], + "type": "string" +} - added
Output schema / properties / fieldAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / nextActionAdded 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" +} - added
Output schema / properties / prerequisiteAdded value: +{ + "maxLength": 240, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / retryAfterSecondsAdded value: +{ + "maximum": 86400, + "minimum": 0, + "type": "integer" +} - added
Output schema / properties / retryableAdded value: +{ + "type": "boolean" +}
- Changed
dynamoi_update_smart_link6 fields changed- added
Output schema / properties / codeAdded value: +{ + "enum": [ + "ACCOUNT_READ_ONLY", + "INVALID_SPOTIFY_SOURCE", + "CAPABILITY_REQUIRED", + "INSUFFICIENT_SCOPE", + "STATE_CONFLICT", + "QUOTE_CHANGED", + "RATE_LIMITED", + "OUTPUT_INVALID", + "UNKNOWN_EFFECT" + ], + "type": "string" +} - added
Output schema / properties / fieldAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / nextActionAdded 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" +} - added
Output schema / properties / prerequisiteAdded value: +{ + "maxLength": 240, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / retryAfterSecondsAdded value: +{ + "maximum": 86400, + "minimum": 0, + "type": "integer" +} - added
Output schema / properties / retryableAdded value: +{ + "type": "boolean" +}
- Changed
fetch6 fields changed- added
Output schema / properties / codeAdded value: +{ + "enum": [ + "ACCOUNT_READ_ONLY", + "INVALID_SPOTIFY_SOURCE", + "CAPABILITY_REQUIRED", + "INSUFFICIENT_SCOPE", + "STATE_CONFLICT", + "QUOTE_CHANGED", + "RATE_LIMITED", + "OUTPUT_INVALID", + "UNKNOWN_EFFECT" + ], + "type": "string" +} - added
Output schema / properties / fieldAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / nextActionAdded 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" +} - added
Output schema / properties / prerequisiteAdded value: +{ + "maxLength": 240, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / retryAfterSecondsAdded value: +{ + "maximum": 86400, + "minimum": 0, + "type": "integer" +} - added
Output schema / properties / retryableAdded value: +{ + "type": "boolean" +}
- Changed
search6 fields changed- added
Output schema / properties / codeAdded value: +{ + "enum": [ + "ACCOUNT_READ_ONLY", + "INVALID_SPOTIFY_SOURCE", + "CAPABILITY_REQUIRED", + "INSUFFICIENT_SCOPE", + "STATE_CONFLICT", + "QUOTE_CHANGED", + "RATE_LIMITED", + "OUTPUT_INVALID", + "UNKNOWN_EFFECT" + ], + "type": "string" +} - added
Output schema / properties / fieldAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / nextActionAdded 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" +} - added
Output schema / properties / prerequisiteAdded value: +{ + "maxLength": 240, + "minLength": 1, + "type": "string" +} - added
Output schema / properties / retryAfterSecondsAdded value: +{ + "maximum": 86400, + "minimum": 0, + "type": "integer" +} - added
Output schema / properties / retryableAdded value: +{ + "type": "boolean" +}
20 tool updates
- Changed
dynamoi_get_account_overview9 fields changed- changed
Output schema / additionalPropertiesPrevious value: -falseNew value: +{} - added
Output schema / properties / data / properties / artistCountAdded value: +{ + "type": "number" +} - added
Output schema / properties / data / properties / artistsAdded value: +{ + "additionalProperties": false, + "properties": { + "count": { + "type": "number" + }, + "summaries": { + "items": { + "additionalProperties": {}, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "publicUrl": { + "type": "string" + }, + "summary": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "count", + "summaries" + ], + "type": "object" +} - added
Output schema / properties / data / properties / organizationCountAdded value: +{ + "type": "number" +} - added
Output schema / properties / data / properties / recommendedNextActionsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / data / properties / stateAdded value: +{ + "additionalProperties": {}, + "properties": {}, + "type": "object" +} - added
Output schema / properties / data / properties / summaryAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / userAdded value: +{ + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" +} - removed
Output schema / properties / kind / enumRemoved value: -[ - "validation", - "business", - "platform", - "unknown" -]
- Changed
dynamoi_get_artist_analytics6 fields changed- changed
Output schema / additionalPropertiesPrevious value: -falseNew value: +{} - added
Output schema / properties / data / properties / artistIdAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / artistNameAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / dateRangeAdded value: +{ + "additionalProperties": false, + "properties": { + "end": { + "type": "string" + }, + "start": { + "type": "string" + } + }, + "required": [ + "end", + "start" + ], + "type": "object" +} - added
Output schema / properties / data / properties / summaryAdded value: +{ + "type": "string" +} - removed
Output schema / properties / kind / enumRemoved value: -[ - "validation", - "business", - "platform", - "unknown" -]
- Removed
dynamoi_get_billing - Changed
dynamoi_get_campaign10 fields changed- changed
Output schema / additionalPropertiesPrevious value: -falseNew value: +{} - added
Output schema / properties / data / properties / artistIdAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / contentTitleAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / idAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / nameAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / nextActionsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / data / properties / publicUrlAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / statusAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / summaryAdded value: +{ + "type": "string" +} - removed
Output schema / properties / kind / enumRemoved value: -[ - "validation", - "business", - "platform", - "unknown" -]
- Removed
dynamoi_get_campaign_readiness - Changed
dynamoi_get_platform_status6 fields changed- changed
Output schema / additionalPropertiesPrevious value: -falseNew value: +{} - added
Output schema / properties / data / properties / artistIdAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / artistNameAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / platformsAdded value: +{ + "additionalProperties": {}, + "properties": {}, + "type": "object" +} - added
Output schema / properties / data / properties / summaryAdded value: +{ + "type": "string" +} - removed
Output schema / properties / kind / enumRemoved value: -[ - "validation", - "business", - "platform", - "unknown" -]
- Changed
dynamoi_get_smart_link12 fields changed- changed
Output schema / additionalPropertiesPrevious value: -falseNew value: +{} - added
Output schema / properties / data / properties / artistIdAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / artistNameAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / idAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / nameAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / nextActionsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / data / properties / publicUrlAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / publishStateAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / releaseTitleAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / summaryAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / themeAdded value: +{ + "type": "string" +} - removed
Output schema / properties / kind / enumRemoved value: -[ - "validation", - "business", - "platform", - "unknown" -]
- Removed
dynamoi_launch_campaign - Changed
dynamoi_list_artists6 fields changed- changed
Output schema / additionalPropertiesPrevious value: -falseNew value: +{} - added
Output schema / properties / data / properties / artistsAdded value: +{ + "items": { + "additionalProperties": {}, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "publicUrl": { + "type": "string" + }, + "summary": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" +} - added
Output schema / properties / data / properties / nextCursorAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / summaryAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / totalCountAdded value: +{ + "type": "number" +} - removed
Output schema / properties / kind / enumRemoved value: -[ - "validation", - "business", - "platform", - "unknown" -]
- Removed
dynamoi_list_available_countries - Changed
dynamoi_list_campaigns6 fields changed- changed
Output schema / additionalPropertiesPrevious value: -falseNew value: +{} - added
Output schema / properties / data / properties / campaignsAdded value: +{ + "items": { + "additionalProperties": {}, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "publicUrl": { + "type": "string" + }, + "summary": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" +} - added
Output schema / properties / data / properties / nextCursorAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / summaryAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / totalCountAdded value: +{ + "type": "number" +} - removed
Output schema / properties / kind / enumRemoved value: -[ - "validation", - "business", - "platform", - "unknown" -]
- Removed
dynamoi_list_media_assets - Changed
dynamoi_preview_smart_link_themes6 fields changed- changed
Output schema / additionalPropertiesPrevious value: -falseNew value: +{} - added
Output schema / properties / data / properties / artistNameAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / releaseTitleAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / themesAdded value: +{ + "items": { + "additionalProperties": {}, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "publicUrl": { + "type": "string" + }, + "summary": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" +} - added
Output schema / properties / data / requiredAdded value: +[ + "artistName", + "releaseTitle", + "themes" +] - removed
Output schema / properties / kind / enumRemoved value: -[ - "validation", - "business", - "platform", - "unknown" -]
- Changed
dynamoi_search6 fields changed- changed
Output schema / additionalPropertiesPrevious value: -falseNew value: +{} - added
Output schema / properties / data / properties / nextCursorAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / resultsAdded value: +{ + "items": { + "additionalProperties": {}, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "publicUrl": { + "type": "string" + }, + "summary": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" +} - added
Output schema / properties / data / properties / summaryAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / totalCountAdded value: +{ + "type": "number" +} - removed
Output schema / properties / kind / enumRemoved value: -[ - "validation", - "business", - "platform", - "unknown" -]
- Removed
dynamoi_start_meta_connection - Removed
dynamoi_start_youtube_channel_link - Removed
dynamoi_update_campaign - Changed
dynamoi_update_smart_link11 fields changed- changed
Output schema / additionalPropertiesPrevious value: -falseNew value: +{} - added
Output schema / properties / data / properties / artistIdAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / artistNameAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / defaultThemeAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / idAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / nameAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / publicUrlAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / renderQueuedCountAdded value: +{ + "type": "number" +} - added
Output schema / properties / data / properties / renderWarningAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / data / properties / summaryAdded value: +{ + "type": "string" +} - removed
Output schema / properties / kind / enumRemoved value: -[ - "validation", - "business", - "platform", - "unknown" -]
- Changed
fetch6 fields changed- changed
Output schema / additionalPropertiesPrevious value: -falseNew value: +{} - added
Output schema / properties / data / properties / idAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / nameAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / publicUrlAdded value: +{ + "type": "string" +} - added
Output schema / properties / data / properties / summaryAdded value: +{ + "type": "string" +} - removed
Output schema / properties / kind / enumRemoved value: -[ - "validation", - "business", - "platform", - "unknown" -]
- Changed
search3 fields changed- changed
Output schema / additionalPropertiesPrevious value: -falseNew value: +{} - added
Output schema / properties / data / properties / resultsAdded value: +{ + "items": { + "additionalProperties": {}, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "publicUrl": { + "type": "string" + }, + "summary": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" +} - removed
Output schema / properties / kind / enumRemoved value: -[ - "validation", - "business", - "platform", - "unknown" -]
4 tool updates
- Added
dynamoi_apply_for_distribution - Added
dynamoi_get_distribution_application - Changed
dynamoi_start_meta_connection1 field changed- added
Input schema / properties / purposeAdded value: +{ + "enum": [ + "advertising", + "distribution_identity" + ], + "type": "string" +}
- Changed
dynamoi_start_youtube_channel_link1 field changed- added
Input schema / properties / purposeAdded value: +{ + "enum": [ + "advertising", + "distribution_identity" + ], + "type": "string" +}
23 tool updates
- Changed
dynamoi_create_smart_link_from_spotify5 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded value: +{ + "additionalProperties": false, + "properties": { + "actionRequired": { + "items": { + "type": "string" + }, + "type": "array" + }, + "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" + }, + "customDescription": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "id": { + "type": "string" + }, + "isPublic": { + "type": "boolean" + }, + "localizedPublicUrls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "nextActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "odesliStatus": { + "enum": [ + "pending", + "resolved", + "failed" + ], + "type": "string" + }, + "originalSpotifyUrl": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "outcome": { + "enum": [ + "created", + "existing" + ], + "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" + } + ] + }, + "summary": { + "type": "string" + }, + "takedownStatus": { + "enum": [ + "none", + "active", + "resolved" + ], + "type": "string" + }, + "theme": { + "enum": [ + "classic", + "brutalist", + "aurora", + "cinematic" + ], + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "warnings": { + "items": { + "type": "string" + }, + "type": "array" + }, + "workflowWarning": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "artistHubUrl", + "artistId", + "artistName", + "claimStatus", + "createdAt", + "id", + "isPublic", + "odesliStatus", + "publicUrl", + "publishState", + "releaseSlug", + "releaseTitle", + "releaseType", + "renderState", + "spotifyUrl", + "takedownStatus", + "theme", + "updatedAt", + "customDescription", + "nextActions", + "originalSpotifyUrl", + "summary", + "outcome", + "workflowWarning" + ], + "type": "object" +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +} - changed
Output schema / properties / status / enumPrevious value: -[ - "success", - "partial_success", - "error" -]New value: +[ + "success", + "error" +]
- Changed
dynamoi_create_smart_links_from_spotify_artist5 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded 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" +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +} - changed
Output schema / properties / status / enumPrevious value: -[ - "success", - "partial_success", - "error" -]New value: +[ + "success", + "error" +]
- Changed
dynamoi_get_account_overview4 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded value: +{ + "additionalProperties": {}, + "properties": {}, + "type": "object" +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +}
- Changed
dynamoi_get_artist_analytics4 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded value: +{ + "additionalProperties": {}, + "properties": {}, + "type": "object" +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +}
- Changed
dynamoi_get_billing4 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded value: +{ + "additionalProperties": {}, + "properties": {}, + "type": "object" +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +}
- Changed
dynamoi_get_campaign4 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded value: +{ + "additionalProperties": {}, + "properties": {}, + "type": "object" +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +}
- Changed
dynamoi_get_campaign_readiness5 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "artistId": { + "type": "string" + }, + "artistName": { + "type": "string" + }, + "blockingIssues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "campaignType": { + "enum": [ + "SMART_CAMPAIGN", + "YOUTUBE" + ], + "type": "string" + }, + "isReady": { + "type": "boolean" + }, + "missingInputs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "normalizedTargeting": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "mode": { + "const": "GLOBAL", + "type": "string" + } + }, + "required": [ + "mode" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "countries": { + "items": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "code", + "name" + ], + "type": "object" + }, + "type": "array" + }, + "mode": { + "const": "COUNTRIES", + "type": "string" + } + }, + "required": [ + "countries", + "mode" + ], + "type": "object" + } + ] + }, + "recommendedNextAction": { + "type": "string" + }, + "warnings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "artistId", + "artistName", + "blockingIssues", + "campaignType", + "isReady", + "missingInputs", + "normalizedTargeting", + "recommendedNextAction", + "warnings" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "actionRequired": { + "items": { + "type": "string" + }, + "type": "array" + }, + "summary": { + "type": "string" + }, + "warnings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "summary" + ], + "type": "object" + } + ] +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +} - changed
Output schema / properties / status / enumPrevious value: -[ - "success", - "partial_success", - "error" -]New value: +[ + "success", + "error" +]
- Changed
dynamoi_get_platform_status4 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded value: +{ + "additionalProperties": {}, + "properties": {}, + "type": "object" +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +}
- Changed
dynamoi_get_smart_link4 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded value: +{ + "additionalProperties": {}, + "properties": {}, + "type": "object" +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +}
- Changed
dynamoi_launch_campaign5 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded value: +{ + "additionalProperties": false, + "properties": { + "budget": { + "additionalProperties": false, + "properties": { + "amountUsd": { + "type": "number" + }, + "formatted": { + "type": "string" + } + }, + "required": [ + "amountUsd", + "formatted" + ], + "type": "object" + }, + "budgetType": { + "enum": [ + "DAILY", + "TOTAL" + ], + "type": "string" + }, + "campaignType": { + "enum": [ + "SMART_CAMPAIGN", + "YOUTUBE" + ], + "type": "string" + }, + "contentTitle": { + "type": "string" + }, + "deliveryState": { + "enum": [ + "ACTIVE", + "PENDING_REVIEW", + "CONTENT_VALIDATION" + ], + "type": "string" + }, + "id": { + "type": "string" + }, + "isLive": { + "type": "boolean" + }, + "nextSteps": { + "items": { + "type": "string" + }, + "type": "array" + }, + "platforms": { + "items": { + "type": "string" + }, + "type": "array" + }, + "status": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "warnings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "budget", + "budgetType", + "campaignType", + "contentTitle", + "deliveryState", + "id", + "isLive", + "nextSteps", + "platforms", + "status", + "summary" + ], + "type": "object" +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +} - changed
Output schema / properties / status / enumPrevious value: -[ - "success", - "partial_success", - "error" -]New value: +[ + "success", + "error" +]
- Changed
dynamoi_list_artists4 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded value: +{ + "additionalProperties": {}, + "properties": {}, + "type": "object" +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +}
- Changed
dynamoi_list_available_countries5 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "campaignType": { + "enum": [ + "SMART_CAMPAIGN", + "YOUTUBE" + ], + "type": "string" + }, + "countries": { + "items": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "dominantLanguage": { + "type": "string" + }, + "googleAdsId": { + "type": "number" + }, + "name": { + "type": "string" + } + }, + "required": [ + "code", + "googleAdsId", + "name" + ], + "type": "object" + }, + "type": "array" + }, + "nextCursor": { + "type": "string" + }, + "notes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "source": { + "enum": [ + "SMART_CAMPAIGN_COUNTRIES", + "GOOGLE_ADS_COUNTRIES" + ], + "type": "string" + }, + "totalCount": { + "type": "number" + } + }, + "required": [ + "campaignType", + "countries", + "notes", + "source", + "totalCount" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "nextCursor": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "totalCount": { + "type": "number" + } + }, + "required": [ + "summary", + "totalCount" + ], + "type": "object" + } + ] +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +} - changed
Output schema / properties / status / enumPrevious value: -[ - "success", - "partial_success", - "error" -]New value: +[ + "success", + "error" +]
- Changed
dynamoi_list_campaigns4 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded value: +{ + "additionalProperties": {}, + "properties": {}, + "type": "object" +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +}
- Changed
dynamoi_list_media_assets5 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "assets": { + "items": { + "additionalProperties": false, + "properties": { + "aspectRatio": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "fileType": { + "type": "string" + }, + "height": { + "type": "number" + }, + "id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "urlExpiresAt": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "createdAt", + "fileType", + "id" + ], + "type": "object" + }, + "type": "array" + }, + "nextCursor": { + "type": "string" + } + }, + "required": [ + "assets" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "nextCursor": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "totalCount": { + "type": "number" + } + }, + "required": [ + "summary", + "totalCount" + ], + "type": "object" + } + ] +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +} - changed
Output schema / properties / status / enumPrevious value: -[ - "success", - "partial_success", - "error" -]New value: +[ + "success", + "error" +]
- Changed
dynamoi_list_smart_links5 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "nextCursor": { + "type": "string" + }, + "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" + } + }, + "required": [ + "smartLinks" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "nextCursor": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "totalCount": { + "type": "number" + } + }, + "required": [ + "summary", + "totalCount" + ], + "type": "object" + } + ] +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +} - changed
Output schema / properties / status / enumPrevious value: -[ - "success", - "partial_success", - "error" -]New value: +[ + "success", + "error" +]
- Changed
dynamoi_preview_smart_link_themes4 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded value: +{ + "additionalProperties": {}, + "properties": {}, + "type": "object" +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +}
- Changed
dynamoi_search4 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded value: +{ + "additionalProperties": {}, + "properties": {}, + "type": "object" +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +}
- Changed
dynamoi_start_meta_connection4 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded value: +{ + "additionalProperties": {}, + "properties": {}, + "type": "object" +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +}
- Changed
dynamoi_start_youtube_channel_link4 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded value: +{ + "additionalProperties": {}, + "properties": {}, + "type": "object" +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +}
- Changed
dynamoi_update_campaign4 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded value: +{ + "additionalProperties": {}, + "properties": {}, + "type": "object" +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +}
- Changed
dynamoi_update_smart_link4 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded value: +{ + "additionalProperties": {}, + "properties": {}, + "type": "object" +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +}
- Changed
fetch4 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded value: +{ + "additionalProperties": {}, + "properties": {}, + "type": "object" +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +}
- Changed
search4 fields changed- changed
Output schema / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / dataAdded value: +{ + "additionalProperties": {}, + "properties": {}, + "type": "object" +} - added
Output schema / properties / kindAdded value: +{ + "enum": [ + "validation", + "business", + "platform", + "unknown" + ], + "type": "string" +} - added
Output schema / properties / messageAdded value: +{ + "type": "string" +}
Related MCP Connectors
Music promo platform: email campaigns, Instagram DMs, Spotify discovery, SmartLinks, analytics.
Music distribution for agents: upload, AI-check, submit and track releases on ONCE.
AI music and podcast platform for autonomous agents. SoundCloud for AI bots.
Neutral commerce resolution for AI agents — music live, ranked by trust, never by commission.
Related MCP Servers
- AlicenseAqualityAmaintenanceCross-platform music link resolution for AI agents. Resolve any song or album across Spotify, Apple Music, Amazon, YouTube, and more. Returns affiliate-ready links with click tracking5453 npm3MIT
- FlicenseNot gradedqualityBmaintenanceEnables musicians and their agents to manage AI licensing, register tracks by ISRC, issue/revoke licences, access compliance audit trails, and run their artist platform (merch, events, subscriptions, crowdfunding) through natural language with 46 tools.12 npm1-
- AlicenseAqualityDmaintenanceEnables AI agents to search, license, and pay for rights-clean music per use, returning a verifiable license certificate.5MIT
- AlicenseAqualityCmaintenanceAutonomous music intelligence & A&R qualification engine. Extracts acoustic metadata (BPM, key, mood), scores real-time Spotify streaming traction, and detects AI-generated audio (Suno/Udio).4887 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.