Skip to main content
Glama

Whirrwork

Server Details

Robot jobs, sourced prices with history, providers by country, robot-vs-human costs, and RFQs.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.9/5.0

Scored across 16 tools

Disambiguation5/5

Each tool targets a distinct resource+action: provider discovery (find_providers), provider comparison (compare_providers), single-profile lookup (get_provider), current vs historical prices (get_prices vs get_price_history), arithmetic (estimate_cost), and research stats (search_stats vs get_stat). Descriptions actively disambiguate workflow order (e.g. "Start here, then call get_use_case"), and the RFQ trio (template → submit → status) has clean boundaries.

Naming Consistency5/5

All 16 names are snake_case verb_noun (compare_providers, get_price_history, search_use_cases, submit_rfq) with a small, stable verb vocabulary of compare/find/get/list/search/estimate/submit. The only deviation, compare_robot_vs_human, still follows the verb-first pattern with a compound object.

Tool Count4/5

16 tools is on the heavier side but each maps to a distinct step in a genuinely broad domain (provider discovery, pricing, cost modelling, research citations, and RFQ lifecycle). Nothing looks redundant, though the surface could be trimmed slightly by folding search_stats/get_stat or list_countries into neighbors.

Completeness4/5

Covers the full buyer journey: browse categories/countries → search and get use cases → find/compare/get providers → get prices and history → estimate and model costs → template, submit, and track an RFQ, plus citable research stats. Minor gaps: no way to enumerate use cases by category (only counts or free-text search) and no supplier-side or provider-listing pagination operations.

Available Tools

16 tools
compare_providersCompare providersA
Read-onlyIdempotent
Inspect

Side-by-side comparison of 2-10 providers: coverage for a country, engagement models, published prices (USD-normalized), HQ, contact routes, shared jobs, last checked. Facts only, no ratings.

NameRequiredDescriptionDefault
idsYes
countryNoBuyer country: ISO 3166-1 alpha-2 ("AE") or English name ("United Arab Emirates").
use_caseNo

Output Schema

NameRequiredDescription
noteNo
matrixNoattribute -> provider id -> value
countryNo
use_caseNo
providersYes
shared_use_casesNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, closed-world and non-destructive, so the bar is lower. The description still adds real context beyond them: prices are USD-normalized, results are facts without ratings, and a 'last checked' freshness signal is returned — meaningful for judging the comparison output.

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 core scope and the item cardinality, followed by a short constraint ('Facts only, no ratings'). No filler or redundancy.

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

Completeness4/5

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

An output schema exists, so return structure needn't be spelled out, and the description is sufficient to call the tool correctly with ids and country. The only gap is the undocumented use_case parameter, which leaves one of three inputs semantically opaque.

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 33%: country is well documented in the schema, but ids and use_case are not. The description restates the 2-10 id bound and ties the comparison to country coverage, yet adds nothing about how use_case alters the comparison.

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 ('Side-by-side comparison of 2-10 providers') and enumerates the compared facets (coverage, engagement models, prices, HQ, contact routes, shared jobs, last checked). This clearly separates it from single-provider siblings like get_provider and from discovery tools like find_providers.

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

Usage Guidelines3/5

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

Usage is implied by the comparison semantics and the 'Facts only, no ratings' clause signals it is not a recommendation engine, but there is no explicit when-to-use versus get_provider/find_providers guidance and no stated prerequisites such as needing valid provider ids.

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

compare_robot_vs_humanRobot or human? Compare the costA
Read-onlyIdempotent
Inspect

Cost comparison of human labour (or a human service) against robot options (buy, lease, robots-as-a-service, robot service provider) for one of 22 jobs in one of 8 countries (US, DE, GB, JP, CN, IN, BR, MX). Uses the same model as whirrwork.com/tools/robot-vs-human/: every default input has a source or is flagged as an assumption (see input_sources). Returns monthly/annual cost, cost per unit, payback months, break-even utilisation, 5-year NPV vs the baseline, a verdict, non-cost factors, sensitivity ranking, and projections to 2035 with a crossover year range (robots-fast, base, robots-slow). Projections are modelled estimates, not facts: say so, and quote the range rather than one year. Examples: {"job":"warehouse-picking","country":"US"}; {"job":"commercial-floor-cleaning","country":"DE","inputs":{"volume":60000}}; {"job":"machine-tending","country":"US","region":"US-TX","include_projections":false}.

NameRequiredDescriptionDefault
jobYesJob slug. One of the 22 jobs in GET /api/v1/robot-vs-human/jobs.
inputsNoOptional overrides of default inputs, in the country currency. Fractions as 0-1 (uptime 0.85, rate 0.08).
regionNoOptional regional wage preset: US states US-CA, US-TX, US-NY, US-FL, US-IL, US-WA, US-PA, US-OH; China CN-E, CN-C, CN-W, CN-NE.
countryNoCountry for wage, on-cost and currency defaults (sourced: BLS, ILOSTAT, MHLW, NBS, Eurostat).US
baselineNoWhich human option to compare against (e.g. "human" or "service"). Defaults to the job default.
include_tornadoNoInclude the sensitivity (tornado) ranking of inputs by NPV swing.
include_projectionsNoInclude 2026-2035 projections for three scenarios and the crossover year range.

Output Schema

NameRequiredDescription
jobYes
labelYesAlways "Whirrwork modelled estimates, not facts"
inputsNoResolved inputs actually used (defaults + overrides), in the country currency; fractions 0-1
regionNo
countryYes
licenseNo
noncostNo
optionsYes
verdictYes
baselineNo
currencyYes
crossoverNo
best_robotNo
wage_basisNo
projectionsNoPer scenario (slow, base, fast): yearly cost per unit 2026-2035, constant 2026 money
sensitivityNo
input_sourcesYesPer input: status (sourced | derived | converted | assumption | user), source_id, source_url, note
model_versionYes
calculator_urlNo
methodology_urlNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), and the description adds real substance beyond them: defaults are sourced or flagged as assumptions via input_sources, and projections are modelled estimates that must be quoted as a range rather than a single year. It says nothing about auth, rate limits or latency, which keeps it short of a 5.

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?

Scope is front-loaded in the first sentence and the caveats sit at the end, with examples last. The enumeration of return fields (NPV, verdict, tornado, crossover range) is largely redundant given an output schema exists and is the main thing that could be trimmed.

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 moderately complex tool with a nested inputs object and an output schema, the description covers the comparison model, the sourcing discipline and the projection caveat an agent needs to call and report correctly. Nothing critical is missing, though the country/region lists are duplicated with the schema.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents every parameter, including the 0-1 fraction convention and the regional preset codes. The description only restates the 22-job/8-country bounds and shows a few example overrides without explaining any of the ~33 nested input fields, so it adds little beyond the schema.

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?

A specific verb and resource: cost comparison of human labour against four robot options (buy, lease, RaaS, service provider) across 22 jobs and 8 countries. It is clearly distinct from siblings such as estimate_cost, compare_providers and get_prices because it names both the comparison axis and the job/country 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?

Three concrete example invocations make the expected call shape and typical scenarios obvious, and the note on projections tells the agent how to present results. It never states when to prefer this over estimate_cost or compare_providers, so there is no explicit exclusion or alternative routing.

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

estimate_costEstimate a job cost from sourced benchmarksA
Read-onlyIdempotent
Inspect

Arithmetic on published prices: unit price × quantity, using exact unit conversions (acre↔hectare, sq ft↔m², mile↔km), preferring benchmarks whose region matches the country, converting currency at a dated ECB rate. Returns the range plus the basis rows (each with source_url, as_of, region match) and caveats. Returns estimate=null with a reason when no sourced benchmark fits; never invents a number. Example: {"use_case":"crop-spraying-drone","quantity":500,"unit":"hectare","country":"BR","currency":"USD"}.

NameRequiredDescriptionDefault
unitNoUnit of quantity, e.g. "hectare", "acre", "show", "month", "sq ft". Omit to use the most common benchmark unit.
countryNoBuyer country: ISO 3166-1 alpha-2 ("AE") or English name ("United Arab Emirates").
currencyNoExpress the result in this ISO 4217 currency
quantityNoHow many units (hectares, shows, months, inspections…). Omit for a per-unit price.
use_caseYes

Output Schema

NameRequiredDescription
unitNo
basisNo
notesNo
methodNo
reasonNo
countryNo
fx_dateNo
currencyNo
estimateYesnull = no sourced benchmark fits; never guessed
quantityNo
use_caseNo
fx_sourceNo
use_case_idYes
available_unitsNo

TDQS

A4.1/5.0
Behavior5/5

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

Despite annotations already declaring read-only/idempotent/non-destructive, the description adds substantial behavioral detail: exact unit conversion pairs, region-matching preference, dated ECB currency conversion, the return shape including basis rows (source_url, as_of, region match) and caveats, and the null-with-reason failure mode. The 'never invents a number' guarantee is exactly the kind of trust signal an agent needs.

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?

Dense but front-loaded: the core operation and conversion policy come first, then return shape, then failure behavior, then an example. Every element serves a purpose, though the single run-on opening sentence could be split for readability.

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?

Covers operation, conversion and rounding policy, region preference, return contents, and failure semantics, plus a concrete example. Even though an output schema exists, the extra narrative about basis rows and caveats makes the agent fully prepared to call and interpret the result.

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?

With 80% schema coverage the baseline is 3, but the description adds genuine meaning beyond the schema: currency is converted at a dated ECB rate, country drives region-match preference, and units are converted exactly across acre/hectare, sq ft/m², mile/km. The worked example also clarifies how the parameters combine.

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?

Opens with a specific verb+resource framing ('Arithmetic on published prices: unit price × quantity'), making clear this computes an estimate rather than retrieving raw rows. It distinguishes itself implicitly from retrieval siblings like get_prices or get_stat by emphasizing arithmetic and basis rows, though it never names those alternatives.

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

Usage Guidelines3/5

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

The usage context is implied (you need a cost estimate for a use case) and the fallback behavior (estimate=null with reason when no benchmark fits) tells the agent what to expect. However, there is no explicit 'use this instead of get_prices when…' routing among the many pricing siblings, leaving the agent to infer when this tool is preferred over raw price lookups.

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

find_providersFind providersA
Read-onlyIdempotent
Inspect

Shortlist providers for a job and place. Ranked: lists the region > lists the country > lists part of the country > headquartered there (HQ is not a service area) > works worldwide. Each result has coverage + coverage_reason, engagement models, published pricing with USD conversion, min_published_price_usd and public contact routes. Coverage is country-level unless the provider published regions. Filters combine (AND). Example: {"use_case":"drone-light-show","country":"AE"}; {"use_case":"commercial-floor-scrubbing","country":"CA","region":"ON","engagement_model":"raas"}.

NameRequiredDescriptionDefault
nearNo"me" = the country Cloudflare sees for this request (never stored), or a country name/code. Coordinates are not supported.
sortNorelevance
limitNo
queryNoKeyword filter on name/description
offsetNo
regionNoSub-country region code or name, e.g. "US-CA", "ON", "Mendoza"
countryNoBuyer country: ISO 3166-1 alpha-2 ("AE") or English name ("United Arab Emirates").
use_caseNoUse case id (recommended)
hq_countryNoOnly providers headquartered in this country
robot_typeNoSubstring match on robot types, e.g. "drone", "AMR", "humanoid"
has_contactNoOnly providers with a public email, phone or quote form
has_pricingNoOnly providers that publish prices
max_price_usdNoOnly providers whose lowest published price (converted to USD) is at or below this. Excludes providers without published prices.
include_globalNoInclude providers that only say "worldwide" when a country is given
engagement_modelNo

Output Schema

NameRequiredDescription
noteNo
countYes
regionNo
countryNo
rankingNo
use_caseNo
providersYes
near_sourceNo
next_offsetNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely non-schema behavior: the exact relevance ranking order, that HQ location is not a service area, that coverage is country-level unless regions are published, and that AND-combination applies across filters. Return-field enumeration overlaps the output schema, which caps it at 4.

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?

Purpose is front-loaded, and the ranking chain is a single dense but scannable sentence. The two JSON examples earn their place by demonstrating AND-combined filters. Slight density in the results sentence keeps it from a 5.

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 15-parameter search tool with annotations and an output schema, the description covers the hard parts an agent would otherwise get wrong: ranking, coverage level, HQ-vs-service-area, and filter combination. Pagination and sort semantics are left to the schema, which is acceptable but leaves a minor gap.

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 73%, and the description adds real meaning on top: the country/region/hq_country interplay and its effect on ranking, the semantics of worldwide-only providers in relation to include_global, and coverage granularity. It does not explain sort option meanings or limit/offset pagination behavior, so it is not fully compensatory.

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 first sentence states a specific verb and resource (shortlist providers) and immediately scopes it to a job and place. The ranking chain and result-field list make the tool's output shape unmistakable. It does not explicitly name the boundary with siblings like get_provider or compare_providers, so it falls short of a 5.

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

Usage Guidelines3/5

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

Two concrete invocation examples (use_case+country, and use_case+country+region+engagement_model) plus the note that filters combine with AND give implied usage. However, there is no explicit guidance on when to prefer this over get_provider or compare_providers, nor any stated exclusions.

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

get_price_historyGet price historyA
Read-onlyIdempotent
Inspect

Every price observation we have recorded (append-only; never overwritten) for a job and/or provider, grouped into series with trend (change_pct between first and latest observation). observed_at = when we recorded it; as_of = the date the source states. If every series has one observation, say so: there is no trend yet.

NameRequiredDescriptionDefault
limitNo
sinceNoYYYY-MM-DD; only observations recorded on/after this date
seriesNoA series_key to follow one price over time
providerNo
use_caseNo

Output Schema

NameRequiredDescription
noteNo
totalYes
seriesYes
sourceNo
licenseNo
paginationNo
observationsYes
tracking_sinceNo
source_rechecksNo

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, idempotent, non-destructive, closed-world. The description adds real behavioral context beyond them: the data is append-only and never overwritten, the trend is defined as change_pct between first and latest, and observed_at vs as_of are distinguished. It does not mention the limit/cap behavior (default 100, max 500), which is the remaining gap.

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 with the core claim front-loaded. The parenthetical about append-only and the trend definition earn their place; the trailing instruction about single-observation series is slightly meta but still useful.

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?

An output schema exists, so return structure does not need explaining, and the read-only annotations cover safety. What an agent still lacks is guidance on result size/pagination and the role of the use_case parameter, but the essential semantics for calling it correctly are present.

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 40% (limit, provider, and use_case are undocumented in the schema). The description clarifies 'series' as a filtered view and explains time semantics relevant to 'since', but leaves 'limit' and 'use_case' unaddressed. It also says 'for a job and/or provider' while the schema exposes 'use_case' rather than a job parameter, which mildly muddies the mapping.

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 and scope: every recorded price observation for a job and/or provider, grouped into series with a trend metric. That grouping/trend framing implicitly separates it from get_prices and compare_providers, 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?

The only directive is about output handling ('If every series has one observation, say so'), not about when to choose this tool over get_prices, compare_providers, or estimate_cost. No prerequisites, no when-not-to-use conditions are given.

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

get_pricesGet current pricesA
Read-onlyIdempotent
Inspect

Current sourced prices for a job (benchmarks + provider-published), or for one provider. Every row has source_url and as_of. Set convert (e.g. "USD") to add a clearly labelled conversion with the FX rate, date and source. Benchmarks, not quotes.

NameRequiredDescriptionDefault
limitNo
convertNoConvert to this ISO 4217 currency (dated ECB reference rate)USD
currencyNoOnly rows quoted in this ISO 4217 currency
providerNo
use_caseNo
include_providersNo

Output Schema

NameRequiredDescription
noteNo
countYes
pricesYes
fx_dateNo
licenseNo
summaryNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent and non-destructive, so the description correctly spends its words elsewhere: it discloses that every row carries source_url and as_of, that conversions are clearly labelled and FX-sourced, and that results are benchmarks rather than binding quotes. That provenance and caveat context is genuinely additive 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.

Conciseness4/5

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

Four compact sentences, front-loaded with the resource and scope before the conversion and caveat clauses. The telegraphic fragments ('Benchmarks, not quotes.') are dense rather than wasteful, though the clipped style costs a little 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?

An output schema exists, so return shape needn't be explained, and the description covers scope, provenance and conversion behavior. The remaining gap is behavioral detail on three undocumented parameters (limit paging, currency filtering, include_providers) for a six-parameter tool with no required fields.

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 33%, so the description should compensate more than it does. It does add real meaning for convert (a labelled conversion with FX rate, date and source) and covers provider ('or for one provider') and use_case ('for a job'), but limit, currency and include_providers are left entirely to the schema.

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

Purpose4/5

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

States a specific resource and scope: current sourced prices for a job or for a single provider, with provenance (benchmarks + provider-published). It implicitly contrasts with get_price_history via 'Current', but never names that sibling, so differentiation is inferred rather than explicit.

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?

'Benchmarks, not quotes' is a useful exclusion that steers quote-seeking agents toward the RFQ flow, but the description never says when to use this versus get_price_history or estimate_cost, both of which are close siblings. Usage is implied by the word 'current', not stated.

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

get_providerGet a providerB
Read-onlyIdempotent
Inspect

Full public profile of one provider: website, HQ, service regions and explicit service areas (with sources), jobs, robot types, engagement models, published prices (with USD), contact routes, sources and last-checked date.

NameRequiredDescriptionDefault
idYes
countryNoBuyer country: ISO 3166-1 alpha-2 ("AE") or English name ("United Arab Emirates").

Output Schema

NameRequiredDescription
idYes
urlYesWhirrwork profile page
nameYes
contactNo
pricingNo
websiteNo
coverageNoHow this provider relates to the requested place (serves region / country / part / HQ only / worldwide)
hq_countryNo
descriptionNo
robot_typesNo
source_urlsNo
last_checkedNo
use_case_idsNo
service_areasNo
contact_routesNo
coverage_reasonNo
service_regionsNo
engagement_modelsNo
has_published_pricingNo
published_price_countNo
min_published_price_usdNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety profile is covered. The description adds provenance context (sources, last-checked date, prices with USD), which hints at data freshness, but says nothing about pricing variability, country-dependent results, or errors for unknown ids.

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 that leads with the resource and scope before the field list; the enumeration is dense but each item earns its place as a reason to call the tool.

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 an output schema present, the long field list partly duplicates structured data, while the genuinely missing pieces — the id key format and the country parameter's effect — are left out. Adequate for a read-only getter but incomplete on inputs.

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 only 50% and the description contributes nothing about either parameter. It never states that lookup is keyed by provider id (e.g. 'sky-elements' slug) nor that the optional country parameter changes the buyer-country context, so the undocumented id parameter and the country semantics must be inferred entirely from the schema.

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

Purpose4/5

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

States it returns the full public profile of a single provider and enumerates the concrete contents (website, HQ, service regions, jobs, robot types, prices, contact routes). The singular 'one provider' implicitly separates it from find_providers and compare_providers, though it never names those siblings.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is the detail-lookup step after a search, but the description never says when to call it versus find_providers or compare_providers, nor any prerequisites.

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

get_rfq_statusCheck an RFQA
Read-onlyIdempotent
Inspect

Status of a submitted RFQ (received → matched → sent_to_suppliers → quoted → closed) with its status history. Needs the id and the access key returned by submit_rfq (the key= part of status_url).

NameRequiredDescriptionDefault
idYes
keyYes

Output Schema

NameRequiredDescription
idYes
statusYes
countryNo
created_atNo
updated_atNo
use_case_idNo
status_historyNo
matched_provider_countNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description adds value by disclosing the required access-key credential and the fact that a status history is returned alongside the current state. It stops short of describing failure behavior for an invalid key or the response shape.

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, no filler. What the tool returns and its lifecycle values come first; the credential prerequisite follows. Every clause earns its place.

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

Completeness4/5

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

With an output schema present, return values need no prose, and the description still flags the status history. Credentials, lifecycle states, and the upstream dependency on submit_rfq are all covered; only error/invalid-key behavior is left unstated, which is minor for a read-only lookup.

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 0% – the only structured hint is an example value for 'id'. The description compensates well by explaining where both parameters come from: the id of the submitted RFQ and the key extracted from the 'key=' portion of status_url returned by submit_rfq.

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?

Names the specific resource ('a submitted RFQ') and what it returns (status plus status history), even enumerating the lifecycle states. It is clearly distinct from submit_rfq, which it references as the credential source, though differentiation from the other siblings rests on the tool name rather than the description.

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

Usage Guidelines3/5

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

The prerequisite is stated explicitly ('Needs the id and the access key returned by submit_rfq'), which is real usage guidance for the submit-then-check flow. However, no alternative or when-not-to-use condition is given, so selection guidance is only implied by the workflow.

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

get_rfq_templateGet the RFQ template for a jobA
Read-onlyIdempotent
Inspect

The exact fields to collect from the buyer before submit_rfq: core fields (required flags, formats) plus the job-specific checklist suppliers need to price it (as extra.{key}), regulatory notes, and a filled example. Ask the buyer for these, then call submit_rfq.

NameRequiredDescriptionDefault
languageNoLanguage for use-case text (machine-translated; English is authoritative). Default en.
use_caseYes

Output Schema

NameRequiredDescription
notesNo
fieldsYes
submitNo
exampleNo
use_caseNo
buyer_tipsNo
use_case_idYes
regulatory_notesNo
engagement_modelsNo
supplier_checklistNo
supplier_checklist_localizedNo

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the annotations, the description explains what the template contains, including required flags, formats, extra.{key} checklist items, regulatory notes, and an example. That is useful behavioral context for an otherwise simple read-only tool, though it does not discuss failure modes or response structure in detail.

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 dense but well structured: it front-loads the template contents, explains the buyer workflow, and names the next tool call without 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?

An output schema exists, so the description does not need to document return values, and the annotations cover safety behavior. The main remaining gap is the lack of explicit explanation for the required use_case input, though the schema example and 'job-specific' wording make the intent recoverable.

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

Parameters3/5

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

The language parameter is documented in the schema, but use_case has no schema description and the tool description only indirectly implies it via 'job-specific' template content. With 50% schema description coverage, the description provides some contextual meaning but does not fully compensate for the undocumented required parameter.

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 clearly identifies the resource as the RFQ template fields to collect from a buyer, and states the scope: core fields, job-specific checklist, regulatory notes, and a filled example. It also distinguishes the tool from submit_rfq by explicitly placing it before submission.

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 explicit workflow guidance: use this before submit_rfq, ask the buyer for the fields, then call submit_rfq. It does not state when not to use the tool, but the primary usage context is unambiguous.

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

get_statGet one statistic with citationsA
Read-onlyIdempotent
Inspect

One Whirrwork Research statistic by slug: claim, figure, scope, measure type, primary source with archive link, publication/access/last-verified dates, verbatim source passage (when licensing allows), confidence, caveats, and citations in APA, Chicago, MLA and BibTeX (plus an APA citation of the original source). Licensed CC BY 4.0: attribute "Whirrwork (https://whirrwork.com), CC BY 4.0" and the original source.

NameRequiredDescriptionDefault
slugYes

Output Schema

NameRequiredDescription
urlYesPermanent Whirrwork page for this statistic
slugYes
claimYesOne-sentence claim (English)
quoteNo
scopeNo
staleNotrue = not re-verified for more than 180 days
topicNo
figureYes
sourceYes
caveatsNo
licenseNo
measureNoHow the figure was produced: official statistic, company claim, list price, survey, estimate, forecast...
releaseNo
accessedNo
citationsNo
confidenceYes
link_checkNo
quote_noteNo
report_urlNo
attributionNo
source_typeNo
verificationNo
last_verifiedNo

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/idempotent/closed-world, and the description goes well beyond them: it discloses conditional content ('verbatim source passage (when licensing allows)') and an explicit CC BY 4.0 attribution obligation with the exact required string. That licensing obligation is a real behavioral constraint an agent must honor that no annotation conveys.

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 that identifies the resource first, then the returned fields, then the licensing terms. Dense but nearly every clause carries information; only the full enumeration of citation formats is mildly padded given an output schema exists.

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?

An output schema exists, so listing return fields is largely redundant, but the description adds value the schema cannot: the conditional verbatim passage and the mandatory attribution text. What remains missing is discovery guidance (how to get a valid slug), which is the main completeness gap.

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

Parameters3/5

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

Schema description coverage is 0% for the single 'slug' parameter, so the description carries the burden; it only says 'by slug' without defining slug format, accepted patterns, or error behavior for an unknown slug. The schema's two examples partially compensate, keeping this at minimum-viable rather than failing.

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

Purpose4/5

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

States a specific verb and resource: retrieves one Whirrwork Research statistic by slug, and enumerates the payload the caller gets back. It is clearly distinguishable from search_stats by the singular 'one ... by slug' framing, though it never names the sibling that finds slugs.

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 never says when to use this tool versus search_stats, get_use_case, or any other sibling, nor does it state the precondition that a slug must already be known and where to obtain one. Only the phrase 'by slug' hints at usage context.

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

get_use_caseGet a robot jobA
Read-onlyIdempotent
Inspect

Everything about one job: what it is, robot types, ways to buy (service/rental/RaaS/purchase), honest buyer tips (including when a robot is overkill), regulatory notes, every sourced price benchmark (with source_url, as_of and a USD conversion), price-history counts, the RFQ checklist, and providers. Pass country (and optionally region) to rank providers by who serves that place, with the reason.

NameRequiredDescriptionDefault
idYesUse case id from search_use_cases
regionNoOptional sub-country region (e.g. "US-CA", "California", "Mendoza")
countryNoBuyer country: ISO 3166-1 alpha-2 ("AE") or English name ("United Arab Emirates").
languageNoLanguage for use-case text (machine-translated; English is authoritative). Default en.

Output Schema

NameRequiredDescription
idYes
urlYes
nameYes
regionNo
countryNo
geo_urlNo
name_enNo
rfq_urlNo
categoryNo
languageNo
providersYes
buyer_tipsNo
category_idNo
descriptionNo
robot_typesNo
buyer_phrasesNo
price_historyNo
price_summaryNo
price_benchmarksYes
regulatory_notesNo
rfq_template_urlNo
engagement_modelsNo
machine_translatedNo
what_to_specify_in_rfqNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, but the description adds real behavior: prices arrive with source_url, as_of and USD conversion, price-history counts are included, and providers are ranked by who serves the given place with a stated reason. Those are meaningful traits beyond the annotations; only auth or failure behavior (invalid id, missing country) is left unsaid.

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 sentence, front-loaded with "Everything about one job:" and then a scannable list, closing with the one actionable instruction. It runs long and several list items duplicate what the output schema already declares, which keeps it short of a 5.

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 a complete input schema, an output schema, and full annotations, the description only needed to convey scope and the country/region effect, which it does. It omits edge behavior (unknown id, provider list when no country is supplied), a minor gap given how much is carried structurally.

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 100%, so baseline is 3, but the description adds semantics the schema lacks: country and region are optional inputs that change provider ranking and the ranking includes a rationale. It also frames country as the primary geographic argument with region as the finer-grained option, which is not spelled out in the schema.

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

Purpose4/5

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

The description enumerates exactly what a single-job lookup returns (robot types, purchase models, prices, RFQ checklist, providers) and how the result changes with country/region, so an agent knows this is the full-detail fetch for one job id. It does not, however, distinguish itself from siblings that surface overlapping data (get_prices, find_providers, get_rfq_template) whose content it bundles, leaving the boundary implicit.

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

Usage Guidelines3/5

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

Usage is only implied: the id parameter's schema note pointing to search_use_cases and the "Pass country... to rank providers" sentence imply 'use this after you have an id and want everything about it.' There is no explicit when-to-use/when-not statement or named alternative for narrower needs like a price-only or provider-only lookup.

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

list_categoriesList categoriesA
Read-onlyIdempotent
Inspect

The 20 job categories with use-case counts, for browsing when the buyer is vague.

NameRequiredDescriptionDefault
languageNoLanguage for use-case text (machine-translated; English is authoritative). Default en.

Output Schema

NameRequiredDescription
categoriesYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and closed-world, so the safety profile is covered. The description adds the useful behavioral fact that the result set is a fixed, small enumeration (20) suitable for scanning, but says nothing about ordering or whether counts are live.

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?

One sentence, front-loaded with the returned artifact and followed by the usage condition. No 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?

Output schema exists and annotations are rich, so the description only needs to convey scope and intent, which it does. Minor gap: it doesn't clarify whether categories are stable identifiers worth passing to other tools.

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 single `language` parameter already documents the enum, the English-authoritative caveat, and the default. The description adds no parameter-level information, so the baseline of 3 applies.

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

Purpose4/5

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

States the resource precisely (job categories, count fixed at 20) and the returned payload (use-case counts). It distinguishes implicitly from search_use_cases/get_use_case by framing the tool as a browse-level overview rather than a lookup, though it never names a sibling.

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?

"For browsing when the buyer is vague" gives a concrete triggering condition and implicitly routes away from search/estimate tools when no query term exists. It stops short of naming the alternative to use once the buyer becomes specific.

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

list_countriesCoverage by countryA
Read-onlyIdempotent
Inspect

For each country: providers that list it as a service area, providers serving parts of it (with sub-regions), and providers headquartered there; plus the number of worldwide providers. Use to tell the buyer honestly how well their country is covered.

NameRequiredDescriptionDefault
countryNoOptional: just this country

Output Schema

NameRequiredDescription
urlNo
codeNo
nameNo
countriesNo
sub_regionsNo
providers_hqNo
global_providersYes
providers_servingNo
providers_serving_partNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so safety needs no restating. The description adds useful output composition (service-area providers, sub-region providers, headquarters providers, worldwide count), but says nothing about ordering, pagination, or how the optional country filter changes scope.

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 sentences with the output breakdown front-loaded and the use case trailing. Dense but every clause carries information; only the semicolon-heavy listing slightly slows parsing.

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 an output schema, rich annotations, and one optional parameter, the definition is nearly sufficient: the agent knows what the returned coverage categories mean and the safety profile. The remaining gap is scoping behavior when the country parameter is omitted versus supplied.

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 parameter is documented there as "just this country." The description only implies the default all-countries behavior via "For each country," adding marginal meaning beyond the schema, so 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 states precisely what the tool returns: per-country breakdowns of three provider categories plus a worldwide count. That's a clear resource and output shape, though it never explicitly contrasts with siblings like find_providers or compare_providers, so an agent must infer the difference.

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 to tell the buyer honestly how well their country is covered" gives a use case, so usage is implied rather than left blank. But no alternative is named and no when-not-to-use condition is stated, so routing between this and find_providers 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.

search_statsSearch citable robot statisticsA
Read-onlyIdempotent
Inspect

Search Whirrwork Research: 100+ citable statistics on robot adoption, industrial and service robots, humanoids, drones, agriculture, cleaning, warehouses, labour shortages, wages, prices and funding, plus figures from Whirrwork's own dataset. Each result has the exact figure with unit and scope, the primary source (publisher, title, date, URL, Wayback archive), access and last-verified dates, a confidence level (high/medium/low), source_type (primary/secondary/whirrwork) and a permanent URL. Quote figures with their source and date; prefer high-confidence primary sources. Call get_stat for the verbatim quote, caveats and ready-made APA/Chicago/MLA/BibTeX citations. Examples: "humanoid robots sold 2025", "robot density Korea", "drone spraying price per acre", "robotics funding", topic="labour".

NameRequiredDescriptionDefault
limitNo
queryNoKeywords (English). Omit to list by topic.
topicNoOptional topic filter
confidenceNo
source_typeNo

Output Schema

NameRequiredDescription
noteNo
countYes
queryNo
statsYes
topicNo
totalNo
topicsNo
licenseNo
releaseNo
attributionNo
standards_urlNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive and closed-world, and the description is consistent with that fixed dataset. It adds useful behavioral context beyond the annotations: what each result contains (figure, unit, scope, source chain, Wayback archive, verification dates, permanent URL) and the quoting/confidence preference. No rate limits or pagination behavior is mentioned, keeping it at 4.

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 purpose and dataset scope, then result shape, then the get_stat hand-off and examples. It is a bit dense in the middle field list, but each clause carries information an agent needs; no 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?

An output schema exists, so the heavy enumeration of result fields is somewhat redundant, but the description still supplies the confidence/source-type semantics and quoting guidance an agent needs to use results correctly. The only gap is that limit and the unfiltered-search behavior aren't clarified.

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 40%; query and topic are documented in-schema, while confidence, source_type and limit lack descriptions. The description partially compensates by explaining confidence semantics ('prefer high-confidence primary sources') and implying topic filtering via the 'topic="labour"' example, but it never clarifies the limit parameter or the confidence/source_type enum meanings beyond what the enum itself shows.

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 (search) and resource (citable robot statistics), enumerates the domains covered and the fields each result carries, and names the sibling get_stat for the deeper-detail path. An agent can distinguish it from get_stat or search_use_cases without opening any schema.

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

Usage Guidelines4/5

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

Gives concrete query examples and explicitly routes to get_stat when the verbatim quote or citation is needed, plus guidance to prefer high-confidence primary sources. It stops short of stating when NOT to use the tool (e.g., vs search_use_cases or the provider tools), so 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.

search_use_casesSearch robot jobsA
Read-onlyIdempotent
Inspect

Find the robot job (use case) that matches what the buyer wants, in plain words and in any of 12 languages. Returns matching use cases (id, name, price summary, provider count) plus matching providers and guides. Start here, then call get_use_case with the best id. Examples: "drone light show for a wedding", "robotic floor scrubbing for a warehouse", "limpieza de ventanas con drones", "无人机灯光秀".

NameRequiredDescriptionDefault
limitNo
queryYesWhat the buyer needs done, in their words
countryNoBuyer country: ISO 3166-1 alpha-2 ("AE") or English name ("United Arab Emirates").
languageNoLanguage for use-case text (machine-translated; English is authoritative). Default en.

Output Schema

NameRequiredDescription
nextYes
queryYes
guidesNo
countryNo
languageNo
providersYes
use_casesYes
match_qualityNo
detected_languageNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly=true, idempotent=true, destructive=false, so the safety profile is covered. The description adds real value beyond them: multilingual query/text support, that it returns not just use cases but also matching providers and guides, and the id-to-detail chaining pattern. It doesn't discuss ambiguity in matching or empty-result behavior.

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 purpose and next step in the first two clauses; no wasted preamble. The four inline examples plus the two already in the schema's query examples are mildly redundant, but they usefully demonstrate cross-lingual input.

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 an output schema available, the description doesn't need to enumerate return fields, yet it summarizes them helpfully and covers the follow-up call. The only gap is any hint about the country filter or result-count limit for a 4-parameter search tool.

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

Parameters3/5

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

At 75% schema coverage the schema already documents query, country, and language, and the description largely restates the natural-language/multilingual angle rather than adding syntax detail. The country filter and limit cap are never mentioned in the description, and "12 languages" conflicts with the 13-value language enum, a small but real inconsistency.

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 ("Find the robot job (use case)") plus scope ("in plain words and in any of 12 languages"). It is clearly distinguishable from siblings like find_providers, list_categories, and search_stats, and it explicitly names get_use_case as the follow-up.

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, then call get_use_case with the best id" gives an explicit entry point and next step in a multi-tool workflow. It stops short of saying when to prefer find_providers or compare_providers instead, so the routing is clear but not exhaustive.

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

submit_rfqSubmit a request for quotesAInspect

Submit a request for quotes for a real buyer who explicitly agreed to be contacted by matched suppliers (consent=true). Stored, auto-matched to providers by job + country, and reviewed by a human before anything is forwarded; nothing is emailed automatically. Returns id, status, matched provider ids, and a private status_url/access key for get_rfq_status. Use test=true for testing.

NameRequiredDescriptionDefault
jobYesOne sentence: what, where, how big
testNoMark as a test (excluded from stats, deleted)
extraNoAnswers to the job checklist, keyed as in get_rfq_template
consentYesMust be true: the buyer agreed to share the request (incl. email) with matched suppliers
countryYesBuyer country: ISO 3166-1 alpha-2 ("AE") or English name ("United Arab Emirates").
detailsNo
date_endNo
locationNoCity / site
agent_nameNoYour agent/product name
budget_maxNo
budget_minNo
date_startNo
use_case_idNo
contact_nameNo
contact_emailYes
contact_phoneNoOptional phone/WhatsApp/WeChat, international format
date_flexibleNo
provider_hintNoOptional provider id the buyer prefers
budget_currencyNoISO 4217
contact_companyNo

Output Schema

NameRequiredDescription
idYes
statusYes
is_testNo
messageNo
access_keyNo
status_urlNo
matched_provider_idsNo

TDQS

A4.4/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 full lifecycle (stored, auto-matched by job + country, human-reviewed before forwarding, nothing emailed automatically) and the private status_url/access key the caller must retain. That is exactly the operational context an agent needs and cannot infer from readOnlyHint/destructiveHint/openWorldHint.

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-loads the consent precondition and the matching/review behavior, then the return contract, in a tight two-sentence block. The sentences are long and clause-chained via semicolons, which costs a little readability but wastes no words.

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 20-parameter write tool, the description covers the consent gate, matching logic, human review, test mode, and handoff to get_rfq_status; the output schema already documents the return shape, so no further return-value detail is needed. Nothing critical to calling it correctly is missing.

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

Parameters3/5

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

The description adds real meaning for two parameters — it explains why 'job' and 'country' matter (they drive matching) and clarifies test-mode behavior — but roughly half the 20 parameters (budgets, dates, contact fields, use_case_id, agent_name) get no treatment in the description or schema. With 50% schema coverage, this is adequate but leaves gaps.

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 (submit a request for quotes) and immediately narrows the scope with the consent=true precondition and 'real buyer' qualifier. It is clearly distinct from siblings like get_rfq_status and get_rfq_template, which are named as the follow-up and the field-source respectively.

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 preconditions (buyer must be real and have consented) and a clear opting signal for non-production use ('Use test=true for testing'), plus routing to get_rfq_status for follow-up. It stops short of stating when NOT to submit, e.g. what to do if consent is absent.

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. 16 tool updates
    • First observedcompare_providers
    • First observedcompare_robot_vs_human
    • First observedestimate_cost
    • First observedfind_providers
    • First observedget_price_history
    • First observedget_prices
    • First observedget_provider
    • First observedget_rfq_status
    • First observedget_rfq_template
    • First observedget_stat
    • First observedget_use_case
    • First observedlist_categories
    • First observedlist_countries
    • First observedsearch_stats
    • First observedsearch_use_cases
    • First observedsubmit_rfq

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables agents to request physical-world tasks such as 3D printing, CNC fabrication, assembly, measurement, testing, on-site verification, and receive-repack-ship services from a human operator, with fixed-price quotes, status tracking, and evidence packages.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to hire real human operators for tasks requiring physical presence, human perception, or judgment, such as verification, testing, data collection, and physical-world tasks.
    4
    29 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Intelligently generates cost estimates and lead times for manufacturing RFPs by parsing requests, matching against historical quotes, and calculating activity-based costs with confidence scoring and human approval workflows.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources