Skip to main content
Glama

list_campaigns

Read-onlyIdempotent

List affiliate campaigns (default: active only). Optionally filter by status. Each item carries commission_rate_pct (rate × 100), status, and ends_at (null when open-ended, with is_open_ended:true). commission_rate is a legacy raw fraction kept for one release.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 20)
offsetNoNumber of results to skip (pagination, default 0)
statusNoFilter by campaign status (default active)

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already mark it read-only and idempotent, and the description adds valuable behavior beyond that: it explains output item fields, the commission_rate_pct multiplier, the null/end semantics for ongoing campaigns (is_open_ended:true), and warns that commission_rate is a legacy raw fraction. This is especially useful because there is no output schema.

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

Conciseness5/5

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

The description is compact and efficient: it opens with the core action, states the default behavior, then mentions the most important output details and a legacy-field warning. Every sentence provides recognizable value; 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 simple listing tool with fully documented parameters, the description covers the default and filter behavior and gives key output-field semantics, including a legacy-field warning. It could additionally clarify how to request records across all statuses (since singular status filter limits enumeration), but that is not a severe 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?

The input schema already fully describes limit, offset, and status, including defaults and the status enum. The description restates that status defaults to active but adds no materially new parameter-level details; the extra commission-rate explanation concerns output fields, not input parameters.

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

Purpose4/5

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

The description clearly identifies the resource and operation: 'List affiliate campaigns' with default active-only and optional status filtering. It does not explicitly point to the sibling get_campaign or differentiate itself, but its verb and plural scope make the intent clear enough.

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 description provides clear context: it is for listing campaigns, defaults to active, and supports an optional status filter. It does not explicitly state when to prefer it over get_campaign or another sibling, but the use case is reasonably obvious from the wording.

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.

TDQS

A3.9/5.0
Disambiguation4/5

Most tools clearly target distinct resources and actions, but there is some overlap: get_profile and get_my_earnings both expose balance/cap information, and list_my_profiles could be confused with get_profile. The descriptions are generally clear enough to avoid serious misselection.

Naming Consistency5/5

Every tool name follows a consistent snake_case verb_noun pattern: get_product, list_campaigns, submit_post, update_profile, etc. The verbs match the intended actions, and there are no mixed naming conventions or vague style deviations.

Tool Count4/5

Twenty tools is slightly heavy, but the count is reasonable for the scope: the server covers products, campaigns, posts, earnings, profiles, notifications, asset uploads, and AI tool usage/reviews. Each tool serves a recognizable purpose, so the size feels like breadth rather than redundancy.

Completeness3/5

Core workflows are present—search products, get campaigns, apply, generate tracking links, submit posts, view earnings, manage notifications—but there are notable gaps. There is no way to list past posts or retrieve a post_id except from submit_post, no list of campaign applications, and no tool discovery endpoint for the AI tool slugs used by declare_tool_usage and write_tool_review.