Skip to main content
Glama

Server Details

Short links with click, lead and sale analytics, customers, tags and the partner programme.

Glama couldn't complete the latest health check. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

B3.4/5.0

Scored across 22 tools

Disambiguation4/5

Most tools target distinct resources and actions, and descriptions clearly separate the analytics variants (aggregated vs. partner-specific vs. row-level events) and listing vs. counting links. A few boundaries (dub_get_analytics vs. dub_get_partner_analytics vs. dub_list_events) require reading descriptions, but overlaps are minor.

Naming Consistency5/5

Every tool follows a strict dub_verb_noun pattern (create_link, list_links, get_link, update_link, delete_link, approve_partner_application). No convention mixing or vague verbs; names are highly predictable.

Tool Count4/5

22 tools is slightly heavy but justified for a link-management plus affiliate-programme platform with links, folders, tags, domains, customers, partners, commissions and payouts. Each tool maps to a distinct operation, though a couple of niche reads could be consolidated.

Completeness3/5

Link lifecycle is fully covered (create/get/list/count/update/delete) and the partner programme is well represented, but folders and tags only have create+list with no update/delete, and domains, customers and payouts are read-only. These are notable gaps an agent would hit when managing those resources.

Available Tools

22 tools
dub_approve_partner_applicationApprove a partner applicationA
Destructive
Inspect

Approve an application to join the partner programme. The partner gains links and starts earning commission. Dub: POST /partners/applications/approve.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupIdNoPlace the partner in this group.
applicationIdYesThe application to approve.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations supply destructiveHint=true, so the safety bar is lower, and the description earns credit by disclosing the concrete consequence of approval: the partner gains links and starts earning commission. It stops short of saying whether the action is reversible or what state the application must be in.

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 short sentences, front-loaded with the action and its consequence, with the endpoint appended as useful orientation. No filler, though the endpoint string adds little for an agent that already has the tool bound.

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?

For an irreversible-ish mutation with no output schema and only a destructiveHint annotation, the description covers the effect but omits reversibility, idempotency, required application state, and permission needs. It is adequate but leaves the caller to infer operational constraints.

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 applicationId and groupId are already documented in the schema; the description adds nothing beyond that. Baseline 3 applies when the schema carries the parameter semantics.

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+resource ('Approving an application to join the partner programme') and even notes the downstream effect. It is clear what the tool does, though it never names its obvious sibling dub_reject_partner_application, so sibling differentiation is left to inference.

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 name and the described consequence, but there is no explicit when/when-not guidance and no pointer to the counterfactual action (reject) or any prerequisite state (e.g. the application must be pending).

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

dub_create_folderCreate a folderC
Destructive
Inspect

Create a folder for grouping links. Dub: POST /folders.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe folder name.
accessLevelNoDefault workspace access to the folder.
descriptionNoWhat the folder is for.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations supply destructiveHint=true, and the description adds nothing beyond the HTTP endpoint (POST /folders). It does not disclose permission requirements, duplicate-name behavior, what the accessLevel default is, or what the call returns. With annotations present, the description is expected to add context and does not.

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 short sentences, front-loaded with the purpose and with zero filler. The trailing "Dub: POST /folders" is of marginal value to an agent but costs little.

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?

For a simple three-parameter create tool with full schema coverage and no output schema, the description covers the essentials of what the tool does. It falls short on when to use it and on the behavioral implications of the declared destructiveHint, which an agent would want before creating workspace-organizing resources.

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% and all three parameters (name, accessLevel, description) are documented in the schema, so baseline 3 applies. The description provides no additional parameter meaning, such as explaining when to set accessLevel or what each enum value implies.

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 states a specific verb and resource ("Create a folder") and adds scope with "for grouping links," which tells the agent what folders are for relative to the link-centric siblings. It does not explicitly distinguish itself from dub_create_link or dub_create_tag, but the resource noun is unambiguous.

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

Usage Guidelines2/5

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

There is no guidance on when to create a folder versus using tags (dub_create_tag) or how folders relate to link organization, and no mention of prerequisites such as workspace permissions. The agent must infer usage entirely from the name.

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

dub_create_tagCreate a tagC
Destructive
Inspect

Create a tag for organising links. Dub: POST /tags.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe tag name.
colorNoTag colour in the dashboard.

TDQS

C2.9/5.0
Behavior1/5

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

The annotations declare destructiveHint=true, but the description says 'Create a tag', which is an additive operation. This is a direct contradiction: creation is not destructive. Additionally, the description does not disclose authentication needs, duplicate-tag behavior, or side effects.

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 short sentences, front-loaded with the purpose. Every word contributes, and the endpoint information is compact. No filler or redundancy.

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?

For a simple two-parameter create tool with full schema coverage and no output schema, the description covers the basic purpose. However, it fails to address behavioral gaps around creation semantics, duplicate handling, or permissions, and the annotation contradiction leaves the agent with an unclear safety profile.

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 parameters (name, color) are already documented in the schema. The description adds no parameter-level detail beyond what the schema provides, which is the baseline expectation when schema coverage is complete.

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 states a clear verb and resource: 'Create a tag'. It also provides the HTTP endpoint. However, it does not differentiate from siblings like dub_list_tags or dub_create_folder beyond the tool name itself.

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

Usage Guidelines2/5

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

The phrase 'for organising links' implies a general use case, but there is no explicit guidance on when to use this tool versus alternatives such as dub_list_tags or dub_create_link. No prerequisites or exclusions are mentioned.

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

dub_get_analyticsGet analyticsA
Read-only
Inspect

Get aggregated click, lead and sale analytics, grouped by a dimension such as country, device, referer or top links. The main reporting read. Dub: GET /analytics.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoISO-8601 end of an absolute range.
keyNoThe short key, used with domain.
eventNoWhich event type to report. Defaults to clicks.
startNoISO-8601 start of an absolute range.
deviceNoFilter to one device type.
domainNoOnly links on this domain.
linkIdNoOnly this link.
countryNoFilter to one country code.
groupByNoDimension to group by, e.g. count, timeseries, top_links, countries, cities, devices, browsers, os, referers, utm_sources.
intervalNoRelative time window. Use start/end instead for an absolute range.

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, so the safe-read profile is covered by structured data. The description adds that results are aggregated and dimension-grouped and cites the underlying endpoint, but says nothing about result limits, pagination, or how defaults (e.g. event=clicks, a default interval) are applied.

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 compact sentences with zero filler, and the core capability and grouping model are front-loaded before the endpoint reference. Nothing could be cut without losing information.

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?

All parameters are optional and fully documented in the schema, so invocation risk is low, and the description conveys the grouped/aggregated return shape despite there being no output schema. It could still say more about the response structure for the various groupBy values, but coverage is solid for a read-only reporting tool.

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 ten parameters are already self-documented, and the description's mention of dimensions and event types largely mirrors the schema's groupBy and event enums. It adds no syntax, format, or interaction detail beyond the schema, so the baseline 3 applies.

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 and resource ('Get aggregated click, lead and sale analytics') plus the grouping model ('grouped by a dimension such as country, device, referer or top links'), which is more than a restatement of the name. It does not, however, distinguish itself from the sibling dub_get_partner_analytics, leaving that differentiation to inference.

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 main reporting read' implies this is the default analytics entry point, but no explicit when-to-use or when-not-to-use guidance is given. The agent must infer that dub_get_partner_analytics covers the partner-side case; the description never names or excludes it.

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

dub_get_customerGet one customerA
Read-only
Inspect

Fetch a single customer with their attribution. Dub: GET /customers/{id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
customer_idYesThe customer's Dub id.

TDQS

A3.5/5.0
Behavior3/5

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

The readOnlyHint annotation already tells the agent this is a safe read, so the bar is lower. The description adds that attribution data is included in the response, which is useful context, but it discloses nothing about not-found behavior, auth requirements, or response shape beyond that one field mention.

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 short sentences, front-loaded with the operation and payload, followed by the REST endpoint reference. No filler, though the endpoint string is low-value for an agent that never sees raw HTTP.

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 one-parameter read tool with annotations covering safety, the description is nearly sufficient. Because there is no output schema, the brief note that attribution comes back with the customer is doing real work in setting response expectations, though it is thin given no field-level detail.

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% with a single documented parameter, so the schema already fully explains customer_id. The description adds no syntax, format, or sourcing detail about the id beyond what the schema provides, so the baseline 3 applies.

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 and resource ('Fetch a single customer') and adds the returned payload scope ('with their attribution'). The word 'single' implicitly distinguishes it from the sibling dub_list_customers, but that alternative is never named, so the differentiation is left to inference.

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 singular-resource framing and the required customer_id, which together signal a lookup-by-id operation. There is no explicit statement of when to use this versus dub_list_customers, and no prerequisites or error conditions are mentioned.

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

dub_get_partner_analyticsGet partner analyticsA
Read-only
Inspect

Get analytics for the partner programme — clicks, leads, sales and revenue per partner. Dub: GET /partners/analytics.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoISO-8601 end of an absolute range.
startNoISO-8601 start of an absolute range.
groupByNoDimension to group by, e.g. count, timeseries, top_partners.
intervalNoRelative time window. Use start/end instead for an absolute range.
partnerIdNoOnly this partner.

TDQS

A3.6/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read. The description adds the metric scope (clicks, leads, sales, revenue) which is useful context, but says nothing about return format, pagination, aggregation behavior, or required scopes for a 5-parameter analytics query.

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 short sentences, zero waste, with the resource scope and metric list front-loaded before the endpoint reference. Nothing extraneous.

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 analytics query with fully documented parameters and no output schema, the description supplies the essentials and even hints at the returned metric dimensions. It would be stronger with a note on default window behavior and the grouping/timeseries options, but nothing critical 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 every parameter is already documented in the schema (including the enum values for interval and the start/end-vs-relative-window distinction). The description adds no parameter-level detail, so the baseline 3 applies.

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 and resource ('Get analytics for the partner programme') and enumerates the metrics returned (clicks, leads, sales, revenue per partner). This distinguishes it in scope from the sibling dub_get_analytics, though it never names that sibling explicitly, so it falls short of a 5.

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 'for the partner programme' implies when this tool applies versus general analytics, but there is no explicit when-to-use guidance, no stated defaults for the optional time parameters, and no mention of the dub_get_analytics alternative. Usage is inferred rather than stated.

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

dub_list_commissionsList commissionsA
Read-only
Inspect

List partner commissions, by partner, status, customer or time window. Dub: GET /commissions.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page number.
typeNoOnly commissions of this type, e.g. sale, lead, click.
statusNoOnly commissions in this state.
intervalNoRelative time window. Use start/end instead for an absolute range.
pageSizeNoPage size, 1-100.
partnerIdNoOnly this partner's commissions.
customerIdNoOnly commissions from this customer.

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, so the safe-read profile is covered. The description adds only the API endpoint (GET /commissions); it says nothing about pagination behavior or result shape, which matters for a paginated list endpoint with page/pageSize parameters.

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 with no filler; the scope and filter dimensions are front-loaded and the endpoint note is a single compact clause.

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 zero required params, full schema coverage, and annotations covering safety, this is nearly complete. The only gap is absence of any note on pagination/results behavior, which the lack of an output schema leaves unaddressed.

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 7 parameters are already documented in the schema, including the interval enum. The description restates the filter dimensions without adding syntax, defaults, or combined-filter semantics, so the baseline 3 applies.

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 and resource ('List partner commissions') plus the filterable dimensions, which is enough to distinguish it from near siblings like dub_list_payouts or dub_get_partner_analytics. It does not explicitly name or contrast with those siblings, so it falls short of a 5.

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 filter list ('by partner, status, customer or time window') implies when the tool is useful, but there is no explicit when-to-use, when-not-to-use, or alternative ('use dub_list_payouts for X'). Usage is inferable rather than stated.

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

dub_list_customersList customersB
Read-only
Inspect

List the customers Dub has attributed to links, by email, external id or link. Dub: GET /customers.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page number.
emailNoOnly the customer with this email.
linkIdNoOnly customers attributed to this link.
searchNoFree-text search.
pageSizeNoPage size, 1-100.
externalIdNoYour own id for the customer.

TDQS

B3.4/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read, so the description's main marginal contribution is the scoping context that results are link-attributed customers, plus the GET endpoint reference. It says nothing about pagination behavior, result ordering, or how multiple filters combine, so it adds only modest value beyond the annotation.

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 short sentences, the purpose and filter keys front-loaded. The trailing 'Dub: GET /customers.' is minor metadata but cheap and harmless; there is no padding or repetition.

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?

For a parameterless-required list endpoint with no output schema, an agent still lacks return-shape and pagination expectations (page/pageSize exist in schema but the description never mentions paged results). What is present is accurate and sufficient to invoke the tool, but not sufficient to predict its response.

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 every one of the six parameters documented inline, so the baseline is 3. The description echoes three of the filter keys already described in the schema and adds no semantics (e.g., AND/OR behavior between filters) beyond what structured data provides.

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 (list) and resource (customers), and clarifies that these are customers Dub has attributed to links, which goes beyond a tautological restatement of the name. It also names the filter keys (email, external id, link), letting an agent distinguish it from the singular dub_get_customer without opening the schema. It stops short of explicitly contrasting itself with that 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 mention of filtering 'by email, external id or link' implies when this tool is useful (bulk retrieval or lookup by identifier) but never states when-not to use it or names dub_get_customer as the single-record alternative. Usage is inferable but not spelled out.

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

dub_list_domainsList domainsB
Read-only
Inspect

List the short domains configured on the workspace. Dub: GET /domains.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page number.
searchNoFree-text search.
archivedNoInclude archived domains.
pageSizeNoPage size, 1-100.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered and the description adds only the upstream endpoint reference (GET /domains). It says nothing about pagination behavior, result caps, or workspace scoping beyond 'configured on the workspace'. With annotations carrying the safety burden, this is adequate but thin.

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 short sentences, front-loaded with the action and scope; the endpoint note is a compact, useful trailing detail. No filler.

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?

No output schema exists, so some return-shape guidance would help, and the description offers none. Combined with no usage routing, it is the minimum viable for a simple read-only list whose parameters are fully documented in the schema.

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 page, search, archived, and pageSize are all documented in the schema itself. The description adds no syntax, defaults, or interaction details beyond what the schema already provides, so the baseline 3 applies.

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 and resource ('List the short domains configured on the workspace'), which lets an agent distinguish it from dub_list_links, dub_list_folders, and dub_list_tags. It does not explicitly name a sibling or contrast with them, but the resource is unambiguous.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no mention of alternatives or how it relates to the other list_* tools. The agent must infer that this is the entry point for enumerating domains and that search/archived/page params control filtering.

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

dub_list_eventsList raw eventsA
Read-only
Inspect

List individual click, lead and sale events rather than aggregates — the row-level detail behind the analytics. Dub: GET /events.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoISO-8601 end of an absolute range.
pageNo1-based page number.
eventNoWhich event type to list.
limitNoPage size, 1-100.
startNoISO-8601 start of an absolute range.
linkIdNoOnly this link's events.
intervalNoRelative time window. Use start/end instead for an absolute range.
customerIdNoOnly this customer's events.

TDQS

A4/5.0
Behavior3/5

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

readOnlyHint=true already declares this a safe read operation, so the annotation carries the safety burden. The description adds the useful 'row-level vs aggregate' behavioral framing, but says nothing about pagination behavior or the shape of returned rows.

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 short sentences with zero filler; the key scoping distinction is front-loaded before the endpoint reference. 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?

For an 8-parameter, all-optional listing tool, the description captures purpose and the crucial semantic distinction from aggregates, while the schema fully covers parameter details. Since no output schema exists, a brief note on returned row shape would have added value, but nothing needed for a correct call 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% and all 8 parameters are documented in the schema (enums, ranges, pagination). The description adds no parameter-level meaning beyond what the schema already provides, so the baseline of 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 and resource ('List individual click, lead and sale events') and immediately scopes it against the aggregate alternative ('rather than aggregates'). An agent can distinguish it from dub_get_analytics without opening either schema.

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

Usage Guidelines4/5

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

The phrase 'rather than aggregates — the row-level detail behind the analytics' gives clear context for when this tool is the right choice versus an aggregated analytics call. It does not name dub_get_analytics explicitly or give exclusions, but the contrast is unambiguous.

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

dub_list_foldersList foldersB
Read-only
Inspect

List link folders and their access levels. Dub: GET /folders.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page number.
searchNoFree-text search over folder names.
pageSizeNoPage size, 1-100.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds only that access levels are included in the result, with no detail on pagination behavior, filtering semantics, or empty-result handling, so it adds modest value beyond structured fields.

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 short sentences with the purpose front-loaded and no wasted prose. The trailing 'Dub: GET /folders' is developer-facing filler but negligible in size.

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?

All three optional parameters are covered by the schema and there is no output schema, so the description only needs to frame the operation. It does so adequately, but says nothing about result ordering, pagination consequences, or what an empty list means.

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 page, search, and pageSize are fully documented by the schema itself. The description adds no syntax, defaults, or interaction notes beyond what the schema already provides, making the baseline 3 appropriate.

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 (List) and resource (link folders) plus what it returns (access levels), which distinguishes it from dub_create_folder and dub_list_links without opening a schema. It does not explicitly name a sibling, so it falls just short of a 5.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as searching or fetching individual folders, and no prerequisites or exclusions are stated. The REST endpoint reference is not usage guidance for an agent.

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

dub_list_partner_applicationsList partner applicationsB
Read-only
Inspect

List pending applications to join the partner programme. Dub: GET /partners/applications.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page number.
pageSizeNoPage size, 1-100.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safe-read profile is covered. The description adds one genuinely useful behavioral fact — only *pending* applications are returned, not the full set — but says nothing about pagination defaults, result ordering, or auth requirements.

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 short sentences, front-loaded with the scoping qualifier. The trailing 'Dub: GET /partners/applications' is REST endpoint bookkeeping of marginal value to an agent but costs little.

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?

For a 2-param read-only list tool this is close to adequate, and annotations cover safety. However with no output schema the description does not hint at the return shape, and pagination behavior (defaults, max size) is left entirely to the schema.

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% with both page and pageSize documented inline including ranges and 1-based indexing, so the schema carries the parameter burden. The description adds no pagination semantics beyond what the schema already states; baseline 3 applies.

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 (List) and resource (applications to join the partner programme) with a narrowing scope qualifier (pending). An agent can tell this apart from dub_list_partners and the approve/reject siblings, though the description never names those alternatives explicitly.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no mention of alternatives such as dub_list_partners (all partners) versus this tool (pending applications only). The 'pending' qualifier implies scope but the agent must infer when to reach for this versus the approve/reject flows.

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

dub_list_partnersList partnersB
Read-only
Inspect

List the partners (affiliates) in the programme, by status, country or email. Dub: GET /partners.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page number.
emailNoOnly the partner with this email.
searchNoFree-text search.
statusNoOnly partners in this state, e.g. approved, pending.
pageSizeNoPage size, 1-100.

TDQS

B3.4/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read, and the description adds that results can be filtered by status/country/email plus the underlying endpoint (GET /partners). It says nothing about pagination behaviour or result shape, so it adds only modest context beyond the annotation.

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?

A single front-loaded sentence covering purpose and filters, plus a short endpoint reference. Nothing is wasted, though the endpoint note is marginal value.

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?

For a read-only list tool with no output schema and full schema coverage, the description is adequate but thin: it does not characterize pagination, default page size, or how an empty result should be interpreted. The mention of a non-existent 'country' filter also leaves a small correctness 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%, so all five parameters are documented in the schema, establishing a baseline of 3. The description adds no syntax or format detail, and its filter list ('status, country or email') omits the free-text 'search' parameter and names a 'country' filter that does not exist in 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 and resource ('List the partners (affiliates) in the programme') and names the filter dimensions, so an agent knows this returns existing partners rather than applications. It does not explicitly name the sibling dub_list_partner_applications to disambiguate the two, which keeps it below a 5.

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 'in the programme' implies this is for already-enrolled partners as opposed to applicants handled by dub_list_partner_applications, but that distinction is left to inference. No explicit when-to-use or when-not-to-use guidance is given.

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

dub_list_payoutsList payoutsB
Read-only
Inspect

List partner payouts and their status. Dub: GET /payouts.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page number.
statusNoOnly payouts in this state.
pageSizeNoPage size, 1-100.
partnerIdNoOnly this partner's payouts.

TDQS

B3.2/5.0
Behavior3/5

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

readOnlyHint=true already establishes this as a safe read, so the bar is lower. The description adds that status is included in results, which is mild value, but it discloses nothing about pagination behavior, filtering semantics, or auth requirements beyond what annotations and schema already imply.

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 short sentences, front-loaded with the purpose, with no redundancy. The trailing 'Dub: GET /payouts' is a compact API mapping that adds minor orientation value rather than padding.

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?

For a four-parameter list tool with no output schema, the description covers the core purpose but omits return shape, pagination expectations, and how the status/partnerId filters interact. Adequate but with clear gaps for an agent needing to call it precisely.

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%, so page, pageSize, status, and partnerId are fully documented in the schema itself. The description's mention of 'status' loosely echoes the status filter but adds no format or syntax detail beyond the schema, so the baseline 3 applies.

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+resource ('List partner payouts') plus the returned attribute ('their status'), so the agent knows exactly what the tool produces. It does not, however, contrast with close siblings like dub_list_commissions or dub_list_partners, so differentiation is left implicit.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus alternatives such as dub_list_commissions, nor any mention of prerequisites or typical contexts. The agent must infer usage entirely from the name.

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

dub_list_tagsList tagsC
Read-only
Inspect

List the tags available for organising links. Dub: GET /tags.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page number.
searchNoFree-text search over tag names.
pageSizeNoPage size, 1-100.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, so the read-only nature is covered structurally; the description's 'List' merely restates it. It adds no behavioral context such as pagination behavior, default page size, or whether results are workspace-scoped, leaving the description with essentially no value beyond the annotation.

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 short sentences, front-loaded with the purpose. The trailing 'Dub: GET /tags.' endpoint reference is low-value but harmless and brief.

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?

For a simple read-only list tool with a fully documented three-parameter schema, the description is minimally viable. It omits any indication of what a returned tag looks like or how paging is handled, and with no output schema the description leaves return semantics entirely unexplained.

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 all three parameters (page, search, pageSize) fully documented in the schema, so the baseline of 3 applies. The description adds nothing—no default paging behavior or search semantics—beyond what the schema already provides.

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 ('List') and resource ('tags') plus the purpose ('for organising links'), which is enough to distinguish it from siblings like dub_list_links or dub_list_folders. It stops short of explicitly contrasting with any sibling, so it is clear but not maximally differentiated.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance, no conditions, and no mention of alternatives (e.g., dub_create_tag when the tag doesn't exist, or dub_list_links for per-link tags). The 'organising links' phrase implies context but does not route the agent.

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

dub_reject_partner_applicationReject a partner applicationC
Destructive
Inspect

Reject an application to join the partner programme. Dub: POST /partners/applications/reject.

ParametersJSON Schema
NameRequiredDescriptionDefault
applicationIdYesThe application to reject.

TDQS

C2.9/5.0
Behavior2/5

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

The destructiveHint=true annotation already tells the agent this is a destructive operation, and the description merely restates 'reject' without adding behavioral context such as irreversibility, whether the applicant is notified, or whether a rejected application can be reinstated. The only extra information is the underlying endpoint mapping, which is not behaviorally useful to an agent.

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 short sentences with the purpose front-loaded; the second sentence is only an API endpoint reference, which is mild filler but does not obscure the main point.

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?

For a simple one-parameter destructive tool the annotations and schema cover most of what an agent needs, but the description omits the one thing annotations cannot convey here: the consequence of rejecting and whether it is reversible. Adequate but with a clear 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% for the single applicationId parameter, so the schema already documents it fully. The description adds no format, sourcing, or constraint detail beyond what the schema provides, making the baseline 3 appropriate.

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 (reject) and resource (application to join the partner programme), which is a genuine improvement over the bare title and distinguishes it from sibling write tools. It does not explicitly contrast itself with dub_approve_partner_application, but the reject/approve opposition is self-evident.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus the alternative dub_approve_partner_application, no precondition (e.g. application must be pending), and no exclusions. Usage is only implied by the verb.

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. 22 tool updates
    • First observeddub_approve_partner_application
    • First observeddub_count_links
    • First observeddub_create_folder
    • First observeddub_create_link
    • First observeddub_create_tag
    • First observeddub_delete_link
    • First observeddub_get_analytics
    • First observeddub_get_customer
    • First observeddub_get_link
    • First observeddub_get_partner_analytics
    • First observeddub_list_commissions
    • First observeddub_list_customers
    • First observeddub_list_domains
    • First observeddub_list_events
    • First observeddub_list_folders
    • First observeddub_list_links
    • First observeddub_list_partner_applications
    • First observeddub_list_partners
    • First observeddub_list_payouts
    • First observeddub_list_tags
    • First observeddub_reject_partner_application
    • First observeddub_update_link

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    User can create short urls, edit short urls, get click analytics, generate qr codes and much more.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Affilio.link URL shortener — shorten affiliate links, get QR codes, powered by Affilio's affiliate link management platform.
    Apache 2.0
  • F
    license
    C
    quality
    B
    maintenance
    It enables AI agents and command-line users to manage short links, analytics, conversions, partner workflows, commissions, payouts, and private workspace profiles with explicit write controls and exact reviewed batch submissions.
    61
    -
  • A
    license
    A
    quality
    D
    maintenance
    Generate styled QR codes, manage dynamic short links with click analytics, and publish micro-landing pages via AI agents.
    19
    46 npm
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.