Skip to main content
Glama

Server Details

Create music promotion campaigns, Smart Links, analytics, and music distribution applications.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
getDynamoi/mcp
GitHub Stars
3
Server Listing
Dynamoi MCP

Available Tools

17 tools
dynamoi_apply_for_distributionApply for Music DistributionA
Idempotent
Inspect

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 two-letter country codes, an adult signer attestation, confirmApplicationSubmission=true, and a concise userIntentSummary are required. Repeated submission is idempotent for an active application.

ParametersJSON Schema
NameRequiredDescriptionDefault
artistIdYes
payoutCountryYes
applicantCountryYes
userIntentSummaryYes
taxResidencyCountryYes
adultSignerAttestationYes
confirmApplicationSubmissionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
kindNo
statusYes
messageNo

TDQS

A4.7/5.0
Behavior5/5

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

The description goes beyond annotations by explaining the side effect: it 'records an application for manual review' and does not approve distribution, sign agreements, transfer rights, or deliver music. It also adds a nuanced qualifier to the idempotency annotation—'for an active application'—which is valuable 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.

Conciseness5/5

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

The description is three focused sentences with no filler. It front-loads the core action and condition, then efficiently lists exclusions and requirements. Every sentence adds necessary operational context.

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

Completeness5/5

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

Given the tool's complexity (7 required parameters, no schema descriptions, a meaningful approval workflow), the description provides sufficient detail for correct invocation: when to call, which parameters must be present, the side effect, and the non-effects. An output schema exists, so not describing return values is acceptable.

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

Parameters4/5

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

With 0% schema description coverage, the description carries the parameter-documentation burden. It explains that all three two-letter country codes are required, that adultSignerAttestation is a signer attestation, that confirmApplicationSubmission must be true, and that userIntentSummary should be concise. This meaningfully supplements the bare schema, though artistId is not explicitly described beyond 'artist's application.'

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

Purpose5/5

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

The description uses a specific verb and resource ('Submit an artist's application for Dynamoi music distribution') and clearly scopes what the tool does and does not do. It distinguishes itself from related operations like approving, releasing, or configuring splits, making its role unambiguous alongside siblings such as dynamoi_get_distribution_application and dynamoi_launch_campaign.

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

Usage Guidelines4/5

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

It explicitly states the condition for use ('after the user explicitly asks to apply and all five eligibility requirements are met') and gives a clear when-not-to-use list via what it does not do. It does not name alternative sibling tools explicitly, but the behavior boundaries are sufficient for an agent to route correctly.

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 OverviewA
Read-only
Inspect

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. Always pass intent to match that explicit account question. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNo
intentYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
kindNo
statusYes
messageNo

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only behavior is covered. The description adds useful contextual behavior: account-level state can span multiple artists, making this tool inappropriate for single-artist platform confirmation. It could go further by describing what the returned overview contains, but the output schema likely covers that.

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

Conciseness5/5

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

The description is front-loaded with the core use case, then provides precise exclusions and alternatives. Every sentence earns its place; there is no filler or vague boilerplate.

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

Completeness5/5

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

Given the output schema exists, the description does not need to explain return values. It fully covers invocation conditions, required intent behavior, exclusions, and sibling routing, which is complete for a read-only account-overview tool.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It does so for the required intent parameter by explaining that it should match the explicit account question, and the prose lists the relevant concerns (organizations, artists, platform connections) that map to the intent enum. The optional format parameter is not discussed, but json/summary are self-explanatory.

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

Purpose5/5

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

The description names a specific verb and resource: it is for explicit questions about the signed-in Dynamoi account itself (who is logged in, organizations/artists accessible, account-level platform connections). It also explicitly distinguishes itself from sibling tools like dynamoi_list_artists and dynamoi_get_platform_status, so there is no ambiguity about what this tool is for.

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

Usage Guidelines5/5

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

The description gives crystal-clear when-to-use guidance and equally clear when-not-to-use guidance. It names the exact alternatives (dynamoi_get_platform_status for artist-specific onboarding, dynamoi_list_artists for enumeration) and explicitly forbids using this tool as a generic context-check before answering unrelated questions.

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 AnalyticsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNo
artistIdYes
dateRangeNo
granularityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
kindNo
statusYes
messageNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already mark the tool as read-only and non-destructive, so the description doesn't need to restate safety. It adds useful behavioral context: the summary format returns a strongest-campaign verdict and a written rollup, and the tool can produce daily breakdowns. It also tells the agent to stop calling more analytics tools once the comparison is returned. No contradictions 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.

Conciseness5/5

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

Every sentence earns its place: purpose, parameter triggers, stop condition, and sibling routing are all included without fluff. The most important scope information is front-loaded. No redundant restatement of the tool name or title.

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

Completeness4/5

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

Combined with an output schema and read-only annotations, the description covers the key selection logic, parameter triggers, alternative routing, and the stop condition. The main gap is the lack of explicit guidance on dateRange/default behavior, but the schema provides structure and the description mentions 30-day rollups contextually.

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

Parameters3/5

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 parameter meaning. It explains when to set granularity=DAILY and format=summary, which addresses two enum parameters. However, it does not explain dateRange semantics, default values, or what format=json implies beyond what the schema already provides.

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

Purpose5/5

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

States a specific verb and resource: retrieving artist-level performance across all campaigns. It distinguishes itself from the sibling dynamoi_get_campaign, which is for one campaign's metrics. The scope ('across all campaigns') and resource ('artist analytics') are clearly identified.

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

Usage Guidelines5/5

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

Explicitly says when to use this tool ('artist-level performance across all campaigns') and when to use the alternative ('For one campaign's metrics, use dynamoi_get_campaign'). It also gives concrete parameter instructions for granularity=DAILY and format=summary, plus a stop-and-answer rule after the strongest-campaign comparison is returned.

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

dynamoi_get_campaignGet CampaignA
Read-only
Inspect

Use this when the user wants full details for one campaign, including budget, targeting, platform status, and next actions. Set includeAnalytics=true for one-campaign performance, 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNo
campaignIdYes
includeAnalyticsNo
includeCountriesNo
analyticsDateRangeNo
analyticsGranularityNo
includeDeploymentStatusNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
kindNo
statusYes
messageNo

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already mark this read-only and non-destructive, and the description adds useful behavioral context beyond that: which optional flags control what data is included, and how format=summary behaves for follow-up reads. It does not explain defaults or detail response behavior, but the output schema and annotations cover the core safety profile.

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

Conciseness5/5

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

Four sentences, no filler, with the primary purpose front-loaded and conditional guidance following logically. Every sentence earns its place.

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

Completeness4/5

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

The description is strong for a read-only single-campaign lookup: it explains scope, filtering flags, alternatives, and a follow-up read mode. Minor gaps remain around analyticsDateRange/analyticsGranularity usage and defaults, but output schema and annotations fill in much of the remaining picture.

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

Parameters4/5

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

Schema description coverage is 0%, so the description carries the burden, and it does explain includeAnalytics, includeDeploymentStatus, includeCountries, and format. However, analyticsDateRange and analyticsGranularity are left unexplained and their relationship to includeAnalytics is not clarified.

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

Purpose5/5

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

The description clearly states the tool fetches full details for one campaign, including budget, targeting, platform status, and next actions. It also explicitly distinguishes itself from the list alternative, making its purpose unambiguous.

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

Usage Guidelines5/5

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 full details for one campaign') and an explicit when-not-to-use rule with a named alternative ('use dynamoi_list_campaigns instead'). It also gives practical advice about when to prefer format=summary after mutations.

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 ApplicationA
Read-only
Inspect

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 send the user to the distribution application in Dynamoi. Identity connections do not require advertising billing.

ParametersJSON Schema
NameRequiredDescriptionDefault
artistIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
kindNo
statusYes
messageNo

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the readOnlyhint and destructiveHinct, the description is narrates the five concrete eligibility checks, states that meeting all five does not guarantee approval, and clarifies that identity connections do not require advertising billing. It accurately confirms the read-only nature behavior and adds important context. No annotation contradiction.

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

Conciseness4/5

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

The most important use signal is front-loaded and each sentence contributes operational guidance. The list of five requirements is somewhat dense, but given the tool's complexity it is not wildly since long. It could be tightened slightly but still earns its length.

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

Completeness5/5

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

For a tool that checks eligibility and status, the description fully covers when to use it, the five eligibility conditions, the approval caveat, and the fallback routing for missing face/meta or YouTube connections. With an output schema present, no essential behavior is unexplained.

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

Parameters2/5

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

The schema description coverage is 0%, so the description was expected to compensate for the lone artistId parameter, but it never mentions that parameter. The property name and UUID format make the vague likely, but the description itself adds no direct semantic guidance about what identifier to pass or where it comes from.

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

Purpose5/5

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

The description begins with 'Use this when the user asks...' and enumerates three specific intents: eligibility, the five requirements, and existing application status. The resource (distribution application) and the action (get/check) are clear, so it cannot be confused with apply_for_distribution.

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

Usage Guidelines5/5

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

It gives explicit triggers for using the tool and tells the agent what to do instead for missing identity: use another tool with purpose=distribution_identity or route the user to the Dynamo distribution application. This clearly separates it from the sibling connection and application tools.

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 StatusA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNo
artistIdYes
onboardingFlowNo
onboardingAttemptIdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
kindNo
statusYes
messageNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover the read-only safety profile. The description adds useful behavioral context: after a connection-start flow, the agent should pass the returned onboardingAttemptId and onboardingFlow so Dynamoi ops can correlate the browser step. 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.

Conciseness5/5

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

Three sentences with the main use case front-loaded and no filler. The polling instruction and exclusions each earn their place.

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

Completeness4/5

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

With an output schema present and read-only annotations, the description covers the main selection and invocation concerns, including the non-obvious polling flow. The missing explanation of artistId and format keeps it slightly incomplete.

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

Parameters3/5

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

Schema description coverage is 0%, so the description bears the burden for explaining parameters. It adds real meaning for onboardingAttemptId and onboardingFlow, but never explains the required artistId or the format enum, leaving two of four parameters under-specified.

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

Purpose5/5

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

The description clearly states the tool reports whether Spotify, Meta, or YouTube are connected and which setup steps block launches. This sharply differentiates it from analytics, smart-link, campaign, and account-overview siblings.

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

Usage Guidelines4/5

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

It gives explicit 'Use this when...' context, polling guidance with onboarding IDs, and clear exclusions for billing and generic marketing questions. It stops short of naming an alternative tool for those exclusions, so it is not a full 5.

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

dynamoi_list_artistsList ArtistsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
formatNo
artistIdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
kindNo
statusYes
messageNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only safety profile is established. The description adds value beyond that by explaining the roster-vs-profile behavioral split and, notably, the semantic meaning of an empty response (brand-new user, route to recommendedNextActions rather than reporting 'no records found'). 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.

Conciseness4/5

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

Four sentences, all earning their place: primary use case, artistId variant, exclusion routing, and empty-result behavior. Information is front-loaded with the main purpose first. Slightly dense as one paragraph, but there is no filler.

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

Completeness4/5

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

For a tool with 4 optional params, an output schema, and 15 siblings, the description covers when to use it, what it returns, what it excludes, the artistId variant, and the empty-result edge case. Remaining gaps are minor: no mention of pagination behavior (limit/cursor) or the format enum, though those are optional and conventional.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full burden for parameter meaning, but it only addresses artistId ('pass artistId when you need the full profile/readiness details for one artist'). It adds nothing for limit, cursor, or format — pagination semantics and the json/summary distinction are left completely unexplained.

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

Purpose5/5

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

The description states a specific verb+resource: listing artists/YouTube channels the user manages, and names the exact fields returned (billing status, active campaign count, role). It distinguishes itself from siblings by naming dynamoi_list_campaigns and dynamoi_get_campaign as the campaign-detail tools, and by contrasting roster-page output with full-profile output.

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

Usage Guidelines5/5

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

Explicit when-to-use ('when the user wants to see which artists or YouTube channels they manage'), when-to-pass-artistId, and clear exclusions with named alternatives ('Do not use this for campaign details; use dynamoi_list_campaigns or dynamoi_get_campaign'). It even handles the edge case of an empty result with routing instructions to dynamoi_get_account_overview.recommendedNextActions.

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

dynamoi_list_campaignsList CampaignsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
formatNo
statusNo
artistIdYes
campaignTypeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
kindNo
statusYes
messageNo

TDQS

A4.1/5.0
Behavior3/5

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 no behavioral detail such as pagination behavior, response format differences, or rate limits; it focuses on selection guidance rather than operational behavior.

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

Conciseness5/5

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

Three sentences, each with a distinct purpose: when to use, what not to use it for, and a prerequisite routing rule. No wasted words, and the primary use case is front-loaded.

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

Completeness4/5

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

For a read-only list tool with an output schema present, the description covers selection criteria, exclusions, and an important prerequisite. The only meaningful gaps are undocumented pagination parameters and the meaning of the 'summary' format, which keep it from being fully complete.

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

Parameters2/5

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 clarifies the role of artistId, status, and campaignType, but leaves limit, cursor, and format unexplained. The format enum (json vs summary) is especially ambiguous without further context.

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

Purpose5/5

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

States a specific verb ('browse'), a concrete resource ('campaigns for one artist'), and optional filters ('by type or status'). Explicitly distinguishes itself from dynamoi_get_campaign, making the tool's scope immediately identifiable.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance, clear exclusions ('Do not use this for a single campaign deep dive'), names the alternative tool, and even gives a routing prerequisite when the user has no artists yet. This leaves little to inference.

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

fetchFetch (OpenAI Connectors)A
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
kindNo
statusYes
messageNo

TDQS

A3.6/5.0
Behavior3/5

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, so the bar for additional disclosure is lower. The description adds modest behavioral context — this is a 'contract' returning 'the full record' as opposed to search snippets — but it does not disclose error behavior, not-found handling, or any response characteristics beyond completeness.

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

Conciseness4/5

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

Two sentences with no real waste, and the actionable detail — ID format and return value — is front-loaded in the second sentence. The opening clause ('OpenAI ChatGPT Deep Research / Connectors fetch contract') partially duplicates the title 'Fetch (OpenAI Connectors)', a minor redundancy, but overall the definition is appropriately sized.

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

Completeness4/5

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

For a single-parameter, read-only tool with an output schema present, the description is nearly sufficient: it covers the input format, the source of the id, and the purpose of the return value. The gaps are minor — no statement about what happens when an id is invalid or not found, and no explicit differentiation from the get_* siblings — but nothing critical is missing for basic invocation.

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

Parameters4/5

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

Schema description coverage is 0%, so the bare schema offers only a string with min/max length; the description carries the full burden and largely succeeds. It specifies the exact accepted formats ('artist:<uuid>', 'campaign:<uuid>', 'smartlink:<uuid>') and the parameter's provenance (returned by search), which is precisely what an agent needs to construct a valid call. It stops short of saying whether other prefixes are possible, leaving a small edge-case gap.

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

Purpose4/5

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

The description clearly states the verb (returns), resource (full record), and the precise input contract (id formatted as 'artist:<uuid>', 'campaign:<uuid>', or 'smartlink:<uuid>'). This materially distinguishes fetch as a cross-entity retrieval tool versus the more specific dynamoi_get_campaign, dynamoi_get_smart_link, and other get_* siblings, though it never explicitly names those alternatives.

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

Usage Guidelines3/5

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

The description establishes an implicit usage precondition: the id must come from `search`, tying the two tools into a workflow. The phrase 'for citation' hints at the intended downstream use case. However, it gives no explicit when-to-use/when-not-to-use guidance versus the many dynamoi_get_* sibling tools, so an agent must infer the routing decision.

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. Dates show when Glama detected each change.

  1. 20 tool updates
    • Changeddynamoi_get_account_overview9 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
      • addedOutput schema / properties / data / properties / artistCount
        Added value: +{
        +  "type": "number"
        +}
      • addedOutput schema / properties / data / properties / artists
        Added 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"
        +}
      • addedOutput schema / properties / data / properties / organizationCount
        Added value: +{
        +  "type": "number"
        +}
      • addedOutput schema / properties / data / properties / recommendedNextActions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / data / properties / state
        Added value: +{
        +  "additionalProperties": {},
        +  "properties": {},
        +  "type": "object"
        +}
      • addedOutput schema / properties / data / properties / summary
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / user
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "name": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
      • removedOutput schema / properties / kind / enum
        Removed value: -[
        -  "validation",
        -  "business",
        -  "platform",
        -  "unknown"
        -]
    • Changeddynamoi_get_artist_analytics6 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
      • addedOutput schema / properties / data / properties / artistId
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / artistName
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / dateRange
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "end": {
        +      "type": "string"
        +    },
        +    "start": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "end",
        +    "start"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / data / properties / summary
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / kind / enum
        Removed value: -[
        -  "validation",
        -  "business",
        -  "platform",
        -  "unknown"
        -]
    • Removeddynamoi_get_billing
    • Changeddynamoi_get_campaign10 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
      • addedOutput schema / properties / data / properties / artistId
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / contentTitle
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / id
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / name
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / nextActions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / data / properties / publicUrl
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / status
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / summary
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / kind / enum
        Removed value: -[
        -  "validation",
        -  "business",
        -  "platform",
        -  "unknown"
        -]
    • Removeddynamoi_get_campaign_readiness
    • Changeddynamoi_get_platform_status6 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
      • addedOutput schema / properties / data / properties / artistId
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / artistName
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / platforms
        Added value: +{
        +  "additionalProperties": {},
        +  "properties": {},
        +  "type": "object"
        +}
      • addedOutput schema / properties / data / properties / summary
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / kind / enum
        Removed value: -[
        -  "validation",
        -  "business",
        -  "platform",
        -  "unknown"
        -]
    • Changeddynamoi_get_smart_link12 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
      • addedOutput schema / properties / data / properties / artistId
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / artistName
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / id
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / name
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / nextActions
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / data / properties / publicUrl
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / publishState
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / releaseTitle
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / summary
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / theme
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / kind / enum
        Removed value: -[
        -  "validation",
        -  "business",
        -  "platform",
        -  "unknown"
        -]
    • Removeddynamoi_launch_campaign
    • Changeddynamoi_list_artists6 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
      • addedOutput schema / properties / data / properties / artists
        Added value: +{
        +  "items": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "id": {
        +        "type": "string"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "publicUrl": {
        +        "type": "string"
        +      },
        +      "summary": {
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / data / properties / nextCursor
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / summary
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / totalCount
        Added value: +{
        +  "type": "number"
        +}
      • removedOutput schema / properties / kind / enum
        Removed value: -[
        -  "validation",
        -  "business",
        -  "platform",
        -  "unknown"
        -]
    • Removeddynamoi_list_available_countries
    • Changeddynamoi_list_campaigns6 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
      • addedOutput schema / properties / data / properties / campaigns
        Added value: +{
        +  "items": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "id": {
        +        "type": "string"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "publicUrl": {
        +        "type": "string"
        +      },
        +      "summary": {
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / data / properties / nextCursor
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / summary
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / totalCount
        Added value: +{
        +  "type": "number"
        +}
      • removedOutput schema / properties / kind / enum
        Removed value: -[
        -  "validation",
        -  "business",
        -  "platform",
        -  "unknown"
        -]
    • Removeddynamoi_list_media_assets
    • Changeddynamoi_preview_smart_link_themes6 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
      • addedOutput schema / properties / data / properties / artistName
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / releaseTitle
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / themes
        Added value: +{
        +  "items": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "id": {
        +        "type": "string"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "publicUrl": {
        +        "type": "string"
        +      },
        +      "summary": {
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / data / required
        Added value: +[
        +  "artistName",
        +  "releaseTitle",
        +  "themes"
        +]
      • removedOutput schema / properties / kind / enum
        Removed value: -[
        -  "validation",
        -  "business",
        -  "platform",
        -  "unknown"
        -]
    • Changeddynamoi_search6 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
      • addedOutput schema / properties / data / properties / nextCursor
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / results
        Added value: +{
        +  "items": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "id": {
        +        "type": "string"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "publicUrl": {
        +        "type": "string"
        +      },
        +      "summary": {
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / data / properties / summary
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / totalCount
        Added value: +{
        +  "type": "number"
        +}
      • removedOutput schema / properties / kind / enum
        Removed value: -[
        -  "validation",
        -  "business",
        -  "platform",
        -  "unknown"
        -]
    • Removeddynamoi_start_meta_connection
    • Removeddynamoi_start_youtube_channel_link
    • Removeddynamoi_update_campaign
    • Changeddynamoi_update_smart_link11 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
      • addedOutput schema / properties / data / properties / artistId
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / artistName
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / defaultTheme
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / id
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / name
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / publicUrl
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / renderQueuedCount
        Added value: +{
        +  "type": "number"
        +}
      • addedOutput schema / properties / data / properties / renderWarning
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / data / properties / summary
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / kind / enum
        Removed value: -[
        -  "validation",
        -  "business",
        -  "platform",
        -  "unknown"
        -]
    • Changedfetch6 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
      • addedOutput schema / properties / data / properties / id
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / name
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / publicUrl
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / data / properties / summary
        Added value: +{
        +  "type": "string"
        +}
      • removedOutput schema / properties / kind / enum
        Removed value: -[
        -  "validation",
        -  "business",
        -  "platform",
        -  "unknown"
        -]
    • Changedsearch3 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +{}
      • addedOutput schema / properties / data / properties / results
        Added value: +{
        +  "items": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "id": {
        +        "type": "string"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "publicUrl": {
        +        "type": "string"
        +      },
        +      "summary": {
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / kind / enum
        Removed value: -[
        -  "validation",
        -  "business",
        -  "platform",
        -  "unknown"
        -]
  2. 4 tool updates
    • Addeddynamoi_apply_for_distribution
    • Addeddynamoi_get_distribution_application
    • Changeddynamoi_start_meta_connection1 field changed
      • addedInput schema / properties / purpose
        Added value: +{
        +  "enum": [
        +    "advertising",
        +    "distribution_identity"
        +  ],
        +  "type": "string"
        +}
    • Changeddynamoi_start_youtube_channel_link1 field changed
      • addedInput schema / properties / purpose
        Added value: +{
        +  "enum": [
        +    "advertising",
        +    "distribution_identity"
        +  ],
        +  "type": "string"
        +}
  3. 23 tool updates
    • Changeddynamoi_create_smart_link_from_spotify5 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added 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"
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / status / enum
        Previous value: -[
        -  "success",
        -  "partial_success",
        -  "error"
        -]New value: +[
        +  "success",
        +  "error"
        +]
    • Changeddynamoi_create_smart_links_from_spotify_artist5 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "artistCreatedFromSpotify": {
        +      "type": "boolean"
        +    },
        +    "artistHubUrl": {
        +      "type": "string"
        +    },
        +    "artistId": {
        +      "type": "string"
        +    },
        +    "artistName": {
        +      "type": "string"
        +    },
        +    "catalogImportStatus": {
        +      "enum": [
        +        "started",
        +        "start_failed"
        +      ],
        +      "type": "string"
        +    },
        +    "currentSmartLinkCount": {
        +      "type": "number"
        +    },
        +    "existingCount": {
        +      "type": "number"
        +    },
        +    "initialSmartLink": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "artistHubUrl": {
        +              "type": "string"
        +            },
        +            "artistId": {
        +              "type": "string"
        +            },
        +            "artistName": {
        +              "type": "string"
        +            },
        +            "claimStatus": {
        +              "enum": [
        +                "auto_approved",
        +                "pending_ops_review",
        +                "verification_deferred",
        +                "approved_by_ops",
        +                "rejected"
        +              ],
        +              "type": "string"
        +            },
        +            "createdAt": {
        +              "type": "string"
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "isPublic": {
        +              "type": "boolean"
        +            },
        +            "localizedPublicUrls": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "odesliStatus": {
        +              "enum": [
        +                "pending",
        +                "resolved",
        +                "failed"
        +              ],
        +              "type": "string"
        +            },
        +            "publicUrl": {
        +              "type": "string"
        +            },
        +            "publishState": {
        +              "enum": [
        +                "published",
        +                "unpublished"
        +              ],
        +              "type": "string"
        +            },
        +            "releaseSlug": {
        +              "type": "string"
        +            },
        +            "releaseTitle": {
        +              "type": "string"
        +            },
        +            "releaseType": {
        +              "type": "string"
        +            },
        +            "renderState": {
        +              "enum": [
        +                "queued",
        +                "rendering",
        +                "rendered",
        +                "failed"
        +              ],
        +              "type": "string"
        +            },
        +            "spotifyUrl": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "takedownStatus": {
        +              "enum": [
        +                "none",
        +                "active",
        +                "resolved"
        +              ],
        +              "type": "string"
        +            },
        +            "theme": {
        +              "enum": [
        +                "classic",
        +                "brutalist",
        +                "aurora",
        +                "cinematic"
        +              ],
        +              "type": "string"
        +            },
        +            "updatedAt": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "artistHubUrl",
        +            "artistId",
        +            "artistName",
        +            "claimStatus",
        +            "createdAt",
        +            "id",
        +            "isPublic",
        +            "odesliStatus",
        +            "publicUrl",
        +            "publishState",
        +            "releaseSlug",
        +            "releaseTitle",
        +            "releaseType",
        +            "renderState",
        +            "spotifyUrl",
        +            "takedownStatus",
        +            "theme",
        +            "updatedAt"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "newlyAvailableCount": {
        +      "type": "number"
        +    },
        +    "nextActions": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "smartLinks": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "artistHubUrl": {
        +            "type": "string"
        +          },
        +          "artistId": {
        +            "type": "string"
        +          },
        +          "artistName": {
        +            "type": "string"
        +          },
        +          "claimStatus": {
        +            "enum": [
        +              "auto_approved",
        +              "pending_ops_review",
        +              "verification_deferred",
        +              "approved_by_ops",
        +              "rejected"
        +            ],
        +            "type": "string"
        +          },
        +          "createdAt": {
        +            "type": "string"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "isPublic": {
        +            "type": "boolean"
        +          },
        +          "localizedPublicUrls": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "odesliStatus": {
        +            "enum": [
        +              "pending",
        +              "resolved",
        +              "failed"
        +            ],
        +            "type": "string"
        +          },
        +          "publicUrl": {
        +            "type": "string"
        +          },
        +          "publishState": {
        +            "enum": [
        +              "published",
        +              "unpublished"
        +            ],
        +            "type": "string"
        +          },
        +          "releaseSlug": {
        +            "type": "string"
        +          },
        +          "releaseTitle": {
        +            "type": "string"
        +          },
        +          "releaseType": {
        +            "type": "string"
        +          },
        +          "renderState": {
        +            "enum": [
        +              "queued",
        +              "rendering",
        +              "rendered",
        +              "failed"
        +            ],
        +            "type": "string"
        +          },
        +          "spotifyUrl": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "takedownStatus": {
        +            "enum": [
        +              "none",
        +              "active",
        +              "resolved"
        +            ],
        +            "type": "string"
        +          },
        +          "theme": {
        +            "enum": [
        +              "classic",
        +              "brutalist",
        +              "aurora",
        +              "cinematic"
        +            ],
        +            "type": "string"
        +          },
        +          "updatedAt": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "artistHubUrl",
        +          "artistId",
        +          "artistName",
        +          "claimStatus",
        +          "createdAt",
        +          "id",
        +          "isPublic",
        +          "odesliStatus",
        +          "publicUrl",
        +          "publishState",
        +          "releaseSlug",
        +          "releaseTitle",
        +          "releaseType",
        +          "renderState",
        +          "spotifyUrl",
        +          "takedownStatus",
        +          "theme",
        +          "updatedAt"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "spotifyArtistUrl": {
        +      "type": "string"
        +    },
        +    "summary": {
        +      "type": "string"
        +    },
        +    "warnings": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "artistHubUrl",
        +    "artistId",
        +    "artistName",
        +    "catalogImportStatus",
        +    "currentSmartLinkCount",
        +    "existingCount",
        +    "initialSmartLink",
        +    "newlyAvailableCount",
        +    "nextActions",
        +    "smartLinks",
        +    "spotifyArtistUrl",
        +    "summary"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / status / enum
        Previous value: -[
        -  "success",
        -  "partial_success",
        -  "error"
        -]New value: +[
        +  "success",
        +  "error"
        +]
    • Changeddynamoi_get_account_overview4 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added value: +{
        +  "additionalProperties": {},
        +  "properties": {},
        +  "type": "object"
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
    • Changeddynamoi_get_artist_analytics4 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added value: +{
        +  "additionalProperties": {},
        +  "properties": {},
        +  "type": "object"
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
    • Changeddynamoi_get_billing4 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added value: +{
        +  "additionalProperties": {},
        +  "properties": {},
        +  "type": "object"
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
    • Changeddynamoi_get_campaign4 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added value: +{
        +  "additionalProperties": {},
        +  "properties": {},
        +  "type": "object"
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
    • Changeddynamoi_get_campaign_readiness5 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added 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"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / status / enum
        Previous value: -[
        -  "success",
        -  "partial_success",
        -  "error"
        -]New value: +[
        +  "success",
        +  "error"
        +]
    • Changeddynamoi_get_platform_status4 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added value: +{
        +  "additionalProperties": {},
        +  "properties": {},
        +  "type": "object"
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
    • Changeddynamoi_get_smart_link4 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added value: +{
        +  "additionalProperties": {},
        +  "properties": {},
        +  "type": "object"
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
    • Changeddynamoi_launch_campaign5 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added 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"
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / status / enum
        Previous value: -[
        -  "success",
        -  "partial_success",
        -  "error"
        -]New value: +[
        +  "success",
        +  "error"
        +]
    • Changeddynamoi_list_artists4 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added value: +{
        +  "additionalProperties": {},
        +  "properties": {},
        +  "type": "object"
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
    • Changeddynamoi_list_available_countries5 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added 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"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / status / enum
        Previous value: -[
        -  "success",
        -  "partial_success",
        -  "error"
        -]New value: +[
        +  "success",
        +  "error"
        +]
    • Changeddynamoi_list_campaigns4 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added value: +{
        +  "additionalProperties": {},
        +  "properties": {},
        +  "type": "object"
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
    • Changeddynamoi_list_media_assets5 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added 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"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / status / enum
        Previous value: -[
        -  "success",
        -  "partial_success",
        -  "error"
        -]New value: +[
        +  "success",
        +  "error"
        +]
    • Changeddynamoi_list_smart_links5 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added 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"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / status / enum
        Previous value: -[
        -  "success",
        -  "partial_success",
        -  "error"
        -]New value: +[
        +  "success",
        +  "error"
        +]
    • Changeddynamoi_preview_smart_link_themes4 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added value: +{
        +  "additionalProperties": {},
        +  "properties": {},
        +  "type": "object"
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
    • Changeddynamoi_search4 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added value: +{
        +  "additionalProperties": {},
        +  "properties": {},
        +  "type": "object"
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
    • Changeddynamoi_start_meta_connection4 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added value: +{
        +  "additionalProperties": {},
        +  "properties": {},
        +  "type": "object"
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
    • Changeddynamoi_start_youtube_channel_link4 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added value: +{
        +  "additionalProperties": {},
        +  "properties": {},
        +  "type": "object"
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
    • Changeddynamoi_update_campaign4 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added value: +{
        +  "additionalProperties": {},
        +  "properties": {},
        +  "type": "object"
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
    • Changeddynamoi_update_smart_link4 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added value: +{
        +  "additionalProperties": {},
        +  "properties": {},
        +  "type": "object"
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
    • Changedfetch4 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added value: +{
        +  "additionalProperties": {},
        +  "properties": {},
        +  "type": "object"
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
    • Changedsearch4 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -{}New value: +false
      • addedOutput schema / properties / data
        Added value: +{
        +  "additionalProperties": {},
        +  "properties": {},
        +  "type": "object"
        +}
      • addedOutput schema / properties / kind
        Added value: +{
        +  "enum": [
        +    "validation",
        +    "business",
        +    "platform",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / message
        Added value: +{
        +  "type": "string"
        +}
  4. 1 tool update
    • Changeddynamoi_update_campaign3 fields changed
      • addedInput schema / properties / acceptedConsentCopyHash
        Added value: +{
        +  "const": "36efa2138175fe14ec7b104d6f240bdce89d21b86ffccbd9f968100c50123e15",
        +  "type": "string"
        +}
      • addedInput schema / properties / acceptedConsentVersion
        Added value: +{
        +  "const": "managed-ads-prospective-daily-v1",
        +  "type": "string"
        +}
      • addedInput schema / properties / authorizeAutomaticDailyFunding
        Added value: +{
        +  "const": true,
        +  "description": "Set only after the client explicitly accepts: “Authorize automatic card funding for this campaign's requested approximately 24-hour daily budget.”",
        +  "type": "boolean"
        +}
  5. 1 tool update
    • Addeddynamoi_preview_smart_link_themes
  6. 1 tool update
    • Changeddynamoi_update_smart_link2 fields changed
      • changedInput schema / properties / action / enum
        Previous value: -[
        -  "update_description",
        -  "update_artist_settings",
        -  "publish",
        -  "unpublish"
        -]New value: +[
        +  "update_description",
        +  "update_artist_settings"
        +]
      • removedInput schema / properties / expectedPublishState
        Removed value: -{
        -  "enum": [
        -    "published",
        -    "unpublished"
        -  ],
        -  "type": "string"
        -}
  7. 2 tool updates
    • Changeddynamoi_get_smart_link3 fields changed
      • removedInput schema / properties / include
        Removed value: -{
        -  "items": {
        -    "enum": [
        -      "analytics",
        -      "artist_settings"
        -    ],
        -    "type": "string"
        -  },
        -  "maxItems": 2,
        -  "type": "array"
        -}
      • addedInput schema / properties / includeAnalytics
        Added value: +{
        +  "type": "boolean"
        +}
      • addedInput schema / properties / includeArtistSettings
        Added value: +{
        +  "type": "boolean"
        +}
    • Changeddynamoi_list_campaigns1 field changed
      • addedInput schema / properties / status / enum
        Added value: +[
        +  "AWAITING_SMART_LINK",
        +  "ACTIVE",
        +  "ARCHIVED",
        +  "CONTENT_VALIDATION",
        +  "DEPLOYING",
        +  "FAILED",
        +  "PAUSED",
        +  "READY_FOR_REVIEW",
        +  "SUBSCRIPTION_PAUSED"
        +]
  8. 1 tool update
    • Changeddynamoi_list_smart_links1 field changed
      • changedInput schema / properties / claimStatus / enum
        Previous value: -[
        -  "auto_approved",
        -  "pending_ops_review",
        -  "approved_by_ops",
        -  "rejected"
        -]New value: +[
        +  "auto_approved",
        +  "pending_ops_review",
        +  "verification_deferred",
        +  "approved_by_ops",
        +  "rejected"
        +]

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Cross-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 tracking
    5
    252
    3
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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.
    11
    1
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables managing multi-platform social campaigns from a single blog post, including creating, listing, scheduling, publishing, and retrying campaigns with idempotency and webhook-confirmed delivery.
    13
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Generate styled QR codes, manage dynamic short links with click analytics, and publish micro-landing pages via AI agents.
    19
    87
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.9/5.0
Disambiguation4/5

Most tools are cleanly separated by resource and action, and close pairs like account overview vs platform status and singular vs catalog smart-link creation are explicitly disambiguated. The main ambiguity is dynamoi_search versus the connector search tool, which both search the same entities and are distinguished only by chat vs deep-research context.

Naming Consistency4/5

The set overwhelmingly follows a consistent dynamoi_<verb>_<object> snake_case pattern, with predictable get/list/create/update verbs. The unprefixed fetch and search connector tools are a visible but small deviation from that convention.

Tool Count3/5

Seventeen tools is slightly heavy for the server's scope, especially since search/fetch partly duplicate dynamoi_search and the campaign domain is primarily read-only. The smart-link, artist, and distribution clusters each justify their tools, so it is not excessively bloated.

Completeness3/5

Smart links have create/list/get/update coverage and distribution has apply/status, but campaigns are only readable with no create/update/launch tool, despite get_campaign referencing campaign mutations. Platform connections also have status checks but no connect actions, leaving notable workflow gaps.