Skip to main content
Glama

Server Details

Import, approve, tag and feature customer testimonials in your testimonials.ltd workspace.

Ownership verified
Status
Healthy
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A3.6/5.0

Scored across 16 tools

Disambiguation4/5

Most tools target distinct resources/actions, but import_from_url and import_testimonials both import reviews into a space, and get_share_links overlaps with list_forms/list_widgets for links and embed codes. Descriptions help resolve most confusion, but these boundaries are not perfectly crisp.

Naming Consistency5/5

All tools use snake_case with a consistent verb_noun pattern (list_, get_, import_, moderate_, tag_, etc.). Minor singular/plural variation (get_testimonial, update_testimonial vs list_testimonials) is analogous to the high-coherence example and does not hinder readability.

Tool Count4/5

16 tools is slightly above the typical 3-15 sweet spot but still well-scoped for a testimonials management platform. Each tool serves a recognizable function, though the surface could be trimmed by consolidating import or share-link operations.

Completeness3/5

Core testimonial workflows (list, get, update, delete, moderate, tag, feature, import, stats) are covered, but the server lacks create/update/delete operations for spaces, forms, and widgets. Agents cannot set up new client spaces, collection forms, or widgets, which is a notable gap for a platform that references those resources.

Available Tools

16 tools
delete_testimonialsDelete testimonialsA
DestructiveIdempotent
Inspect

Permanently delete testimonials. Two steps: call WITHOUT confirm to get a preview (nothing is deleted), show it to the user, and only after they say yes call again with confirm=true. Prefer moderate_testimonials action=hide when the user just wants something off their site.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNotrue only after the user confirmed the preview
testimonial_idsYesTestimonial ids (from list_testimonials).

TDQS

A4.9/5.0
Behavior5/5

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

The annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds critical behavioral context beyond them: deletion is permanent, an initial call without confirm only previews and deletes nothing, and user confirmation is required before the destructive call. This preview/confirm workflow is not visible in the annotations and meaningfully reduces accidental deletion risk.

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, front-loaded with the core action ('Permanently delete testimonials'), followed by the required safety workflow and the preferred alternative. Every sentence carries necessary information with no filler.

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

Completeness5/5

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

For a destructive tool with no output schema, the description covers what an agent most needs: that deletion is permanent, the mandatory two-step confirmation flow, and a safer alternative for non-destructive intent. Combined with annotations that declare destructiveness, no critical calling information is missing.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by explaining the confirm flag's role in the two-step workflow (used only after the user approves the preview) and reinforcing that testimonial_ids are the targets of a permanent delete. It does not add format details, but the workflow context is a genuine value-add.

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

Purpose5/5

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

The description starts with a specific verb and resource: 'Permanently delete testimonials.' It immediately distinguishes the tool from the sibling 'moderate_testimonials' by naming the alternative and its hide action. An agent can identify the tool's operation and its scope 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 Guidelines5/5

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

It provides explicit when-to-use guidance via a two-step confirmation procedure (call without confirm to preview, then with confirm=true after user approval) and an explicit when-not-to-use alternative ('Prefer moderate_testimonials action=hide when the user just wants something off their site'). Nothing about selection is left to inference.

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

feature_testimonialsStar and pin testimonialsA
Idempotent
Inspect

Star (favorite) testimonials and optionally pin them, in the given order, to the top of a widget. Set favorite=false or unpin=true to undo.

ParametersJSON Schema
NameRequiredDescriptionDefault
unpinNo
favoriteNo
testimonial_idsYesTestimonial ids (from list_testimonials).
pin_to_widget_idNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare non-destructive, idempotent writes, and the description usefully adds reversal semantics and the fact that ordering of testimonial_ids is preserved when pinning. It doesn't disclose permission requirements or what a partial failure across up to 200 ids looks like, which keeps it below 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 primary action and followed by the reversal rule. No filler and no repetition of the title.

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

Completeness4/5

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

For a 4-parameter mutation tool with no output schema, the description covers the action, the optional pin step, ordering, and undo. The remaining gap is the exact role of pin_to_widget_id and the response shape, but nothing critical to invoking it correctly is missing.

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

Parameters4/5

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

Schema description coverage is only 25%, so the description must compensate, and it does: it clarifies the two boolean toggles (favorite default true, unpin) and that array order is meaningful. It leaves pin_to_widget_id implicit rather than stating whether it is required for pinning or what happens when omitted.

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

Purpose5/5

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

The description states specific verbs (star/favorite, pin) against a specific resource (testimonials, to the top of a widget), plus the reversal actions. It is clearly distinguishable from siblings like tag_testimonials or moderate_testimonials, which mutate different attributes.

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

Usage Guidelines4/5

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

It explains the conditional nature of pinning ('optionally pin them') and gives explicit undo instructions ('Set favorite=false or unpin=true'), which tells the agent how to reverse each effect. It does not name alternative tools or state when-not-to-use it, so it falls short of a full 5.

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

get_account_overviewAccount overviewA
Read-only
Inspect

Start here. The workspace, your role, plan limits, usage, testimonial counts and every space (product or client site) with its id.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. With no output schema, the description carries the return-value burden and does so by enumerating the aggregate contents (plan limits, usage, counts, spaces with ids), which is the useful behavioral context an agent needs to decide to call it first.

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 filler, with the actionable cue ('Start here') front-loaded ahead of the content inventory. Every clause earns its place by naming a distinct piece of returned data.

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 zero-parameter, read-only, closed-world tool with no output schema, the description supplies enough about the payload to call it correctly and interpret the result at a high level. It does not hint at shape or structure of the response, but nothing essential is missing for invocation.

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

Parameters4/5

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

The tool takes no parameters, so there is no parameter semantics to document; per the rubric this is the baseline 4. The description correctly implies a single no-argument call rather than suggesting filters that do not exist.

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 names the exact contents of the resource: workspace, role, plan limits, usage, testimonial counts, and every space with its id. That is far more specific than the title 'Account overview' and makes it distinguishable from narrower siblings like list_spaces or get_stats. The verb itself ('get') is only implied, but the resource and its payload are unambiguous.

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?

'Start here' is an explicit, front-loaded instruction on when to reach for this tool — the orientation call before narrower queries. It gives clear positive context but names no alternatives or exclusions (e.g., whether it supersedes list_spaces), so it stops short of full routing guidance.

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

get_statsTestimonial statsA
Read-only
Inspect

Counts by status, type, source and month, average rating (all and live), rating distribution, favorites, imported count and abandoned drafts. Optional space and date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceNoDate, e.g. 2026-01-01
untilNoDate, e.g. 2026-12-31
space_idNoSpace id, slug or name. Optional when the account has one space.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already establish readOnlyHint, destructiveHint=false and openWorldHint=false, so safety is covered. With no output schema, the description usefully discloses the shape of the aggregate results (the specific metrics returned), which is the key behavioral fact an agent needs here; it omits only auth/rate-limit context.

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 tight sentences, front-loaded with the metric list, with zero filler. The metric enumeration is dense but each item carries real information about the return payload, so it earns its length.

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 documented, annotations cover the safety profile, and the description compensates for the missing output schema by listing the returned aggregates. Only the relationship to the similar get_account_overview sibling is left 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%, so the three optional parameters (since, until, space_id) are already fully documented with examples. The description adds only a loose 'space and date range' phrasing, which does not extend the schema's meaning. 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?

The description enumerates exactly what the tool computes (counts by status/type/source/month, average rating, rating distribution, favorites, imported count, abandoned drafts), so the resource and operation are unambiguous. It does not, however, differentiate itself from the somewhat similar get_account_overview sibling, leaving the agent to infer the distinction.

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 only guidance is 'Optional space and date range,' which is parameter information, not usage guidance. There is no statement of when to reach for this aggregation tool versus list_testimonials or get_account_overview, and no exclusions.

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

get_testimonialGet one testimonialB
Read-only
Inspect

Everything about one testimonial: full text, reviewer details, source link, images, labels, video, and its moderation history.

ParametersJSON Schema
NameRequiredDescriptionDefault
testimonial_idYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds value by enumerating what is returned (including moderation history), but says nothing about auth needs, error behavior, or pagination.

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 with no waste; the return-contents enumeration is compact. Slightly list-heavy but appropriately sized.

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 no output schema, the description usefully previews the return payload, which is the main thing an agent needs. However it omits how to source the ID and any failure modes, leaving a modest gap for a lookup tool.

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

Parameters2/5

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

Schema coverage is 0% and the description never explains testimonial_id — no format, source, or how to obtain it. The parameter name is self-evident, but the description does nothing to compensate for the documentation gap.

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

Purpose4/5

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

States a clear verb+resource ('get one testimonial') and enumerates the returned payload (text, reviewer details, source link, images, labels, video, moderation history). The word 'one' implicitly separates it from list_testimonials, but no sibling is named 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?

There is no when-to-use guidance, no mention of obtaining a testimonial_id, and no comparison to list_testimonials or get_stats. Usage context must be entirely inferred from the name.

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

import_from_urlImport every review from a review pageAInspect

Our server fetches EVERY review (all pages, with reviewer photos and review images) from a public review page and imports them into a space, exact words, duplicates skipped. Works directly, with no token, for G2, Yelp, Google Maps, Google Play, Facebook, Amazon and the App Store (full history: our server runs a scraper on testimonials.ltd's own account, within a monthly review allowance per account), the Chrome Web Store and the Shopify App Store. For Capterra, Trustpilot, Tripadvisor, Product Hunt and Clutch it answers status "use_another_route" with what to do instead (Claude's own fetch, or an optional apify_token from the user's own Apify account), as it does when the monthly allowance is used up. Large imports take several calls: each call works for about 40 seconds and returns progress ("Imported N of M total reviews") and a job_id; call again with just job_id until status is "done". Use preview=true first to show the user the source, total and a sample.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoPublic review page, app store or Maps link
stopNo
job_idNoContinue (or with stop=true, stop) an earlier import
methodNoauto
statusNoapproved
previewNoOnly read the first page and return total + sample; imports nothing
space_idNoSpace id, slug or name. Optional when the account has one space.
countriesNoApp Store storefront codes to include (default: the link's country plus the largest storefronts), or ["all"]
min_ratingNoLeave out reviews below this many stars
apify_tokenNoOptional: the user's own Apify API token (never stored), billed to their Apify account. Not needed for G2, Yelp, Google Maps, Google Play, Facebook, Amazon or the App Store unless the monthly allowance is used up. When used, pass it again on every job_id call.
copy_imagesNo
max_reviewsNoOptional cap; default is everything
low_rating_statusNoStatus for 1 to 3 star reviews (e.g. pending), overriding status

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only declare the generic profile (non-readonly, open-world, non-idempotent, non-destructive), while the description adds substantial behavior: duplicates are skipped, exact words are preserved, no token is needed for the primary sources, there is a monthly per-account allowance, each call runs ~40 seconds and returns a job_id plus progress, and the apify_token is never stored and is billed to the user. This is exactly the extra context annotations cannot carry.

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

Conciseness4/5

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

The core behavior is front-loaded in the first sentence, followed by source coverage, the async job flow, and the preview recommendation. It is dense with parentheticals and slightly run-on, but nearly every clause carries operational information rather than 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 13-parameter, zero-required tool with no output schema, the description covers the calling workflow (preview then job_id loop), the progress/status return format, and the allowance/alternative-source behavior. What is not covered is minor (exact response fields, full source-by-source matrix), and annotations carry the safety profile, so an agent has enough to invoke it correctly.

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 69%, and the description adds real meaning beyond it: the job_id continuation/stop loop, what preview=true returns (source, total, sample) and that it imports nothing, the semantics of apify_token and its persistence across job_id calls, and low_rating_status overriding status for 1-3 star reviews. It leaves method, countries, min_rating, copy_images, and max_reviews to the schema, but adds clear value on the non-obvious parameters.

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

Purpose5/5

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

The description states a specific verb+resource (fetch/import reviews from a public review page into a space) and enumerates the exact sources supported, distinguishing it from the generic sibling import_testimonials. An agent knows immediately what this tool does and its scope.

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

Usage Guidelines4/5

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

It gives concrete workflow guidance: run preview=true first, pass apify_token only for the listed second-tier sources or when the allowance is exhausted, and expect use_another_route with an alternative (Claude's own fetch). It does not explicitly contrast against the sibling import_testimonials, so it falls just short of a full when/when-not/alternatives statement.

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

import_testimonialsImport reviewsA
Idempotent
Inspect

Bulk-import reviews from any platform (Trustpilot, G2, Capterra, Google, Yelp, App Store, Product Hunt, ...) into a space. Up to 100 per call. Text must be the customer's exact words (never summarise or fix it). Duplicates (same review id, link, or same text and author) are skipped. Reviewer photos and review images are copied to the user's own storage. Run with dry_run=true first to preview. status sets whether they go live (approved), into the approval queue (pending) or stay hidden; a review can override it with its own status.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoapproved
dry_runNo
form_idNoOptional form to file them under
reviewsYes
space_idNoSpace id, slug or name. Optional when the account has one space.
copy_imagesNo
skip_duplicatesNo

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses the 100-per-call batch limit, deduplication rules (which is the mechanism behind idempotentHint), that reviewer photos/images are copied into the user's own storage, and how status values map to live/approval-queue/hidden. That is exactly the kind of side-effect detail annotations cannot carry.

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?

Front-loaded with the core action and volume cap, then incremental detail; nearly every sentence adds a distinct rule (exactness, dedup, image copying, dry-run, status). The status sentence is slightly dense but not wasteful.

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 7-parameter, 100-item bulk mutation with no output schema and low schema coverage, the description supplies the operational essentials an agent needs to call it safely: preview-first guidance, dedup behavior, storage side effects, and status semantics. Remaining gaps (space_id/form_id, per-item validation failures) are minor.

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 only 29%, so the description must compensate, and it does for the highest-impact params: dry_run, status (all three enum meanings plus per-review override), copy_images (photos copied), skip_duplicates (duplicates skipped), and reviews content policy (exact words, up to 100). Only space_id and form_id remain unexplained, which is a modest gap rather than a failure.

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?

Opens with a specific verb+resource ("Bulk-import reviews") and names the target container ("into a space"), listing concrete source platforms. It is clearly distinguishable from siblings like import_from_url (single URL scrape) and the list_/get_testimonial read tools.

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?

Gives a concrete operational rule ("Run with dry_run=true first to preview") and conditions under which items are skipped (duplicates by id, link, or text+author). It does not explicitly route to an alternative sibling such as import_from_url or moderate_testimonials, but the context is clear enough to select correctly.

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

list_formsList collection formsC
Read-only
Inspect

Collection forms with their public share link (where customers leave a testimonial).

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idNoSpace id, slug or name. Optional when the account has one space.

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds useful context about what the returned items contain (forms coupled with their public share link), but says nothing about pagination, ordering, or result size, which is material for a list operation.

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?

One short sentence with no filler and the key detail (the public share link) front-loaded. It is efficient, though its fragmentary form leaves the action implicit.

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 one-parameter read-only list tool with no output schema and a fully documented parameter, the description covers the shape of the results adequately. However, it omits pagination/volume behavior and any routing guidance against closely related siblings, which would help an agent invoke it correctly.

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 space_id description already explains it accepts an id, slug, or name and is optional when the account has one space. The description contributes no additional meaning about space_id or scoping, so the baseline 3 applies.

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

Purpose3/5

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

The phrase names the resource (collection forms) and its payload (public share link where customers leave testimonials), which hints at the operation, but it is a noun fragment with no verb — the agent must rely on the tool name and title 'List collection forms' to know it retrieves rather than creates. It also does not distinguish itself from siblings like get_share_links or list_widgets that plausibly return overlapping data.

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, no prerequisites, and no mention of alternatives such as get_share_links for link-only retrieval or list_spaces for space enumeration. 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.

list_labelsList labelsA
Read-only
Inspect

The account's labels (tags) with how many testimonials carry each.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered; the description's added value is disclosing the return shape (each label accompanied by a testimonial count). With no output schema, that disclosure genuinely informs the agent what it will get back. It omits ordering or whether the counts span all or only published testimonials.

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?

A single sentence that front-loads the resource and packs the return detail with no filler. Nothing could be removed 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?

With no parameters, no output schema and full annotation coverage, the description supplies the one missing piece an agent needs: that the response pairs labels with usage counts. Slightly incomplete in not indicating ordering or count scope, but sufficient to call the tool correctly.

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?

The tool takes no parameters, so there is nothing for the description to clarify and the baseline is 4. The empty schema is consistent with the description, which implies an account-wide listing with no filtering options.

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 resource (the account's labels/tags) and even clarifies the synonym in parentheses, plus what each entry includes (testimonial counts). That distinguishes it from list_testimonials, list_forms, list_spaces and list_widgets, which cover different entities. It stops short of explicitly naming a sibling it replaces, so 4 rather than 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?

Use is implied rather than stated: an agent can infer 'call this to discover which labels exist.' There is no explicit when-to-use, no mention of pairing with tag_testimonials, and no exclusions. Adequate for a zero-parameter listing tool, but no real guidance.

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

list_spacesList spacesA
Read-only
Inspect

Every space with testimonial counts by status, form and widget counts, and its wall of love URL.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered; the description's added value is disclosing the return content (counts by status, form/widget counts, wall-of-love URL). With no output schema present, that return-shape context is genuinely useful, though it stops short of mentioning pagination or ordering.

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 with no filler. The parallel list ('testimonial counts by status, form and widget counts, and its wall of love URL') is slightly compressed and takes a beat to parse, but nothing is wasted.

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 no-param, no-output-schema read tool the description covers the essentials by naming the returned fields. It omits whether things like space name/id or empty spaces are included, which a consumer would need, but the gap is minor.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; no parameter meaning is missing or contradicted.

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 (spaces) and enumerates the payload (testimonial counts by status, form/widget counts, wall-of-love URL), which sets it apart from siblings like list_forms, list_widgets, and list_testimonials. It never uses an explicit verb like 'list', but 'Every space with...' makes the operation unambiguous.

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?

For a zero-parameter list tool the usage is largely implied by the name, and no alternatives or when-not-to-use conditions are offered. There is no guidance linking it to get_account_overview or other aggregate reads, so the agent must infer when to reach for it.

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

list_testimonialsFind testimonialsB
Read-only
Inspect

Search, filter and sort testimonials. Status "hidden" means rejected (not shown on widgets); "draft" means a reviewer started but never sent it. Long texts are shortened unless full_text is true; "words" is always the full word count. Paginate with offset.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNonewest
labelNoLabel name
limitNo
offsetNo
searchNoCase-insensitive match on text, reviewer name, title or company
statusNoall
favoriteNo
has_textNofalse = rating-only testimonials
space_idNoSpace id, slug or name. Optional when the account has one space.
full_textNo
max_ratingNo
min_ratingNo
created_afterNoDate, e.g. 2026-01-01
imported_onlyNo
created_beforeNoDate, e.g. 2026-06-30
source_platformNoe.g. google, g2, trustpilot, capterra, direct
testimonial_typeNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already establish a safe read-only profile, and the description adds real behavioral value on top: it disambiguates status values ('hidden' = rejected, 'draft' = abandoned review), discloses that long texts are truncated unless full_text is true, and notes 'words' always reflects the full count. Pagination via offset is also stated.

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 dense sentences, front-loaded with the core action and free of filler. Efficient and readable, though quite terse relative to the size of the parameter surface it needs to support.

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, the description usefully flags a couple of return-shape quirks (text truncation, 'words' field), but with 17 parameters and no output schema it omits most parameter behavior and any picture of the returned record fields. Adequate but incomplete.

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

Parameters3/5

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

With 17 parameters and only 41% schema description coverage, the description compensates for a few key ones (status, full_text, offset) but leaves most undocumented, including sort, limit, search, and the rating/date filters. It adds meaningful semantics for what it covers but is far from complete against a very wide 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?

The description opens with a specific verb set (search, filter, sort) and the resource (testimonials), so the operation is unambiguous. It doesn't explicitly differentiate from siblings like get_testimonial or moderate_testimonials, but the list/query intent is clear 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 Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as get_testimonial (single fetch) or moderate_testimonials. The status explanations describe domain semantics, not tool selection, so there are no when/when-not conditions or sibling routing.

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

list_widgetsList widgetsA
Read-only
Inspect

Widgets (wall, carousel, quote, video, marquee, avatars, collage, popup, collection) with where they were last seen and how many testimonials are pinned.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idNoSpace id, slug or name. Optional when the account has one space.

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, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds useful context about returned fields, but does not mention pagination, result limits, or auth requirements beyond 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.

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. The parenthetical widget list earns its place by clarifying the resource scope.

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 read-only list tool with one fully documented optional parameter and no output schema, the description covers the resource and key return fields. It leaves minor gaps around pagination and complete return shape, but the annotations and schema carry most of the remaining load.

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 the single optional space_id parameter is fully documented in the schema. The description adds no parameter-specific syntax or filtering behavior 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?

The description names the resource (widgets), enumerates the concrete widget types, and states the returned metadata (last seen location, pinned testimonial count). This is specific enough to distinguish it from sibling listing tools such as list_testimonials, list_spaces, and list_forms.

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 explicit guidance on when to use this tool versus alternatives, nor does it state exclusions or prerequisites. The intended use is implied by the resource name, but no routing information is provided.

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

moderate_testimonialsApprove or hide testimonialsA
Idempotent
Inspect

Bulk moderation. approve = live on widgets and the wall; hide = rejected, kept but never shown (reversible); pending = back to the approval queue. Approving a draft promotes it.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoOptional note for the audit log
actionYes
testimonial_idsYesTestimonial ids (from list_testimonials).

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true and destructiveHint=false; the description reinforces this by stating hide is reversible and data is 'kept but never shown', and adds the non-obvious side effect that approving a draft promotes it. It does not cover permission requirements, the 200-item cap, or partial-failure behavior.

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

Conciseness5/5

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

Four short clauses front-loaded with 'Bulk moderation' then mapping each action to its effect; no filler, and the reversibility/promotion caveats are placed exactly where they matter.

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 mutation tool with no annotations gap (idempotent/destructive already declared) and no output schema, the description covers state transitions and reversibility well. It omits authorization context and limits, but nothing essential for correct invocation is missing.

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 67%, and the description supplies the semantic meaning of the enum values that the schema lists bare, which is the key interpretation gap for this tool. The 'note' audit-log parameter is only documented by the schema, not the description.

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

Purpose5/5

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

The tool is a bulk moderation verb applied to testimonials, and the description spells out the concrete outcome of each action ('live on widgets and the wall', 'kept but never shown', 'back to the approval queue'). This is materially more specific than the sibling 'update_testimonial' or 'delete_testimonials' and lets an agent tell moderation apart from deletion.

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?

Each enum value is explained so the agent knows which action accomplishes which state change, and the note that 'hide' is reversible implies when to prefer it over a destructive delete. It stops short of explicitly naming alternatives such as delete_testimonials for permanent removal or stating bulk-size constraints.

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

tag_testimonialsTag testimonialsB
Idempotent
Inspect

Add or remove labels by name on many testimonials. Missing labels are created.

ParametersJSON Schema
NameRequiredDescriptionDefault
add_labelsNo
remove_labelsNo
new_label_colorNoslate
testimonial_idsYesTestimonial ids (from list_testimonials).

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare this is a non-readonly, non-destructive, idempotent write. The description adds one genuinely useful behavior beyond them: missing labels are auto-created. It still omits what happens when a remove_labels target doesn't exist, the 200-item cap, and any auth/permission requirements.

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 action and followed immediately by the side effect. Nothing extraneous.

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 4-parameter bulk mutation with no output schema, the description covers the action and one side effect but leaves the per-parameter limits, partial-failure behavior, and removal semantics 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 only 25% (only testimonial_ids is documented), so the description must compensate more. "by name" usefully clarifies that add_labels/remove_labels take label names, and "missing labels are created" hints at new_label_color's role, but the color enum's exact purpose is never stated.

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 pair (add/remove) on a named resource (labels on testimonials), which is enough to distinguish it from list_labels or delete_testimonials. It does not explicitly name a sibling, but the action 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?

"on many testimonials" implies a bulk operation, but the description never says when to use this versus update_testimonial or list_labels, and gives no prerequisites or exclusions. Guidance is inferred at best.

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

update_testimonialEdit a testimonialA
Idempotent
Inspect

Edit reviewer details, rating, source, headline or favorite. Only pass text to fix an obvious typo when the user explicitly asks: never reword a customer's testimonial.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNo
ratingNo
favoriteNo
source_urlNo
review_titleNo
reviewer_nameNo
reviewer_titleNo
testimonial_idYes
source_platformNo
reviewer_companyNo
reviewer_photo_urlNohttp(s) image link, or "" to clear

TDQS

A3.6/5.0
Behavior4/5

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

Annotations establish the safety profile (write, idempotent, non-destructive), so the bar is lower. The description adds a genuine behavioral constraint beyond the annotations: edits to the testimonial body are restricted to typo fixes and must never reword a customer's words. It omits auth requirements and partial-update semantics.

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 tight sentences with no filler, and the field list is front-loaded ahead of the constraint. Every clause earns its place, though the second sentence packs two distinct rules (typo-only and no rewording) into one.

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 11-parameter mutation tool with 9% schema coverage and no output schema, the description is under-specified: most parameter semantics are absent and no return/effect behavior is described. Annotations cover safety, and the typo rule is valuable, but the tool's complexity is not fully matched.

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 only 9% (just reviewer_photo_url), so the description carries most of the burden and only partially compensates: it names rating, source, headline, favorite and text, but leaves reviewer_name, reviewer_title, reviewer_company, source_platform, testimonial_id and photo_url semantics unaddressed. It adds real meaning for the text parameter via the typo rule.

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 (Edit) plus resource (testimonial) and enumerates the editable fields (reviewer details, rating, source, headline, favorite), so the agent knows exactly what is mutable. It does not, however, distinguish this from sibling mutators like moderate_testimonials or tag_testimonials, leaving sibling routing 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?

Provides one strong, explicit usage rule for the text parameter ('Only pass text to fix an obvious typo when the user explicitly asks'). However, it gives no when-to-use versus-when-not guidance at the tool level, nor does it route the agent toward alternatives such as moderate_testimonials or delete_testimonials.

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

Publisher details

Operator
testimonials.ltd · Publisher source
Vendor relationship
First-party · Publisher source
Trust center
Not available
Restrictions
Requires a testimonials.ltd account. · Publisher source

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    B
    maintenance
    Enables AI agents to read, verify, and submit testimonials in a private Testimonial.to Space, including separate customer-consent handling for text and video imports, requested email invitations, and reviewed ordered batches. Also supports previewing exact tasks and exporting one bounded private array of testimonials.
    10
    -
  • F
    license
    A
    quality
    B
    maintenance
    Enables AI agents to manage Senja testimonials and invites through 12 shared tools, covering listing, reading, importing, approving, tagging, deleting, sending form invites, inspecting link and account data, and running exact reviewed batches and bounded private exports across isolated project profiles.
    12
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    AI-native CRM with 33 tools. Pipeline, leads, health scores, revenue analytics, CSV import/export.
    3
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources