Skip to main content
Glama

Server Details

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

Ownership verified
Status
Healthy
Uptime
97.6% over 22 days
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 have a clear resource+action target (delete, feature, tag, moderate, update testimonials; list spaces/forms/labels/widgets). The main overlap is import_from_url vs import_testimonials, both bulk review imports, distinguished only by source (URL scraper vs manual payload), and feature_testimonials overlaps with update_testimonial's favorite field.

Naming Consistency5/5

Nearly every name is snake_case verb_noun (list_testimonials, get_stats, moderate_testimonials, tag_testimonials). The only minor deviation is import_from_url's verb_preposition_noun form, which is still readable and fits its purpose.

Tool Count4/5

16 tools cover distinct facets (account, spaces, forms, widgets, labels, testimonials, stats, imports) without obvious filler. It sits at the upper edge of a comfortable set but each tool earns its place.

Completeness3/5

Testimonial lifecycle is well covered (read, import, update, tag, feature, moderate, delete), but resources like spaces, widgets and forms are read-only — no create/update/delete for them — leaving a real gap for setup workflows. The two import tools also don't fully clarify when to use which.

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.

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.

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.

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, abandoned drafts, and per label (tag) the count and average rating plus how many are untagged. Optional space, label and date range.

NameRequiredDescriptionDefault
labelNoOnly testimonials carrying this label (name)
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 cover read-only safety, so the description correctly focuses on what the operation returns. Because there is no output schema, the detailed enumeration of computed metrics is valuable transparency. It still does not clarify date-range semantics, default space behavior, or how 'live' is defined.

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 description is a single dense sentence with no filler, and every listed metric appears relevant to the tool's purpose. It is somewhat run-on and does not front-load a clear verb, but the information is appropriately sized for a stats tool with no output schema.

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

Completeness4/5

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

For a read-only aggregation tool with full schema coverage and no output schema, the description does the important work of enumerating what is computed. The main remaining gap is usage context and filter semantics, but an agent can still understand what the tool returns and which optional filters it accepts.

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 baseline semantics are already supplied by the input schema. The description only restates that space, label, and date range are optional and adds no syntax, defaults, or filtering nuances beyond the schema.

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

Purpose4/5

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

The description makes the resource and metric set very concrete: counts by status/type/source/month, averages, distributions, favorites, imports, drafts, and per-label stats. It is clearly an aggregate testimonial-statistics tool. It does not explicitly distinguish itself from siblings such as get_account_overview, 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 Guidelines2/5

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

The only usage-related text is 'Optional space, label and date range,' which describes filters rather than when to choose this tool over alternatives. There is no explicit when-to-use guidance and no exclusion or alternative named despite nearby sibling tools like get_account_overview and list_testimonials.

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.

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, Trustpilot, Capterra, Yelp, Google Maps, Google Play, Facebook, Amazon and the App Store (full history: our server runs a scraper on testimonials.ltd's own account; paid plans unlimited, free workspaces 25 reviews a month), the Chrome Web Store and the Shopify App Store. For 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.

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 cover the safety profile, but the description adds substantial context they do not: duplicates are skipped, each call runs ~40 seconds and returns progress plus a job_id, free workspaces are capped at 25 reviews/month, the apify_token is never stored and is billed to the user's own Apify account, and it must be re-passed on every job_id call.

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?

It is front-loaded with the core action and every clause carries information (supported sites, rate limits, continuation, fallbacks). It is a dense run-on paragraph with heavy parentheticals rather than scannable structure, which slightly hurts readability.

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 mutation tool with no output schema, the description covers the essential operational facts: the paginated job_id loop, the preview step, allowance limits, and the fallback route. Minor gaps remain (error behavior beyond 'use_another_route', space_id resolution).

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%, so most params are documented structurally, but the description adds real semantics the schema lacks: the job_id/stop continuation protocol, why apify_token is unnecessary for certain sites, and the preview-first workflow. It does not explain status, low_rating_status, countries, or method beyond the enum values.

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 ('fetches EVERY review ... from a public review page and imports them into a space') with scope qualifiers (all pages, photos, duplicates skipped). An agent can immediately distinguish this URL-scraping importer from the sibling import_testimonials.

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 explicit conditions: use preview=true first, and for Tripadvisor/Product Hunt/Clutch (or exhausted allowance) the server returns 'use_another_route' with the alternatives (Claude's own fetch or an apify_token). It also explains the multi-call continuation via job_id. It stops short of contrasting with the sibling import_testimonials tool, so it is not a full 5.

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.

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).

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 labelsB
Read-only
Inspect

The account's labels (tags) with how many testimonials carry each, how many are live, and their average rating. Optional space. Tip: a collection link with ?tag= (or the collection widget's trigger(event, {tags: [...]})) labels new reviews automatically.

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

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, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful return-value context about what label data is included, but does not discuss permissions, rate limits, or output shape beyond the listed metrics.

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 return description is front-loaded and compact. The collection-link tip is useful context but is somewhat tangential to selecting and invoking this specific tool.

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?

There is no output schema, so the description appropriately explains the returned label metrics. For a simple read-only list tool with one fully documented optional parameter, this is nearly complete, though missing explicit alternatives guidance keeps it from 5.

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's 'Optional space' reinforces the optionality but adds no syntax or semantic detail beyond the schema.

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

Purpose4/5

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

The description clearly states the resource (labels/tags) and the specific returned data: testimonial counts, live counts, and average rating. It does not explicitly distinguish itself from siblings like tag_testimonials or list_testimonials, so it stops 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?

The only usage guidance is 'Optional space' and a tip about collection link tagging behavior. It does not explain when to use this tool versus alternatives such as tag_testimonials or list_testimonials, nor does it state any exclusions.

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.

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.

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.

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.

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.

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.

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedget_stats1 field changed
      • addedInput schema / properties / label
        Added value: +{
        +  "description": "Only testimonials carrying this label (name)",
        +  "type": "string"
        +}
    • Changedlist_labels1 field changed
      • addedInput schema / properties / space_id
        Added value: +{
        +  "description": "Space id, slug or name. Optional when the account has one space.",
        +  "type": "string"
        +}
  2. 16 tool updates
    • First observeddelete_testimonials
    • First observedfeature_testimonials
    • First observedget_account_overview
    • First observedget_share_links
    • First observedget_stats
    • First observedget_testimonial
    • First observedimport_from_url
    • First observedimport_testimonials
    • First observedlist_forms
    • First observedlist_labels
    • First observedlist_spaces
    • First observedlist_testimonials
    • First observedlist_widgets
    • First observedmoderate_testimonials
    • First observedtag_testimonials
    • First observedupdate_testimonial

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

  • A
    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
    26 npm
    AGPL 3.0
  • A
    license
    A
    quality
    A
    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
    19 npm
    AGPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    AI-native CRM with 33 tools. Pipeline, leads, health scores, revenue analytics, CSV import/export.
    4
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources