Skip to main content
Glama

Server Details

Search and license 5,000+ fully cleared music tracks via MCP. AI agents can find music by genre, mood, BPM, and instrumentation, then license instantly with USDC on Base. No human in the loop. Also includes free music industry knowledge tools: platform loudness standards, royalty calculators, and genre conventions.

Ownership verified
Status
Healthy
Uptime
100.0% over 62 days
Last Tested
Transport
Streamable HTTP · MCP 2024-11-05
URL

TDQS

A4.1/5.0

Scored across 6 tools

Disambiguation3/5

ai_search and search_catalog both search the OnChain Music catalog using natural language descriptions, making their boundaries unclear despite the descriptions. The other tools (get_track, calculate_royalty_split, get_genre_conventions, get_loudness_standards) are clearly distinct.

Naming Consistency4/5

Most tools follow a clear verb_noun snake_case pattern (calculate_royalty_split, get_genre_conventions, get_loudness_standards, get_track, search_catalog). ai_search deviates from this pattern by using a noun prefix instead of a verb, but the convention is otherwise consistent.

Tool Count5/5

With 6 tools, the server is well-scoped for its purpose: catalog searching, track retrieval, and music business utilities. Each tool contributes a distinct function without unnecessary bloat.

Completeness4/5

The tool set covers catalog search, track metadata retrieval, royalty calculation, genre conventions, and loudness standards. A direct licensing/purchase tool is absent, but the search results include a results_url for external licensing, so the core workflow is supported. Minor gaps like listing all genres or artists are easily worked around via search.

Available Tools

12 tools
calculate_cowriter_splitA
Read-onlyIdempotent
Inspect

Split gross songwriter royalties among co-writers by their percentage shares. Percentages must total 100. Works for any music, not only the OnChain Music catalog.

ParametersJSON Schema
NameRequiredDescriptionDefault
writersYesCo-writers and their percentage shares. Percentages must sum to 100.
gross_royaltiesYesTotal gross songwriter royalties to split, in USD.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety behavior is covered. The description usefully adds the validation rule that percentages must total 100, but with no output schema it never describes what the split returns, which matters for a calculation tool.

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 short sentences, all load-bearing: the action, the validation rule, and the scope boundary. It is front-loaded with the core purpose and contains 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 two-parameter computation with full schema coverage and rich annotations, the description covers purpose, input constraint, and scope. The one gap is the absence of an output schema plus no description of the returned split format, which an agent might want to know.

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 100%: both parameters, including the nested writer name/percentage fields, are fully documented in the schema. The description only restates the sum-to-100 rule already present in the writers schema description, adding no new parameter meaning.

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

Purpose4/5

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

States a specific verb ('Split') and resource ('gross songwriter royalties among co-writers by their percentage shares'), which is clear and concrete. It implicitly differs from siblings like calculate_songwriter_publisher_split and calculate_sync_fee_split through the resource named, but it never explicitly contrasts with the nearest sibling.

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 gives a scope statement ('Works for any music, not only the OnChain Music catalog') and an input constraint, which implies when the tool applies, but it never says when to choose this over calculate_songwriter_publisher_split or calculate_producer_points. Usage must be inferred from the tool name and resource.

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

calculate_producer_pointsA
Read-onlyIdempotent
Inspect

Calculate per-unit and total earnings for a producer points deal: the master royalty, the producer's share, and the artist's net. Works for any music, not only the OnChain Music catalog.

ParametersJSON Schema
NameRequiredDescriptionDefault
units_soldNoUnits sold. When provided, totals are included.
producer_pointsYesProducer points as a percentage of the base price. Example: 3 for 3 points.
master_royalty_rateNoArtist master royalty rate as a percentage (0-100). Defaults to 18.
suggested_retail_priceNoBase price per unit in USD. Defaults to 9.99.

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description's burden is lighter. It adds real value by naming the three values the tool computes — master royalty, producer's share, artist's net — which is the return content, and there is no output schema to carry that. It does not mention error behavior for out-of-range inputs, keeping it below a 5.

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

Conciseness5/5

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

Two sentences, front-loaded with the core purpose and output list, then a short scoping clause. No filler and nothing redundant with the schema.

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 no output schema, the description usefully names the three returned figures, and the parameter defaults/ranges live in the schema. A pure arithmetic tool with full annotation coverage needs little more, though a note on input validity or rounding/currency assumptions would close the remaining gap.

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 100%, with each of the four parameters documented, including defaults for master_royalty_rate (18) and suggested_retail_price (9.99). The description mentions 'per-unit and total earnings,' which loosely maps to the units_sold conditional-total behavior, but adds no new syntax or meaning. Baseline 3 when the schema does the heavy lifting.

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?

Names a specific verb (calculate) and resource (producer points deal) and enumerates the three computed outputs: master royalty, producer's share, artist's net. It also distinguishes itself from the catalog-bound siblings by stating it works for any music, so an agent can separate it from get_track/search_catalog-driven flows without opening the schema.

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 phrase 'producer points deal' and 'works for any music, not only the OnChain Music catalog' imply the usage context, but the description never states when to pick this over calculate_cowriter_split or calculate_songwriter_publisher_split, nor any prerequisites. Usage is inferable from the domain term rather than spelled out.

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

calculate_songwriter_publisher_splitA
Read-onlyIdempotent
Inspect

Split gross songwriter royalties between the songwriter and publisher, and describe the deal type (self-published, co-publishing, full publishing). Works for any music, not only the OnChain Music catalog.

ParametersJSON Schema
NameRequiredDescriptionDefault
gross_royaltiesYesTotal gross royalties collected, in USD.
publisher_percentageNoPublisher's percentage of the songwriter share (0-100). Defaults to 50 for a standard co-publishing deal.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the burden is light. The description adds value beyond them by disclosing that the tool also returns a deal-type classification and that its scope extends beyond the OnChain catalog. It stops short of explaining rounding, currency handling, or edge cases.

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 filler, front-loaded with the primary action. The trailing scope sentence earns its place by preempting a catalog-applicability question, though it reads as slightly appended rather than integrated.

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 no output schema, the description usefully sketches the return (a split plus a deal-type label). For a two-parameter, read-only calculation tool this is close to complete, though it does not explain how the three deal types affect the split numerically.

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 100%, so both gross_royalties and publisher_percentage (including the default of 50 for co-publishing) are already documented in the schema. The description adds no parameter-level detail beyond that, so the baseline 3 applies.

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 (split) and resource (gross songwriter royalties), plus a secondary output (deal type: self-published, co-publishing, full publishing). This clearly distinguishes it from the sibling calculators calculate_cowriter_split and calculate_sync_fee_split, which handle different royalty parties.

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 line 'Works for any music, not only the OnChain Music catalog' gives useful scope guidance about applicability, but it never states when to choose this tool over calculate_cowriter_split or calculate_producer_points, nor any prerequisites. Usage is implied rather than explicit.

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

calculate_sync_fee_splitA
Read-onlyIdempotent
Inspect

Split a sync licensing fee between the master rights side and the publishing side, then split the publishing side between publisher and songwriter. Works for any music, not only the OnChain Music catalog.

ParametersJSON Schema
NameRequiredDescriptionDefault
sync_feeYesTotal sync licensing fee, in USD.
master_owner_percentageNoMaster rights owner's share of the fee (0-100). Defaults to 50.
publisher_sync_percentageNoPublisher's share of the publishing side (0-100). The rest goes to the songwriter. Defaults to 50.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description usefully adds the scope caveat about working outside the OnChain catalog and discloses the internal allocation order, but omits rounding/precision behavior and how defaults interact with the split.

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?

Two tight sentences, front-loaded with the core operation, followed by the scope note. No filler or redundancy.

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 calculator with no output schema, the description explains the entire computation chain well enough for an agent to predict the result. Minor gaps around units already in schema and rounding are negligible.

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 100%, so all three parameters are already documented with ranges and defaults. The description's mention of the publishing-side split loosely maps to publisher_sync_percentage but adds no format or edge-case detail beyond the schema.

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

Purpose4/5

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

States a specific verb (split) and resource (sync licensing fee) and lays out the two-stage allocation logic, so the operation is unambiguous. It does not explicitly contrast itself with the closely related sibling calculate_songwriter_publisher_split, which performs one of the sub-steps described here.

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 note that it 'works for any music, not only the OnChain Music catalog' implicitly signals scope, and the sync-fee framing implies when it applies. However there is no explicit when-to-use vs. when-not guidance against siblings like calculate_songwriter_publisher_split or calculate_cowriter_split.

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

estimate_streaming_royaltiesA
Read-onlyIdempotent
Inspect

Estimate low, mid, and high streaming payouts for a number of streams on a platform, before and after the artist royalty rate. Estimates use publicly reported averages; actual payouts vary. Works for any music.

ParametersJSON Schema
NameRequiredDescriptionDefault
streamsYesNumber of streams.
platformNoStreaming platform. Use "average" for a blended estimate. Defaults to average.
artist_royalty_rateNoArtist royalty rate as a percentage of label revenue (0-100). Use 100 for independent artists keeping all revenue. Defaults to 100.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive, and closed-world behavior, so the bar is low. The description nonetheless adds real behavioral context the annotations cannot: estimates derive from publicly reported averages, outputs are ranges (low/mid/high) reflected both pre- and post-royalty, and actual payouts will vary.

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?

Three tight sentences, front-loaded with the core action and output shape. The caveat about averages/actual payouts sits where an agent will read it; the trailing 'Works for any music' is mildly expendable but harmless.

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 no output schema, the description usefully discloses the return structure (low/mid/high, pre- and post-royalty) and the accuracy caveat. Combined with annotations and full schema coverage, an agent has enough to invoke it correctly; only explicit alternative-selection guidance is missing.

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 100%, so the schema fully documents streams, platform (including "average"), and artist_royalty_rate with its 0-100 range and default. The description restates these at a high level ('a number of streams on a platform, before and after the artist royalty rate') without adding format or edge-case detail, matching the baseline 3 when the schema does the work.

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 (Estimate) plus the exact resource (streaming payouts) and the output shape (low/mid/high, before and after royalty rate). This is clearly distinguishable from sibling calculators like calculate_cowriter_split or calculate_sync_fee_split, which deal with splits rather than streaming revenue.

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 implies the use case (roughly valuing a number of streams on a platform) and notes it works for any music, but never states when to prefer it over alternatives or any exclusions. No prerequisite or when-not guidance is offered, so the agent must infer context.

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

get_genre_conventions
Read-onlyIdempotent
Inspect

Returns music industry conventions for a given genre including typical BPM ranges, song structure, instrumentation, key tendencies, production characteristics, and common sync use cases. Useful for songwriting, production decisions, A&R research, playlist curation, and sync licensing briefs. Works for any music — not limited to the OnChain Music catalog.

ParametersJSON Schema
NameRequiredDescriptionDefault
genreYesThe genre to look up. Examples: Pop, Rock, Hip-Hop, Electronic, Jazz, Country, R&B, Classical, Indie, Metal, Folk, Latin, Reggae, Blues, Soul, Funk, Ambient, House, Techno, Drum and Bass, Trap, Lo-Fi.
include_sync_usesNoIf true, includes common sync licensing use cases for the genre (TV, film, advertising contexts). Default true.
get_loudness_standards
Read-onlyIdempotent
Inspect

Returns the official loudness normalization standards for major music and video platforms. Includes integrated LUFS target, true peak limit, and short-term LUFS where applicable. Useful for mastering decisions, mix prep, and ensuring tracks meet platform requirements before distribution or licensing. Works for any music — not limited to the OnChain Music catalog.

ParametersJSON Schema
NameRequiredDescriptionDefault
platformNoOptional. Filter to a specific platform. Examples: Spotify, Apple Music, YouTube, TikTok, Netflix, Amazon Music, Tidal, SoundCloud, Podcast. Leave empty to return all platforms.
get_track
Read-onlyIdempotent
Inspect

Retrieve full metadata for a specific track from the OnChain Music catalog or a partner catalog, including license pricing, available download formats, artist information, BPM, key, mood, and license terms. Use this after search_catalog or ai_search to confirm details before licensing. Pass the track id exactly as returned by search, including the "partner_" prefix for partner tracks.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_idYesThe track id exactly as returned by search_catalog or ai_search, for example "417" or "partner_82". Never remove the "partner_" prefix.
initiate_licenseA
Idempotent
Inspect

Start a license purchase for any track, including partner tracks. Returns a payment_id, the exact USDC amount, and the receiving wallet on Base (chain ID 8453). Before the user pays, confirm the track title and artist in track_to_confirm with them. The user must send the USDC from the same wallet address provided here; no memo is needed. After the user confirms they sent payment, call verify_license with the payment_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
track_idYesThe track id exactly as returned by search_catalog, ai_search, or get_track, for example "417" or "partner_82". Never remove the "partner_" prefix.
license_typeYessocial_media ($5 USDC: TikTok, Instagram, YouTube, X) or all_digital ($35 USDC: advertising, apps, games, podcasts, websites).
paying_walletYesThe Base wallet address (0x followed by 40 hex characters) the user will send USDC from.

TDQS

A4.7/5.0
Behavior4/5

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

Annotations declare non-readOnly, openWorld, idempotent, non-destructive, and the description adds real operational context: amounts, the Base chain ID 8453, the same-wallet requirement, and that no memo is required. It does not say how long a payment_id remains valid or what happens if initiate_license is called twice for the same track, which is the remaining gap given idempotentHint=true.

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

Conciseness5/5

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

The purpose and return values are front-loaded in the first sentence, followed by the confirmation prerequisite and the explicit next-step call. Every sentence carries an instruction or a factual constraint; nothing is padding.

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?

No output schema exists, yet the description enumerates the return payload (payment_id, exact USDC amount, receiving wallet on Base). Combined with the documented wallet and confirmation constraints and the named follow-up tool, an agent has everything needed to execute and continue the flow.

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 coverage is 100%, so the baseline is 3. The description goes beyond the schema by constraining paying_wallet to 'the same wallet address provided here' (i.e. the funding source must match the request parameter), which is a semantic constraint not present in the schema text, and by reinforcing the price/chain context for license_type.

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 ('Start a license purchase for any track, including partner tracks') and immediately distinguishes scope by noting partner tracks are covered. The successor tool verify_license is named, so the agent can place this step in the broader licensing flow without opening a schema.

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 multi-step guidance: confirm track title and artist with the user, send USDC from the same wallet given here, no memo needed, then call verify_license with the payment_id once payment is confirmed. Both the when-to-use and the handoff to the alternative tool are spelled out.

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

search_catalog
Read-onlyIdempotent
Inspect

Search the OnChain Music catalog of 8,800+ independently owned, fully cleared songs, plus partner catalogs. Filter by genre, tempo, BPM, key, and instrumentation. Use the description parameter as the primary search field for style, mood, energy, and use-case words. Returns up to 5 tracks per call. Show all returned tracks, mention meta.total so the user knows how many matches exist, and always share meta.results_url, which opens every match on onchainmusic.com. For more tracks, call again with the next page.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNoMusical key. Examples: C Minor, G Maj, A Minor, F Maj.
pageNoPage number. Use 2, 3, and so on when the user asks for more tracks.
genreNoGenre filter. Examples: Rock, Hip-Hop, Electronica, Orchestral, Jazz, Country, R&B, Pop.
bpm_maxNoMaximum BPM. Use with bpm_min to filter by tempo range.
bpm_minNoMinimum BPM. Use with bpm_max to filter by tempo range.
keywordsNoAdditional keyword search across track titles, artist names, and tags.
subgenreNoSubgenre filter. Examples: Indie, Deep House, Trap, Classical.
descriptionNoPRIMARY search field. Pass style, mood, energy, instrumentation, or use-case words. Each word is searched individually across multiple fields. Example: "epic orchestral trailer" or "upbeat summer pop".
instrumentalNoYes = instrumental only (no vocals). No = has vocals.
license_typeNoFilter by intended license type. social_media = $5 USDC. all_digital = $35 USDC.
verify_licenseA
Idempotent
Inspect

Check whether a license payment has been confirmed on Base. Returns status "license_issued" with download links for the available formats and license_pdf_url, a downloadable PDF of the license agreement. Share the download links and then the license PDF link with the user. If the status is still pending, tell the user and check again after they confirm the transaction went through. Confirmation usually takes 30 to 60 seconds. Payment windows expire; if expired, start a new license with initiate_license.

ParametersJSON Schema
NameRequiredDescriptionDefault
payment_idYesThe payment_id returned by initiate_license.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations (readOnlyHint=false, idempotentHint=true, openWorldHint=true, destructiveHint=false) cover the safety profile, and the description adds genuinely non-redundant behavior: confirmation typically takes 30-60 seconds, payment windows can expire, and the success payload contains download links plus license_pdf_url. It also prescribes the presentation order to the user, which no annotation conveys.

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?

Front-loads the purpose, then flows directly into the return shape, the pending path, the timing expectation, and the expiry fallback. Every sentence carries an instruction or a fact; nothing is padding.

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?

With no output schema, the description still enumerates the meaningful return values (license_issued status, download links, license_pdf_url) and the failure modes (pending, expired). An agent has everything needed to call this tool and act on its result.

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 coverage is 100% and the schema already documents payment_id as 'the payment_id returned by initiate_license', so the description adds no syntax, format, or constraint information beyond it. Baseline 3 applies when the structured field does all the work for a single parameter.

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 ('check whether a license payment has been confirmed on Base') and distinguishes itself from the sibling initiate_license by referring to it as the fallback for expired windows. An agent can route between verify_license and initiate_license from the description alone.

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 and what-to-do-next branches: poll again if the status is pending after the user confirms, and start a new license with initiate_license if the payment window is expired. It also names the alternative tool by name, which is exactly the sibling-routing guidance an agent needs.

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.

  1. 6 tool updates
    • Addedcalculate_cowriter_split
    • Addedcalculate_producer_points
    • Removedcalculate_royalty_split
    • Addedcalculate_songwriter_publisher_split
    • Addedcalculate_sync_fee_split
    • Addedestimate_streaming_royalties
  2. 1 tool update
    • Changedget_track2 fields changed
      • changedInput schema / properties / track_id / description
        Previous value: -"The track ID returned from search_catalog or ai_search results."New value: +"The track id exactly as returned by search_catalog or ai_search, for example \"417\" or \"partner_82\". Never remove the \"partner_\" prefix."
      • changedInput schema / properties / track_id / type
        Previous value: -"integer"New value: +"string"
  3. 1 tool update
    • Changedai_search1 field changed
      • changedInput schema / properties / phrase / description
        Previous value: -"Plain English music description. Examples: \"I need an upbeat indie rock track for a TV commercial\", \"dark ambient music for a horror game\", \"romantic acoustic guitar for a wedding video\"."New value: +"The user's request, passed through as close to verbatim as possible. Do not rephrase, expand, or add descriptive words, moods, or synonyms the user did not say; extra words narrow the results. Example: if the user says \"I need light pop instrumental songs for a radio ad\", send exactly that."
  4. 1 tool update
    • Changedinitiate_license2 fields changed
      • changedInput schema / properties / track_id / description
        Previous value: -"The track ID from search_catalog, ai_search, or get_track."New value: +"The track id exactly as returned by search_catalog, ai_search, or get_track, for example \"417\" or \"partner_82\". Never remove the \"partner_\" prefix."
      • changedInput schema / properties / track_id / type
        Previous value: -"integer"New value: +"string"
  5. 2 tool updates
    • Changedai_search2 fields changed
      • removedInput schema / properties / per_page
        Removed value: -{
        -  "default": 10,
        -  "description": "Number of results to return. Default 10, maximum 50.",
        -  "maximum": 50,
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • changedInput schema / properties / phrase / description
        Previous value: -"Plain English music description. Be as descriptive as you like. Examples: \"I need an upbeat indie rock track for a TV commercial\", \"dark ambient music for a horror game\", \"romantic acoustic guitar for a wedding video\"."New value: +"Plain English music description. Examples: \"I need an upbeat indie rock track for a TV commercial\", \"dark ambient music for a horror game\", \"romantic acoustic guitar for a wedding video\"."
    • Changedsearch_catalog2 fields changed
      • changedInput schema / properties / page / description
        Previous value: -"Page number for pagination. Vary this for different results."New value: +"Page number. Use 2, 3, and so on when the user asks for more tracks."
      • removedInput schema / properties / per_page
        Removed value: -{
        -  "default": 20,
        -  "description": "Results per page. Default 20, maximum 50.",
        -  "maximum": 50,
        -  "minimum": 1,
        -  "type": "integer"
        -}
  6. 2 tool updates
    • Addedinitiate_license
    • Addedverify_license
  7. 6 tool updates
    • First observedai_search
    • First observedcalculate_royalty_split
    • First observedget_genre_conventions
    • First observedget_loudness_standards
    • First observedget_track
    • First observedsearch_catalog

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Perplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.
    2
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    11 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources