Skip to main content
Glama

UTM Builder

utm_builder
Read-onlyIdempotent

A UTM builder for campaign URLs, with the tagging mistakes caught as you type. A HelpySelf tool (helpyself.com).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoutm_id: GA4's campaign id, tying the link to a campaign record.
urlYesThe destination page. A bare hostname is accepted and assumed https. Any utm_ parameters already on it are replaced and a warning says so; other query parameters and a fragment are kept.
termNoutm_term: the paid keyword, for search ads.
mediumNoutm_medium: the channel, such as cpc, email or social.
sourceNoutm_source: where the traffic comes from, as a short name such as google or newsletter. A pasted URL is flagged. Empty or omitted fields are left off the link.
contentNoutm_content: which link or creative, for telling two links in one campaign apart.
campaignNoutm_campaign: the campaign name, such as spring-sale.
normaliseNoLower-case each value and turn spaces into hyphens before building the link. On by default, because inconsistent casing splits one campaign into several in reporting. Off keeps values exactly as given and warns about casing and spaces instead.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • addedInput schema / properties / campaign / description
      Added value: +"utm_campaign: the campaign name, such as spring-sale."
    • addedInput schema / properties / content / description
      Added value: +"utm_content: which link or creative, for telling two links in one campaign apart."
    • addedInput schema / properties / id / description
      Added value: +"utm_id: GA4's campaign id, tying the link to a campaign record."
    • addedInput schema / properties / medium / description
      Added value: +"utm_medium: the channel, such as cpc, email or social."
    • addedInput schema / properties / normalise / description
      Added value: +"Lower-case each value and turn spaces into hyphens before building the link. On by default, because inconsistent casing splits one campaign into several in reporting. Off keeps values exactly as given and warns about casing and spaces instead."
    • addedInput schema / properties / source / description
      Added value: +"utm_source: where the traffic comes from, as a short name such as google or newsletter. A pasted URL is flagged. Empty or omitted fields are left off the link."
    • addedInput schema / properties / term / description
      Added value: +"utm_term: the paid keyword, for search ads."
    • addedInput schema / properties / url / description
      Added value: +"The destination page. A bare hostname is accepted and assumed https. Any utm_ parameters already on it are replaced and a warning says so; other query parameters and a fragment are kept."
  2. First observed

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds one extra behavioral trait – validation performed 'as you type' – which goes beyond the annotations and helps set expectations about input checking. It does not repeat or contradict the annotations.

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

Conciseness3/5

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

The first sentence is compact and front-loads the purpose. The second sentence, 'A HelpySelf tool (helpyself.com),' is brand attribution that gives an agent no selection or invocation value, so the description doesn't fully earn its length.

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

Completeness3/5

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

With a rich parameter schema and safety annotations, the description doesn't need to explain parameters or safety, and it does state the core purpose. However, it never mentions what the tool returns (the assembled URL string), and there is no output schema to fill that gap, so the description alone leaves that question open.

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 parameter explained in detail (e.g., url's replace-and-keep behavior, normalise's default and rationale, source's pasted-URL flag). The description itself adds no parameter-level information, so it stays at the baseline 3 since the schema already carries the heavy lifting.

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 phrase 'A UTM builder for campaign URLs' states the resource (campaign URLs) and the function (UTM tagging), and the clause about catching tagging mistakes highlights a distinctive behavior. It lacks an explicit imperative verb such as 'build', and there is no sibling UTM tool to differentiate from, so it just misses the 5-level specificity.

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?

Usage is implied by the noun-phrase description: this is the tool to call when a campaign URL needs UTM parameters. There is no explicit when-to-use or when-not-to-use guidance and no named alternative among the 100+ siblings, but the purpose is clear enough that an agent can infer the intended case.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources