Skip to main content
Glama

Server Details

Price benchmarks, alternatives & daily price history across 17,000+ AI agents and MCP servers.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Available Tools

19 tools
compare_providersAInspect

Call this to decide between shortlisted providers. Inputs are resolved to REAL providers — exact handle, then exact display name — and are NEVER silently swapped for a fuzzy match: unknown inputs come back in unresolved_inputs with suggested_matches and a ready-to-retry corrected_call, and if EXACTLY ONE input is real (the other was invented/mistyped) it does NOT dead-end — it returns comparison_status: compared_with_market_peers, comparing the real provider against its actual in-market competitors — its nearest providers by text-embedding — (listed in compared_against_peers, with a recovery_note); only when ZERO inputs resolve does it return comparison_status: insufficient_valid_providers. When the compared providers are different delivery types it sets mixed_provider_types + a comparability_warning (a hosted agent and an MCP server are not directly equivalent). Full evidence-scored cards for 2-6 handles side by side, each with observed price, all-time community upvotes and provider type. Each card carries the full how_to_connect object (website, docs, MCP endpoint + config_snippet, A2A card, API) so you can act on the winner directly. Each card also carries reported_success — the machine-reported outcome rate from report_outcome (null until 5+ distinct correlated reporters in 90 days). Report your own outcome after using the winner. Accepts provider_ids (aliases: handles, ids; a comma-separated string is also accepted). Use after search_providers or research_capability; when a compared provider is over budget or weakly matched, inline suggested_alternatives are returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
provider_idsYes2-6 provider handles from search_providers/market_gaps, e.g. ["openhands","lexaclaw"]

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description fully discloses behavior: exact-match resolution ('NEVER silently swapped for a fuzzy match'), edge cases for one or zero valid inputs, mixed_provider_types warnings, and the meaning of reported_success (null until 5+ distinct correlated reporters in 90 days). This is exceptionally transparent.

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

Conciseness2/5

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

The description is a single dense paragraph with many clauses, semicolons, and parentheticals, making it hard to scan. Key output details are buried mid-paragraph. While every sentence carries technical importance, the lack of bullet points or front-loading hurts cognitive parsing for an agent.

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?

Given there is no output schema, the description thoroughly covers return structure: cards with observed price, community upvotes, provider type, how_to_connect object, reported_success, and specific comparison_status values. It also addresses edge cases and follow-up actions (report outcome), making it highly complete 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 input schema covers provider_ids at 100%, but the description adds critical details: accepted aliases ('handles, ids') and that a comma-separated string is also accepted. This goes beyond the schema's array type and improves invocation flexibility.

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 opens with a clear directive: 'Call this to decide between shortlisted providers.' It further specifies the output as 'Full evidence-scored cards for 2-6 handles side by side,' distinguishing it from single-provider tools like get_provider and from search/research tools like search_providers.

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

Usage Guidelines4/5

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

The description explicitly states it should be used after search_providers or research_capability, and notes when inline suggested_alternatives will appear. It does not explicitly exclude scenarios like querying a single provider, but the workflow context is clear enough.

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

create_custom_benchmarkAInspect

Create a PRIVATE custom benchmark (a saved, calculated peer cohort) over Agentery's data — no account needed. Two modes: (A) explicit members: pass members (a list of exact handles; product names/domains resolve where unambiguous). (B) fork a market: pass base_niche (its slug) plus optional remove/add. Returns a one-time secret benchmark_id (cb_… token) — store it; it's your only key. Use it later in get/update/delete and in market_report/get_price_index/get_price_index_history. Ambiguous names are returned as candidates, never silently resolved; unresolved inputs block creation unless allow_partial:true. All prices/history are computed from Agentery's immutable observations; canonical market data is never changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
addNomembers to add
nameNoOptional private label
removeNoMode B: members to drop from the forked market
membersNoMode A: exact handles (preferred), product names or domains
base_nicheNoMode B: slug of the canonical market to fork
allow_partialNoCreate with only the resolved members when some inputs don't resolve (default false)

TDQS

A5/5.0
Behavior5/5

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

The description discloses critical behaviors: returns a one-time secret ID, ambiguous names are not silently resolved but returned as candidates, unresolved inputs block unless allow_partial is true, and that all prices/history are computed from immutable observations (no mutation of canonical data). This is comprehensive given no annotations were provided.

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 concise yet information-dense, with clear structure using (A), (B), and note sections. It avoids redundancy and every sentence adds value, making it easy to parse despite its length.

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?

Given there is no output schema, the description adequately explains the return value (one-time secret benchmark_id) and how to use it later with get/update/delete and other tools. It also covers edge cases (ambiguity, partial allowance) and ensures the user understands the tool's behavior completely.

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

Parameters5/5

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

Each parameter is explained in context: members for mode A, base_niche for mode B, add/remove as optional for forking, allow_partial for partial resolution. The description adds meaning beyond the schema by clarifying the mode-specific usage and the semantics of each 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 states the tool's purpose: creating a private custom benchmark (peer cohort) over Agentery's data, with explicit mention of two modes (A and B). It distinguishes from sibling tools by focusing on creation and using terms like 'PRIVATE' and 'custom', which are unique.

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?

The description explains when to use the tool (to create a custom benchmark) and how to use it, including both modes with specific parameters. It also clarifies the return value and mentions that it can be used later with other tools, providing clear usage context.

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

delete_custom_benchmarkAInspect

Disable access to a custom benchmark. Keeps only a minimal audit record; no underlying Agentery data is touched. Pass benchmark_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
benchmark_idYesYour cb_ token

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses that only a minimal audit record is kept and no underlying data is touched, providing useful behavioral context beyond the tool name.

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 concise sentences: the first states purpose, the second adds behavioral nuance and parameter instruction. No extraneous content; every sentence earns its place.

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

Completeness4/5

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

For a single-parameter tool with no output schema, the description covers purpose, side effects, and parameter. It could mention reversibility or error states, but overall it is sufficiently complete.

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 schema describes 'benchmark_id' as 'Your cb_ token'. The description merely repeats 'Pass benchmark_id', adding no additional meaning 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?

The description uses a specific verb 'disable access' and resource 'custom benchmark', clearly distinguishing it from sibling tools like create, get, and update. The purpose is immediately clear.

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 description implies usage for disabling a benchmark, but does not explicitly state when to use this tool versus alternatives. No exclusion criteria or context is provided, only a simple instruction to pass the ID.

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

demand_signalsAInspect

Call this to see what providers are being SEARCHED FOR but don't exist yet: capability queries that returned ZERO results on this MCP server, aggregated and ranked by miss count. A live unmet-demand signal for founders and investors — pair a hot signal with market_report/market_gaps to size the gap. Empty args ({}) return the current ranked unmet-demand list.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax signals (1-50, default 20)

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It explains that results are aggregated and ranked by miss count and that empty args return the current ranked list. However, it does not explicitly mention whether this is a read-only operation or any potential side effects, leaving slight ambiguity. Still, the described behavior is transparent enough for a simple query tool, so a 3 is appropriate.

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 two sentences long, front-loaded with the primary purpose, and every clause contributes value. It avoids unnecessary detail, states the output type, and gives a pairing recommendation without waste. This is concise and well-structured.

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?

Given the tool's simplicity (one optional parameter, no output schema), the description adequately explains the return concept (zero-result queries ranked by miss count) and the default invocation. It does not detail the exact fields of the returned list, but for a read-only ranked list this is sufficient for an agent to use correctly. It could be slightly more explicit about output structure, hence 4.

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% for the single 'limit' parameter, so the baseline is 3. The description adds meaningful extra semantics by specifying that empty args ({}) return the current ranked list, which is not evident from the schema alone. This supplements the schema's default value hint and clarifies the zero-parameter invocation behavior, justifying a 4.

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 states a specific verb+resource: 'see what providers are being SEARCHED FOR but don't exist yet' and defines the core concept as capability queries returning zero results. It distinguishes this from sibling tools by focusing on unmet demand signals and explicitly references complementary tools (market_report/market_gaps), making the purpose unmistakable.

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

Usage Guidelines4/5

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

The description provides clear context on when to use: to surface live unmet demand for founders and investors. It suggests pairing with market_report/market_gaps to size gaps, which implies complementary usage but does not explicitly list when-not-to-use or direct alternatives. This is clear context without explicit exclusions, earning a 4.

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

find_marketAInspect

Map a natural-language task, capability or service to its live MARKET — the semantic neighbourhood of the closest-matching providers, found by text-embedding nearness (NO fixed category). For buyers ('a provider that monitors competitor pricing'), sellers ('what should I charge for lead-generation automation') or sizing a space. Pricing-intent boilerplate is stripped before matching. Returns the market label, how many providers are in the neighbourhood and how many are priced, nearest (the closest providers with observed price and relevance/cosine), and pricing_by_tier — median, mean, stdev, p25/p75, min–max range and n per buyer tier (individual/pro/team_sme/enterprise), computed by the canonical pricing engine over the priced neighbourhood. match_certainty is 'confident' when real neighbours exist and 'uncertain' when nothing is close (pricing WITHHELD). Accepts task (aliases: query, q). For the full market read + shortlist in ONE call, use research_capability instead. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskNoA natural-language task, capability or service, e.g. 'reconcile supplier invoices'
queryNoAlias for task (back-compat) — a natural-language task, capability or service

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description fully discloses behavior: it uses text-embedding nearness, has no fixed category, strips pricing-intent boilerplate, and withholds pricing when match_certainty is 'uncertain'. It also details what the output includes (market label, provider counts, pricing_by_tier stats) and that it is read-only. This is comprehensive behavioral transparency.

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 dense with information but well-structured, front-loading the purpose and then detailing outputs. Every sentence carries value, though it is longer than necessary; a few clauses could be tightened without losing meaning. Still, it is efficient for the tool's complexity.

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?

There is no output schema, so the description fully explains return values, including the pricing_by_tier statistics and match_certainty behavior. It covers parameters, use cases, and output semantics comprehensively, leaving no critical gaps for an agent to infer. The tool's complexity is well matched by the description's completeness.

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 is 3. The description adds a concrete example ('reconcile supplier invoices') and mentions the alias, but does not add significant meaning beyond the schema's existing descriptions. It is adequate but not additive beyond what the schema already provides.

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 states the tool maps a natural-language task to its closest-matching market neighborhood, with explicit mention of buyers, sellers, and sizing. It distinguishes itself from sibling tools like research_capability by noting when to use that alternative. The verb 'map' and specific output details make the purpose unmistakable.

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?

The description provides explicit when-to-use guidance for buyers, sellers, and sizing, and explicitly names research_capability as the alternative for a one-call full market read + shortlist. It also clarifies that pricing-intent boilerplate is stripped before matching, adding context. This is a clear usage directive with alternatives.

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

get_custom_benchmarkAInspect

Get a private custom benchmark's current report: members, current stats (headline median/quartiles only when ≥3 comparable priced members — monthly, per-seat and per-call prices are never blended), buyer-tier / provider-type / pricing-unit cohorts, historical index, and data coverage. Pass benchmark_id (your cb_ token) as an ARGUMENT.

ParametersJSON Schema
NameRequiredDescriptionDefault
as_ofNoOptional YYYY-MM-DD — reproduce the exact stats + index as they were on that date, using this version's fixed membership
versionNoOptional benchmark version (default latest)
benchmark_idYesYour cb_ token (bearer secret; passed as an argument, never a URL)
response_modeNofull includes the index series

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses important behavioral traits: stats only shown when ≥3 comparable members, pricing never blended, and includes cohort breakdowns. Missing details on auth requirements or error handling, but the token requirement is mentioned.

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 sentence that front-loads the main purpose. It is information-dense but slightly cluttered with parenthetical details. Efficient overall, though could be slightly more streamlined.

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?

Given no output schema and four parameters, the description covers the report's contents thoroughly, including conditional stats. It lacks explicit mention of the return format but compensates with specific details about what the report contains. Nearly complete for the complexity level.

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%, providing a baseline of 3. The description adds value by explaining that benchmark_id is a 'cb_ token' and clarifying the as_of parameter's usage ('reproduce exact stats'). It does not fully repeat schema but provides contextual nuance beyond parameter descriptions.

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 tool's purpose: retrieving a private custom benchmark's current report, and enumerates the exact contents (members, stats, cohorts, historical index, data coverage). It effectively distinguishes from sibling tools like create_custom_benchmark or delete_custom_benchmark.

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 description implies usage context (for viewing a report) but does not explicitly state when to use this tool versus alternatives like price_benchmark or get_price_index. No exclusions or 'when not to use' guidance is provided.

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

get_price_indexAInspect

Call this for the CURRENT level of the Agent Economy Price Index (AEPI) — a chained like-for-like index over observed provider/MCP pricing (base 100 = 29 Jun 2026). It is an INDEX LEVEL, not a market price or tradeable asset. Returns the whole-economy headline index level with change_1d/change_7d/change_30d, as_of, like_for_like_pair_count, status and the methodology version, PLUS the same fields for the four buyer tiers (Individual, Pro, Team/SME, Enterprise). provider_type returns the standalone index for one delivery type (provider or mcp, own base 100) — agents and MCPs price and move differently. tier filters to one buyer tier; response_mode 'full' adds exact sub-0.01% moves and repricing counts. Reads the SAME canonical series as the /aepi page, so the MCP and website agree for a given timestamp. (Also accepts a benchmark_id to read a private custom benchmark's current index.) The economy index is whole-market by design — for pricing on a specific capability use market_report or price_benchmark.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierNoFilter to one buyer tier ('team' = Team/SME). Default 'all'.
provider_typeNo'all' (default) = the combined whole-economy index; 'agent' or 'mcp' = the standalone index over just that delivery type (own base 100). Agents and MCPs price and move differently, so an MCP buyer should read the 'mcp' index and an agent buyer the 'agent' index.
response_modeNo'summary' (default) or 'full' (adds exact sub-0.01% moves and repricing counts).

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden. It discloses that the tool reads the same canonical series as the /aepi page, returns an index rather than a market price, and outlines the returned fields. It does not explicitly state there are no side effects, but the read-only nature is strongly implied.

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 longer than minimal, but every sentence adds value: it explains what is returned, how the index is constructed, and how to choose among filters. It is front-loaded with the primary purpose, so it is efficiently structured.

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?

Since there is no output schema, the description fully documents return values (change_1d/change_7d/change_30d, as_of, pair count, status, methodology version, plus tier breakdowns) and the meaning of each filter. This is comprehensive for a tool of this complexity.

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 all three schema params have descriptions. The description adds context for provider_type and response_mode, but it also references a benchmark_id parameter that is not present in the input schema, which could mislead an agent. This inconsistency prevents a higher score.

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 opens with 'Call this for the CURRENT level of the Agent Economy Price Index (AEPI)' – a specific verb, resource, and scope. It clearly distinguishes from get_price_index_history by emphasizing 'current' and from market_report/price_benchmark by stating those are for capability-specific pricing.

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?

Provides explicit guidance on when to use and when not to: 'The economy index is whole-market by design — for pricing on a specific capability use market_report or price_benchmark.' It also explains when to use provider_type ('an MCP buyer should read the mcp index') and the role of response_mode.

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

get_price_index_historyAInspect

Call this for the canonical DATED index SERIES (to chart or analyse movement) of the AEPI — the same chained like-for-like series the /aepi page plots. Every point is an index level (base 100), never a price. Returns the whole-economy headline series, or a single buyer tier's series when tier is set. provider_type returns the standalone 'agent' / 'mcp' series (own base 100). period selects '30d' (default), '90d' or 'all'. response_mode 'summary' (default) returns date + index_level points plus the window change; 'full' adds gap flags. Returns an honest status (insufficient_history) rather than a fabricated series when data is too thin. (Also accepts a benchmark_id to read a private custom benchmark's history.) The economy index is whole-market by design — for pricing on a specific capability use market_report or price_benchmark.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierNoReturn one buyer tier's series ('team' = Team/SME). Default 'all' = the headline series.
periodNoHistory window. Default '30d'.
provider_typeNo'all' (default) = the combined whole-economy series, or the standalone 'agent' / 'mcp' series (own base 100).
response_modeNo'summary' (default, compact) or 'full'.

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description does the heavy lifting. It honestly discloses that points are index levels (base 100) never prices, that insufficient data returns an honest status rather than a fabricated series, and that summary/full modes differ. Minor omission: no explicit statement about side effects or permissions, but the read-only nature is strongly implied, so this is not a serious 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?

The description is longer than average but each sentence carries information: defaults, distinctions, alternative tools, and behavioral caveats. It is well-structured with clear clauses, though it could be trimmed slightly—e.g., the benchmark_id note feels appended but is still relevant.

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?

Given no output schema, the description adequately explains the return content (date + index_level, window change, gap flags) and the insufficient_history status. It does not fully define 'gap flags' or return format, but for a history-retrieval tool this is reasonably complete, especially with the alternative-tool guidance.

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

Parameters5/5

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

Although schema covers all four parameters, the description adds significant meaning: 'team' = Team/SME, provider_type returns a standalone series with its own base 100, and response_mode 'summary' returns date+index_level plus window change while 'full' adds gap flags. It also mentions a benchmark_id parameter not present in the schema, which is extra guidance.

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 specifies the tool retrieves a canonical dated index series for the AEPI, distinguishing it from price-related tools. It explicitly says the series is what the /aepi page plots and contrasts with market_report or price_benchmark for capability-specific pricing.

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 states exactly when to call this tool (for charting/analysing movement) and when not to, explicitly naming alternatives: 'for pricing on a specific capability use market_report or price_benchmark.' It also explains parameter-based selection of the series (tier, provider_type, period) with defaults.

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

get_providerAInspect

Call this for the public directory card of one provider by handle or registration number: bio, source URLs, X-verification status, entity type, community rating and structured profile when available.

ParametersJSON Schema
NameRequiredDescriptionDefault
handleNoProvider handle, e.g. 'openhands'
regNumNoRegistration number, e.g. 2432

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It lists the output fields and notes that the structured profile is included 'when available,' which adds transparency about conditional data. However, it does not disclose what happens if both handle and regNum are omitted, which takes precedence, or error behavior when a provider is not found.

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 concise sentence that front-loads the purpose ('Call this for the public directory card') and then efficiently enumerates the included data. No redundant words or information; every segment adds value.

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 getter with no output schema, the description adequately explains the return content and its conditionality. It lacks explicit error-handling details and interaction rules for the two parameters, but given the tool's simplicity, it covers the essential context sufficiently.

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 schema already describes both parameters (handle and regNum), so baseline is 3. The description adds semantic value by explicitly stating 'by handle or registration number,' clarifying that the two parameters are alternatives rather than complementary, which is not apparent from the schema alone.

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 that the tool retrieves a public directory card for one provider, listing the included fields (bio, source URLs, X-verification status, etc.). It specifies the resource (provider) and the action (get by handle or registration number), but does not explicitly differentiate from sibling tools like get_provider_profile.

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

Usage Guidelines3/5

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

The phrase 'Call this for...' provides a direct usage context. However, it does not mention when NOT to use it or suggest alternative tools (e.g., search_providers for finding providers), leaving the when-to-use guidance implicit rather than explicit.

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

get_provider_profileAInspect

Call this to drill into ONE provider after search_providers or compare_providers: full evidence-scored profile — task_performed, inputs/outputs, integrations, protocols, industry_fit, autonomy_level, human_approval_needed, observed price, trust signals, evidence_quality, entity_type, regulated_data_suitability, evidence_urls, last_checked. Includes the full how_to_connect object — website, docs, any vendor-published MCP endpoint (with a copy-paste client config_snippet), A2A agent card and API surface — the info needed to actually use the listing; fields are null when the vendor publishes no endpoint (never guessed). Also carries reported_success — machine-reported outcome rate from report_outcome (null until 5+ distinct correlated reporters in 90 days). If you use the listing, call report_outcome afterwards.

ParametersJSON Schema
NameRequiredDescriptionDefault
provider_idYesThe provider_id/handle returned by search_providers or compare_providers

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and excels: it discloses that fields are null when the vendor publishes no endpoint ('never guessed'), explains the reported_success threshold (5+ distinct reporters in 90 days), and details the null behavior. This is rich behavioral detail beyond the schema.

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 long but dense and front-loaded with the purpose. Every sentence provides distinct value (field list, null policy, reported_success explanation, follow-up instruction). It is structured logically, though slightly sprawling.

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?

There is no output schema, so the description must convey return structure. It enumerates all major fields, explains the how_to_connect object, and covers edge cases like null endpoints and reported_success. This is fully complete for a one-parameter tool.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already states the provider_id is returned by search_providers or compare_providers. The tool description repeats this context but adds no new parameter-level meaning, so the baseline 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 uses a specific verb phrase ('drill into ONE provider') and clearly identifies the resource (a single provider profile). It also distinguishes itself from siblings by explicitly positioning it as a follow-up to search_providers or compare_providers.

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 explicitly states when to use the tool ('after search_providers or compare_providers') and provides a follow-up action ('call report_outcome afterwards'). However, it does not mention alternative tools like get_provider or specify when not to use it.

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

market_gapsAInspect

Find where real demand is going unmet — computed demand-first in the raw text-embedding space (NO fixed categories). A gap = a cluster of real user requests (mined from live MCP search telemetry) that sits FAR from any PAID provider. For each gap it returns: the demand phrasing, demand_mass (how many similar requests cluster with it), nearest_paid_similarity (cosine to the closest paid provider — low = under-served) and that closest paid provider. Also returns demand_queries and paid_supply counts. Honestly returns few or no gaps while query volume is still low — it sharpens as usage grows. No arguments needed ({}); limit caps the list.

ParametersJSON Schema
NameRequiredDescriptionDefault
rankNogaps (default): whitespace with money, crowded excluded. hot: most active by market pulse, crowding ignored.
limitNoMax gaps (1-50, default 15)
sectorNoOptional sector filter, e.g. 'legal', 'healthcare'

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does well: it explains the computation source (live MCP search telemetry), the output fields, the meaning of cosine similarity, and honestly cautions that it returns few gaps while query volume is low. It stops short of noting side effects or read-only guarantees, but the behavior is clearly observational.

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 information-dense and well-structured: behavior first, then outputs, then honest caveat, then parameter note. Every sentence carries substantive detail, though the phrase 'No arguments needed ({}); `limit` caps the list' creates a slight tension with the three optional schema parameters.

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

Completeness4/5

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

With no output schema and no annotations, the description compensates by listing the key returned fields and their interpretations. It also gives the low-volume behavior caveat and mentions live telemetry, giving the agent enough context to use the tool. It could more explicitly differentiate from the sibling demand_signals and market_report tools, but the core completeness is strong.

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?

All three parameters are fully described in the input schema, so the description adds only marginal value. It mentions that no arguments are required and that 'limit' caps the list, but rank and sector semantics are already covered by the schema. This meets the baseline but does not go beyond it.

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 tool's purpose: finding unmet demand by computing gaps between user-request clusters and paid providers. It is specific about the method (raw text-embedding space, no fixed categories) and distinguishes itself from market-report or provider-ranking siblings by defining gaps explicitly.

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

Usage Guidelines4/5

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

The description provides a clear usage context: use when you need to discover demand clusters that are underserved by paid providers. It does not explicitly name alternative tools or say when not to use it, but the distinctive gap/under-served framing makes the intended scenario unambiguous.

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

market_reportAInspect

Deep-dive ONE market before building or investing — the market is the semantic neighbourhood of your natural-language query (nearest providers by text embedding, NO fixed category). Every field is MEASURED: the observed-pricing benchmark separated by provider type and buyer tier (median, mean, stdev, p25/p75, min–max range and n via the canonical pricing engine), how many providers are in the neighbourhood and how many are priced, and the top providers already competing there with their observed price and relevance. Pass query (a natural-language capability or market, e.g. 'customer support chatbot'). For market + pricing + a ready shortlist in one call, use research_capability.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesNatural-language capability or market, e.g. 'customer support chatbot' or 'ai phishing detection'.
response_modeNo'summary' (DEFAULT) returns a compact block: neighbourhood counts, per-type/per-tier price cohorts and top providers. 'full' returns everything incl. the full member list.

TDQS

A4.9/5.0
Behavior5/5

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

Despite no annotations, the description thoroughly discloses behavior: it explains the dynamic market definition ('semantic neighbourhood of your natural-language query'), the measured nature of every field (with specific statistical outputs: median, mean, stdev, p25/p75, min–max, n), and the pricing benchmark's architecture. It also implicitly warns that the market is not a fixed category, which is a critical behavioral nuance.

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 concise for the amount of content it covers. It front-loads the core action and scoping, then lists expected outputs, and ends with a parameter guidance and sibling exclusion. No wasted sentences; every clause adds value.

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?

Given the complexity of the tool (dynamic market definition, multiple measured metrics), the description is remarkably complete. It covers what the tool does, how it's scoped, what outputs to expect, and when to use an alternative. The absence of an output schema is compensated by the description's detailed explanation of the response contents.

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?

Although the schema already covers 100% of parameters, the description adds semantic value by clarifying the `query` parameter's role as a natural-language capability or market with concrete examples, and explicitly describes the `response_mode` effect. It doesn't add format details for response_mode beyond the enum, but it does confirm defaults, which is helpful.

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 is unusually specific: it identifies a unique 'semantic neighbourhood' scoping (nearest providers by text embedding, no fixed category), names the resource (ONE market deep-dive), and clearly distinguishes from siblings like research_capability. The action ('Deep-dive ONE market') is precise with measurable outcomes listed.

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?

Explicitly states when to use: 'before building or investing'. Contrasts with the 'research_capability' sibling by stating that for 'market + pricing + a ready shortlist in one call, use research_capability'. This is clear guidance on when NOT to use this tool.

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

price_benchmarkAInspect

Fair-price benchmarks for a capability described in natural language. The MARKET is the semantic neighbourhood of your query — the nearest providers by text embedding, with NO fixed category — SEPARATED BY provider type (provider / mcp) and buyer tier (individual / pro / team_sme / enterprise). Each cohort reports median, mean, stdev, p25/p75, min–max range and n; a single blended provider+MCP median is NEVER the default. Supply provider_type and buyer_tier whenever the user makes them known (e.g. 'an individual MCP', 'a professional provider', 'enterprise'); when neither is known the tool returns the populated per-type/per-tier cohort matrix. Prices come from the canonical pricing engine run over the priced members of the neighbourhood, so the figures match the rest of the site to the digit. Pass query (the natural-language capability); task is accepted as an alias for the query text. When nothing priced is semantically close it returns resolved:false with a note, never a fabricated figure.

ParametersJSON Schema
NameRequiredDescriptionDefault
nicheNoLegacy alias of `query`, kept for older clients — prefer `query`.
sectorNoSector name, e.g. 'legal' (ignored if a query is given)
buyer_tierNoBuyer tier being priced. Set when the user describes who is buying (an individual, a professional, a team/SME, or an enterprise). An individual licence must never be represented by the SME or enterprise price.
pricing_unitNoOptional pricing unit to hold constant (e.g. 'flat', 'per_seat', 'per_agent'). Incompatible units are never combined.
provider_typeNoDelivery type being priced. Set when the user says provider, MCP or API. Omit (or 'all') to get the per-type matrix instead of a blended figure. 'api' is recognised but not yet a separate commercial cohort (folded into provider).
response_modeNo'summary' (default): compact per-type/per-tier benchmark matrix. 'full': also returns the deprecated blended legacy block + AEPI index.

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It explicitly reveals that the market is a semantic embedding neighbourhood, that the blended median is never default, that prices come from a canonical pricing engine, and that the tool returns resolved:false rather than fabricating a figure. It also flags the deprecated blended legacy block in full mode.

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 front-loaded with purpose and organised by market definition, output stats, parameter guidance, and failure behavior. It is longer than strictly necessary, but every sentence adds substantive behavioral or usage detail, so it earns a high score despite some verbosity.

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 6-parameter tool with no output schema and no annotations, the description is unusually complete: it covers the matching algorithm, cohort statistics, input conditions, pricing-engine fidelity, and failure semantics. It falls short of 5 only because of the query/niche parameter inconsistency and the lack of an explicit response structure description.

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%, giving a baseline of 3, but the description adds meaningful semantics: the query/task alias relationship, when to supply buyer_tier/provider_type, incompatible pricing units not being combined, and response_mode full-mode behavior. However, the instruction to 'Pass `query`' conflicts with the input schema where `niche` is the listed legacy alias and `query` is not actually a defined property, which weakens the guidance slightly.

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 opens with a specific verb-resource statement: 'Fair-price benchmarks for a capability described in natural language.' It then distinguishes itself from siblings by emphasizing semantic neighbourhood, no fixed category, and per-provider-type/per-buyer-tier cohort separation, clearly differentiating from tools like get_price_index and compare_providers.

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

Usage Guidelines4/5

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

The description provides clear usage context: supply provider_type and buyer_tier when known, omit them to get the per-type/per-tier matrix, pass the natural-language query, and expect resolved:false when nothing priced is close. It does not explicitly state when-not-to-use or name alternative tools, though the context is otherwise strong.

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

rank_providers_for_workflowAInspect

PARTNER-ONLY (Bearer key required). Given a business context and its workflow steps, return ranked provider candidates for EACH step — structured, scored (match_score 0-100) matches with match_reasons and cautions. Built for app builders (e.g. Builtery) assembling automations. Reads each provider's analysed site profile; never invents capabilities; returns 'unclear' where evidence is missing.

ParametersJSON Schema
NameRequiredDescriptionDefault
limit_per_stepNoMax candidates per step (1-25, default 8)
workflow_stepsYesEach: step_id, step_name, step_description, inputs[], desired_outputs[], required_integrations[], human_approval_preference (always|sometimes|not_needed|unknown)
business_contextNocompany_description, industry, region, existing_tools[], automation_posture (cautious|balanced|agent_native), regulated_data (none|personal|health|financial|legal|children|unknown)

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries full burden. It explicitly discloses the Bearer-key requirement, that it reads analysed site profiles, never invents capabilities, and returns 'unclear' when evidence is missing. This is a high level of transparency.

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 sentences, first sentence is an imperative statement of behavior, second gives audience, third gives data-safety guarantee. 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 moderate-complexity tool with no output schema or annotations, the description adequately covers purpose, auth, return format, and behavioral constraints. It is sufficient for an agent to select and invoke.

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 baseline is 3. The description adds a general mapping of business context and workflow steps to inputs, but no additional details beyond schema descriptions. Thus a 3 is appropriate.

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 states the tool ranks provider candidates for each workflow step, with specific deliverables (match_score, match_reasons, cautions). This distinguishes it from sibling tools like search_providers and compare_providers.

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 states it is built for app builders assembling automations, providing clear context for when to use. However, it does not explicitly name alternative tools or state when not to use, so it falls just short of a 5.

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

report_outcomeAInspect

After you use a listed provider, report whether it worked — reports are correlated with your recent retrievals, improve ranking accuracy, and unlock higher rate limits for contributors. Only reports we can match to one of YOUR retrievals (search_providers / get_provider_profile / compare_providers / suggest_alternatives naming that provider, last 48h) carry weight; unmatched reports are stored but unweighted. Aggregates surface as reported_success on profile/comparison cards once 5+ distinct reporters exist (90-day window). Callers with 5+ correlated reports in 30 days get a doubled per-minute rate limit. Send an x-agentery-key header to keep one reporter identity across IPs (it is stored only as a hash).

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoOptional free-text detail (capped at 300 chars)
outcomeYesDid the provider accomplish the task you hired it for?
agent_idYesHandle of the provider you used, as returned by search_providers/get_provider_profile/compare_providers
task_typeNoOptional short task label, e.g. 'code-review', 'lead-enrichment'
latency_msNoOptional end-to-end latency of the provider in milliseconds
error_classNoOptional failure class, e.g. 'timeout', 'auth', 'wrong-output', 'endpoint-down'

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations provided, the description fully carries the behavioral disclosure burden. It discloses matching rules, weighting (unmatched stored but unweighted), aggregate surfacing thresholds (5+ reporters, 90-day window), rate limit doubling, and the x-agentery-key header hashing. This is comprehensive and beyond what annotations would typically provide.

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 opens with a summary of purpose and benefits, then details matching rules, aggregate behavior, rate limits, and authentication. Every sentence adds unique value, and it is front-loaded with the core action.

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?

Despite having 6 parameters and no output schema, the description explains the tool's behavior comprehensively: how reports are matched, weighted, surfaced, and rewarded. It even mentions the reported_success aggregate representation, covering return value expectations without needing an output schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds some contextual meaning (e.g., agent_id must come from specific retrieval tools) and clarifies the outcome enum semantics ('Did the provider accomplish the task you hired it for?'), but it does not introduce substantial new parameter-level detail 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?

The description clearly states the tool's purpose: 'report whether it worked' for a provider you used. It uses a specific verb ('report') and resource (outcome of using a provider), and it distinguishes itself from sibling tools by being the only reporting tool among search/compare/benchmark 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?

The description provides clear context for when to use the tool ('After you use a listed provider') and explains the conditions for meaningful reporting (matching to your recent retrievals within 48h). It does not name alternative tools, but no direct alternative exists among siblings, and the 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.

research_capabilityAInspect

START HERE for provider procurement. ONE call turns a task into: (1) its live MARKET — the semantic neighbourhood of the closest-matching providers, found purely by text-embedding nearness (NO fixed category), with the relevance floor and how many providers cleared it; (2) current pricing context — comparable price range and median with mean, stdev and n, plus provider/priced counts; and (3) a ready-to-compare provider shortlist — each with observed price, market_position (below/in-line/above market), integration status, match score, and handles collected in compare_ready. Retrieval is 100% nearest-neighbour by text embedding: providers are matched on what they actually DO, never on an assigned label. REUSES the canonical pricing/search engines (no new pricing logic). Also returns suggested_alternatives (cheaper or stronger options) and a result_fingerprint (+ cached) so repeat calls are cheap. It does NOT run the comparison — pass compare_ready to compare_providers once you have finalists. Use the lower-level tools (find_market, market_report, price_benchmark, search_providers) for finer control. Aliases: task also accepts query / q.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoShortlist ordering. Default 'match'.
taskYesRequired — the natural-language capability/task, e.g. 'reconcile supplier invoices' or 'litigation-analysis provider'. Aliases: query, q.
limitNoShortlist size (1-12, default 5).
buyer_tierNoOptional buyer tier to price against ('team' = Team/SME).
integrationsNoOptional required integrations, e.g. ["zendesk","slack"] — soft preference; integration status is reported per provider.
provider_typeNoPreferred delivery type. 'auto' (default) infers from the task; note 'AI agent' phrasing is treated as generic (neutral), not an agent-only filter. When a type is explicit (mcp/api/agent) matching providers are SOFT-RANKED to the top and the rest are kept as clearly-labelled cross_type_alternative entries — never hard-filtered (no zero-result cliff), and the functional match is never changed. Every provider is labelled with provider_type (public values: agent | mcp | api | unknown) + type_match_score; provider_type{type_rank_boost_applied, boosted_provider_type, result_counts_by_type} is returned.
response_modeNo'summary' (default) or 'full' (adds tier cohorts, coverage and raw results).
max_monthly_usdNoOptional budget ceiling in USD/month — filters the shortlist and drives suggested_alternatives.

TDQS

A4.8/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full burden, and it delivers: it discloses the 100% nearest-neighbour retrieval mechanism, the absence of fixed categories, reuse of canonical pricing/search engines, the soft-ranking/no-hard-filter behavior for provider_type, and that repeat calls are cheap via result_fingerprint/cached. It also explicitly states what the tool does NOT do (run the comparison), preventing misuse.

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 long but information-dense, front-loaded with 'START HERE', and every sentence conveys a distinct fact about behavior, outputs, or alternatives. It could be slightly better structured with bullets or more compact phrasing, but given the complexity of the tool, the length is justified.

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?

This is a complex orchestrator tool with 8 parameters and no output schema, so the description carries the burden of explaining return values and behavior. It comprehensively enumerates the three main output groups, additional fields (suggested_alternatives, result_fingerprint, cached), provider labels, and relationships to sibling tools. An agent has enough context to invoke and interpret the result without additional lookups.

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, but the description adds meaningful semantics beyond the schema: it explains that provider_type matching is soft-ranked with cross_type_alternative entries and no zero-result cliff, that max_monthly_usd drives suggested_alternatives, and that task supports aliases. These enrich the schema without replacing it.

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 opens with 'START HERE for provider procurement' and specifies a concrete verb+resource: one call produces market, pricing context, and a provider shortlist. It clearly distinguishes itself from siblings by explicitly stating it does not run the comparison and directing the agent to compare_providers and lower-level tools like find_market and price_benchmark.

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?

The description gives explicit when-to-use guidance ('START HERE'), what to do after use ('pass compare_ready to compare_providers once you have finalists'), and explicitly names alternative lower-level tools for finer control. This makes the selection decision clear for an agent.

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

search_providersAInspect

Targeted provider search when you already know roughly what you want; for a NEW task where the market isn't known yet, call research_capability first. Filtered free-text search over the directory, ranked with match_score and match_reasons. Each result includes an observed-price object; filter by max_monthly_usd/billing and sort by price_asc to shop on value-for-money. Results include how_to_connect (website, docs, mcp.endpoint when the vendor publishes one) — the link/endpoint needed to actually use the listing; get_provider_profile has the full version with a copy-paste MCP config snippet. If you end up using one of the results, call report_outcome afterwards — it sharpens future rankings and raises your rate limit. Accepts query (aliases: q, text) — an unknown query key is never silently ignored. For a market + pricing + shortlist in ONE call, use research_capability first.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNomatch (default) or price_asc (cheapest observed price first; unpriced providers last)
limitNoMax results (1-50, default 20)
queryNoFree-text capability query, e.g. 'customer support provider with Zendesk integration'
billingNoOnly providers with one of these observed billing models, e.g. ["free","freemium","subscription","usage"]
filtersNoOptional: industry_fit[], integrations_available[], entity_type[] (agent|tool|infrastructure|service|marketplace|content-community), autonomy_level[] (assistant|workflow automation|agentic|infrastructure), minimum_evidence_quality (low|medium|high)
provider_typeNoFilter to one provider type — the audited classification dimension (same as the website type chips and AEPI facets); result labels always match this filter. Omit for all types.
max_monthly_usdNoDrop providers whose observed lowest paid tier exceeds this (USD/month). Providers with no observed public price still pass unless require_public_price is true.
require_public_priceNoOnly return providers with an observed public price (default false)

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description bears the full burden of behavioral disclosure. It discloses ranking by match_score/match_reasons, inclusion of observed-price and how_to_connect, filter/sort behavior (max_monthly_usd handling of unpriced providers), and that unknown query keys are never silently ignored. It also mentions rate-limit benefits from report_outcome. It doesn't explicitly state if the operation is read-only, but that's implied. Slightly more could be said about output volume or pagination, but it's quite transparent.

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 paragraph but front-loaded with purpose and usage guidance. It efficiently covers when to use, what results include, related tools, and provides at least one parameter hint (billing, sort). It's not overly verbose and each sentence adds value. Slightly long but appropriate given the tool's complexity.

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?

Given 8 parameters with nested objects and no output schema, the description covers the essential context: how results are ranked, what fields they contain (match_score, match_reasons, observed-price, how_to_connect), how to filter/sort for value, and pointers to more detailed tools. It addresses the complexity well and leaves little ambiguity about what the tool does and how to use it effectively.

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. The description adds value beyond schema: it explains the purpose of sort (price_asc for value shopping), the behavior of max_monthly_usd with unpriced providers, mentions query aliases (q, text), and clarifies that unknown keys are not silently ignored. It also ties parameters to usage outcomes (e.g., filtering by billing, requiring public price). This adds meaningful context.

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 states this is a 'Targeted provider search' for when you roughly know what you want, and explicitly distinguishes it from research_capability for new tasks and get_provider_profile for full details. The verb 'search' plus resource 'providers' is specific, and it differentiates from sibling tools by pointing to research_capability when the market is unknown.

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?

Provides explicit when-to-use: 'when you already know roughly what you want', and when-not-to: 'for a NEW task where the market isn't known yet, call research_capability first'. It also recommends get_provider_profile for a full version and report_outcome after usage, giving clear decision guidance and alternatives.

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

suggest_alternativesAInspect

Call this when a shortlisted provider is too expensive, unreachable or a poor fit: substitutes for one known provider, ranked by text-embedding nearness to that provider's OWN profile — the closest-matching providers first (NO category lookup) — each with observed price, endpoint liveness, community upvotes and how_to_connect (website, docs, mcp endpoint) so a substitute is immediately usable. Set cheaper_only to shop down from the subject's price. Accepts agent_id (aliases: handle, id). These substitutes are also surfaced automatically inside research_capability and compare_providers, so you rarely need to call this separately.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax alternatives (1-10, default 5)
agent_idYesHandle of the provider to find substitutes for, e.g. 'openhands'
cheaper_onlyNoOnly keep alternatives priced below the subject's lowest monthly price. Free/freemium providers always qualify; providers with no observed price are excluded. Default false.

TDQS

A4.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the output fields (price, liveness, upvotes, how_to_connect) and the ranking basis (text-embedding nearness), plus the cheaper_only flag behavior. However, it does not explicitly state whether this is a read-only operation, though it is implied. It lacks details on potential rate limits, auth, or error behavior, but for a suggestion tool this may be acceptable. Overall, the description adds meaningful behavioral context but could be more explicit about its non-mutating nature.

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 thorough but somewhat verbose, packing many details into a single run-on sentence. Still, every sentence adds value (use case, ranking method, fields returned, aliases, redundancy note). It could be split into shorter sentences for readability, but it is not wasteful. A 4 reflects good content with minor structure inefficiency.

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?

The description covers the trigger scenario, ranking approach, output fields, filtering option, and crucially notes that the same alternatives appear in other tools, saving the agent from redundant calls. This is a complete picture for selection and usage. The lack of an output schema is mitigated by describing what is returned. No obvious missing context.

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?

All 3 parameters are documented with clear descriptions: agent_id is the required handle, limit controls count, cheaper_only filters by price. The schema coverage is 100%, and the description adds nuance about cheaper_only (free providers qualify, no-observed-price excluded). A minor gap is that agent_id aliases are mentioned only in the description, not the schema, but that adds clarity. Deduct a point for not specifying the return format or pagination, but overall strong.

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 states the tool's purpose: suggest alternatives for a shortlisted provider when too expensive, unreachable, or poor fit. It specifies the ranking method (text-embedding nearness) and explicitly notes it is NOT category lookup, distinguishing it from sibling tools like search_providers.

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?

Explicitly states when to use: when a shortlisted provider is too expensive, unreachable, or a poor fit. It also provides exclusions: alternatives are already surfaced in research_capability and compare_providers, so calling separately is rarely needed. This clear guidance helps the agent decide when to invoke.

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

update_custom_benchmarkAInspect

Add/remove members or rename a custom benchmark. Creates a NEW immutable version (the previous version stays fully reproducible) and returns the exact change-impact on the median/quartiles/index. Pass benchmark_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
addNo
removeNo
renameNo
benchmark_idYesYour cb_ token

TDQS

A4/5.0
Behavior4/5

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

No annotations exist, so the description carries full responsibility. It discloses key behaviors: creating a new immutable version while preserving reproducibility of the previous version, and returning exact change-impact on median/quartiles/index. However, it does not mention permissions, reversibility, or rate limits.

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 two sentences long, front-loads the primary action, and adds crucial behavioral information in the second sentence. Every word earns its place; no unnecessary content.

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 tool with 4 parameters, no output schema, and no annotations, the description covers core behavior (modification with immutability) and the nature of the return value. It lacks details on prerequisites and error conditions, but overall is sufficiently complete for its complexity.

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 25% (only benchmark_id described). The description adds meaning by explaining that 'add' and 'remove' manage members and 'rename' changes the name, but it does not specify the format of member strings or provide detail on the benchmark_id token. It partially compensates for low schema coverage but leaves ambiguity.

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 states the tool's actions: 'Add/remove members or rename a custom benchmark.' It identifies the specific resource type (custom benchmark) and differentiates from sibling tools like create_custom_benchmark and delete_custom_benchmark by focusing on modifications.

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 description implies this tool is for modifying an existing benchmark (vs. creating or deleting), but it does not explicitly compare to siblings or specify when not to use it. The instruction 'Pass `benchmark_id`' provides basic usage guidance but no exclusions or alternative recommendations.

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. Dates show when Glama detected each change.

  1. 1 tool update
    • Changedsearch_providers1 field changed
      • addedInput schema / properties / provider_type
        Added value: +{
        +  "description": "Filter to one provider type — the audited classification dimension (same as the website type chips and AEPI facets); result labels always match this filter. Omit for all types.",
        +  "enum": [
        +    "provider",
        +    "mcp",
        +    "api",
        +    "platform",
        +    "infrastructure"
        +  ],
        +  "type": "string"
        +}
  2. 5 tool updates
    • Changedcreate_custom_benchmark2 fields changed
      • changedInput schema / properties / base_niche / description
        Previous value: -"Mode B: canonical niche slug to fork"New value: +"Mode B: slug of the canonical market to fork"
      • changedInput schema / properties / remove / description
        Previous value: -"Mode B: members to drop from the forked niche"New value: +"Mode B: members to drop from the forked market"
    • Changedmarket_gaps1 field changed
      • changedInput schema / properties / limit / description
        Previous value: -"Max niches (1-50, default 15)"New value: +"Max gaps (1-50, default 15)"
    • Changedmarket_report1 field changed
      • changedInput schema / properties / query / description
        Previous value: -"Natural-language capability or market, e.g. 'customer support chatbot' or 'ai phishing detection'. Alias: niche."New value: +"Natural-language capability or market, e.g. 'customer support chatbot' or 'ai phishing detection'."
    • Changedprice_benchmark2 fields changed
      • changedInput schema / properties / niche / description
        Previous value: -"Niche slug (or an approximate slug / natural-language name — it is resolved to the canonical niche), e.g. 'contract-review-automation'"New value: +"Legacy alias of `query`, kept for older clients — prefer `query`."
      • changedInput schema / properties / sector / description
        Previous value: -"Sector name, e.g. 'legal' (ignored if niche is given)"New value: +"Sector name, e.g. 'legal' (ignored if a query is given)"
    • Changedresearch_capability1 field changed
      • changedInput schema / properties / provider_type / description
        Previous value: -"Preferred delivery type. 'auto' (default) infers from the task; note 'AI agent' phrasing is treated as generic (neutral), not an agent-only filter. When a type is explicit (mcp/api/agent) matching providers are SOFT-RANKED to the top and the rest are kept as clearly-labelled cross_type_alternative entries — never hard-filtered (no zero-result cliff), and the functional niche is never changed. Every provider is labelled with provider_type (public values: agent | mcp | api | unknown) + type_match_score; provider_type{type_rank_boost_applied, boosted_provider_type, result_counts_by_type} is returned."New value: +"Preferred delivery type. 'auto' (default) infers from the task; note 'AI agent' phrasing is treated as generic (neutral), not an agent-only filter. When a type is explicit (mcp/api/agent) matching providers are SOFT-RANKED to the top and the rest are kept as clearly-labelled cross_type_alternative entries — never hard-filtered (no zero-result cliff), and the functional match is never changed. Every provider is labelled with provider_type (public values: agent | mcp | api | unknown) + type_match_score; provider_type{type_rank_boost_applied, boosted_provider_type, result_counts_by_type} is returned."
  3. 6 tool updates
    • Addedfind_market
    • Removedfind_niche
    • Changedget_price_index4 fields changed
      • removedInput schema / properties / niche
        Removed value: -{
        -  "description": "For scope 'niche': a canonical niche slug (e.g. 'customer-support-tier1') or a natural-language task/query (e.g. 'customer support providers'), resolved by the niche resolver.",
        -  "type": "string"
        -}
      • changedInput schema / properties / provider_type / description
        Previous value: -"Delivery-type scope for scope 'aepi': 'all' (default) = the combined index; 'agent' or 'mcp' = the standalone index over just that provider type (own base 100). Agents and MCPs price and move differently, so an MCP buyer should read the 'mcp' index and an agent buyer the 'agent' index. Per-type NICHE indices are a Phase-2 follow-up; on scope 'niche' this is acknowledged in the response, not silently applied."New value: +"'all' (default) = the combined whole-economy index; 'agent' or 'mcp' = the standalone index over just that delivery type (own base 100). Agents and MCPs price and move differently, so an MCP buyer should read the 'mcp' index and an agent buyer the 'agent' index."
      • changedInput schema / properties / response_mode / description
        Previous value: -"'summary' (default) or 'full' (adds exact sub-0.01% moves, per-tier niche detail and repricing counts)."New value: +"'summary' (default) or 'full' (adds exact sub-0.01% moves and repricing counts)."
      • removedInput schema / properties / scope
        Removed value: -{
        -  "description": "'aepi' (default) = whole-economy headline + the four buyer tiers; 'niche' = one niche's index.",
        -  "enum": [
        -    "aepi",
        -    "niche"
        -  ],
        -  "type": "string"
        -}
    • Changedget_price_index_history4 fields changed
      • removedInput schema / properties / niche
        Removed value: -{
        -  "description": "For scope 'niche': a canonical niche slug or natural-language query.",
        -  "type": "string"
        -}
      • changedInput schema / properties / provider_type / description
        Previous value: -"Delivery-type scope for scope 'aepi': 'all' (default), or the standalone 'agent' / 'mcp' series (own base 100). Per-type niche history is a Phase-2 follow-up; acknowledged, not silently applied, on scope 'niche'."New value: +"'all' (default) = the combined whole-economy series, or the standalone 'agent' / 'mcp' series (own base 100)."
      • removedInput schema / properties / scope
        Removed value: -{
        -  "description": "'aepi' (default) or 'niche'.",
        -  "enum": [
        -    "aepi",
        -    "niche"
        -  ],
        -  "type": "string"
        -}
      • changedInput schema / properties / tier / description
        Previous value: -"For scope 'aepi', return one buyer tier's series ('team' = Team/SME). Default 'all' = the headline series."New value: +"Return one buyer tier's series ('team' = Team/SME). Default 'all' = the headline series."
    • Addedmarket_report
    • Removedniche_report
  4. 1 tool update
    • Changedprice_benchmark4 fields changed
      • addedInput schema / properties / buyer_tier
        Added value: +{
        +  "description": "Buyer tier being priced. Set when the user describes who is buying (an individual, a professional, a team/SME, or an enterprise). An individual licence must never be represented by the SME or enterprise price.",
        +  "enum": [
        +    "individual",
        +    "pro",
        +    "team_sme",
        +    "enterprise",
        +    "all"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / pricing_unit
        Added value: +{
        +  "description": "Optional pricing unit to hold constant (e.g. 'flat', 'per_seat', 'per_agent'). Incompatible units are never combined.",
        +  "type": "string"
        +}
      • addedInput schema / properties / provider_type
        Added value: +{
        +  "description": "Delivery type being priced. Set when the user says provider, MCP or API. Omit (or 'all') to get the per-type matrix instead of a blended figure. 'api' is recognised but not yet a separate commercial cohort (folded into provider).",
        +  "enum": [
        +    "provider",
        +    "mcp",
        +    "api",
        +    "all"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / response_mode
        Added value: +{
        +  "description": "'summary' (default): compact per-type/per-tier benchmark matrix. 'full': also returns the deprecated blended legacy block + AEPI index.",
        +  "enum": [
        +    "summary",
        +    "full"
        +  ],
        +  "type": "string"
        +}
  5. 12 tool updates
    • Removedcompare_agents
    • Removedget_agent
    • Removedget_agent_profile
    • Changedget_price_index2 fields changed
      • changedInput schema / properties / niche / description
        Previous value: -"For scope 'niche': a canonical niche slug (e.g. 'customer-support-tier1') or a natural-language task/query (e.g. 'customer support agents'), resolved by the niche resolver."New value: +"For scope 'niche': a canonical niche slug (e.g. 'customer-support-tier1') or a natural-language task/query (e.g. 'customer support providers'), resolved by the niche resolver."
      • changedInput schema / properties / provider_type / enum
        Previous value: -[
        -  "all",
        -  "agent",
        -  "mcp"
        -]New value: +[
        +  "all",
        +  "provider",
        +  "mcp"
        +]
    • Changedget_price_index_history1 field changed
      • changedInput schema / properties / provider_type / enum
        Previous value: -[
        -  "all",
        -  "agent",
        -  "mcp"
        -]New value: +[
        +  "all",
        +  "provider",
        +  "mcp"
        +]
    • Changedget_provider1 field changed
      • changedInput schema / properties / handle / description
        Previous value: -"Agent handle, e.g. 'openhands'"New value: +"Provider handle, e.g. 'openhands'"
    • Removedrank_agents_for_workflow
    • Changedreport_outcome3 fields changed
      • changedInput schema / properties / agent_id / description
        Previous value: -"Handle of the agent you used, as returned by search_agents/get_agent_profile/compare_agents"New value: +"Handle of the provider you used, as returned by search_providers/get_provider_profile/compare_providers"
      • changedInput schema / properties / latency_ms / description
        Previous value: -"Optional end-to-end latency of the agent in milliseconds"New value: +"Optional end-to-end latency of the provider in milliseconds"
      • changedInput schema / properties / outcome / description
        Previous value: -"Did the agent accomplish the task you hired it for?"New value: +"Did the provider accomplish the task you hired it for?"
    • Changedresearch_capability2 fields changed
      • changedInput schema / properties / provider_type / enum
        Previous value: -[
        -  "auto",
        -  "agent",
        -  "mcp",
        -  "api",
        -  "any"
        -]New value: +[
        +  "auto",
        +  "provider",
        +  "mcp",
        +  "api",
        +  "any"
        +]
      • changedInput schema / properties / task / description
        Previous value: -"Required — the natural-language capability/task, e.g. 'reconcile supplier invoices' or 'litigation-analysis agent'. Aliases: query, q."New value: +"Required — the natural-language capability/task, e.g. 'reconcile supplier invoices' or 'litigation-analysis provider'. Aliases: query, q."
    • Removedsearch_agents
    • Changedsearch_providers2 fields changed
      • changedInput schema / properties / query / description
        Previous value: -"Free-text capability query, e.g. 'customer support agent with Zendesk integration'"New value: +"Free-text capability query, e.g. 'customer support provider with Zendesk integration'"
      • changedInput schema / properties / require_public_price / description
        Previous value: -"Only return agents with an observed public price (default false)"New value: +"Only return providers with an observed public price (default false)"
    • Changedsuggest_alternatives2 fields changed
      • changedInput schema / properties / agent_id / description
        Previous value: -"Handle of the agent to find substitutes for, e.g. 'openhands'"New value: +"Handle of the provider to find substitutes for, e.g. 'openhands'"
      • changedInput schema / properties / cheaper_only / description
        Previous value: -"Only keep alternatives priced below the subject's lowest monthly price. Free/freemium agents always qualify; agents with no observed price are excluded. Default false."New value: +"Only keep alternatives priced below the subject's lowest monthly price. Free/freemium providers always qualify; providers with no observed price are excluded. Default false."
  6. 3 tool updates
    • Changedcompare_providers1 field changed
      • changedInput schema / properties / provider_ids / description
        Previous value: -"2-6 agent handles from search_agents/market_gaps, e.g. [\"openhands\",\"lexaclaw\"]"New value: +"2-6 provider handles from search_providers/market_gaps, e.g. [\"openhands\",\"lexaclaw\"]"
    • Changedget_provider_profile1 field changed
      • changedInput schema / properties / provider_id / description
        Previous value: -"The provider_id/handle returned by search_agents or compare_agents"New value: +"The provider_id/handle returned by search_providers or compare_providers"
    • Changedsearch_providers3 fields changed
      • changedInput schema / properties / billing / description
        Previous value: -"Only agents with one of these observed billing models, e.g. [\"free\",\"freemium\",\"subscription\",\"usage\"]"New value: +"Only providers with one of these observed billing models, e.g. [\"free\",\"freemium\",\"subscription\",\"usage\"]"
      • changedInput schema / properties / max_monthly_usd / description
        Previous value: -"Drop agents whose observed lowest paid tier exceeds this (USD/month). Agents with no observed public price still pass unless require_public_price is true."New value: +"Drop providers whose observed lowest paid tier exceeds this (USD/month). Providers with no observed public price still pass unless require_public_price is true."
      • changedInput schema / properties / sort / description
        Previous value: -"match (default) or price_asc (cheapest observed price first; unpriced agents last)"New value: +"match (default) or price_asc (cheapest observed price first; unpriced providers last)"
  7. 5 tool updates
    • Addedcompare_providers
    • Addedget_provider
    • Addedget_provider_profile
    • Addedrank_providers_for_workflow
    • Addedsearch_providers
  8. 2 tool updates
    • Changedget_price_index1 field changed
      • addedInput schema / properties / provider_type
        Added value: +{
        +  "description": "Delivery-type scope for scope 'aepi': 'all' (default) = the combined index; 'agent' or 'mcp' = the standalone index over just that provider type (own base 100). Agents and MCPs price and move differently, so an MCP buyer should read the 'mcp' index and an agent buyer the 'agent' index. Per-type NICHE indices are a Phase-2 follow-up; on scope 'niche' this is acknowledged in the response, not silently applied.",
        +  "enum": [
        +    "all",
        +    "agent",
        +    "mcp"
        +  ],
        +  "type": "string"
        +}
    • Changedget_price_index_history1 field changed
      • addedInput schema / properties / provider_type
        Added value: +{
        +  "description": "Delivery-type scope for scope 'aepi': 'all' (default), or the standalone 'agent' / 'mcp' series (own base 100). Per-type niche history is a Phase-2 follow-up; acknowledged, not silently applied, on scope 'niche'.",
        +  "enum": [
        +    "all",
        +    "agent",
        +    "mcp"
        +  ],
        +  "type": "string"
        +}
  9. 4 tool updates
    • Addedcreate_custom_benchmark
    • Addeddelete_custom_benchmark
    • Addedget_custom_benchmark
    • Addedupdate_custom_benchmark
  10. 1 tool update
    • Changedresearch_capability1 field changed
      • changedInput schema / properties / provider_type / description
        Previous value: -"Preferred delivery type. 'auto' (default) infers from the task; note 'AI agent' phrasing is treated as generic, not an agent-only filter. Every provider is labelled with entity_type and result_counts_by_type is returned."New value: +"Preferred delivery type. 'auto' (default) infers from the task; note 'AI agent' phrasing is treated as generic (neutral), not an agent-only filter. When a type is explicit (mcp/api/agent) matching providers are SOFT-RANKED to the top and the rest are kept as clearly-labelled cross_type_alternative entries — never hard-filtered (no zero-result cliff), and the functional niche is never changed. Every provider is labelled with provider_type (public values: agent | mcp | api | unknown) + type_match_score; provider_type{type_rank_boost_applied, boosted_provider_type, result_counts_by_type} is returned."
  11. 1 tool update
    • Changedresearch_capability1 field changed
      • addedInput schema / properties / provider_type
        Added value: +{
        +  "description": "Preferred delivery type. 'auto' (default) infers from the task; note 'AI agent' phrasing is treated as generic, not an agent-only filter. Every provider is labelled with entity_type and result_counts_by_type is returned.",
        +  "enum": [
        +    "auto",
        +    "agent",
        +    "mcp",
        +    "api",
        +    "any"
        +  ],
        +  "type": "string"
        +}
  12. 1 tool update
    • Addedresearch_capability
  13. 2 tool updates
    • Addedget_price_index
    • Addedget_price_index_history
  14. 2 tool updates
    • Changedniche_report1 field changed
      • changedInput schema / properties / niche / description
        Previous value: -"Niche slug as returned by market_gaps, e.g. 'ai-phishing-detection'"New value: +"Niche slug (or an approximate slug / natural-language name — it is resolved to the canonical niche), e.g. 'ai-phishing-detection'"
    • Changedprice_benchmark1 field changed
      • changedInput schema / properties / niche / description
        Previous value: -"Niche slug as returned by market_gaps/compare_agents, e.g. 'contract-review-automation'"New value: +"Niche slug (or an approximate slug / natural-language name — it is resolved to the canonical niche), e.g. 'contract-review-automation'"

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.2/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, but a few pairs could cause confusion: get_provider vs get_provider_profile overlap in scope (one is a card, the other a full profile), and research_capability explicitly bundles find_niche, niche_report, price_benchmark, and search_providers, creating layered redundancy. However, the detailed descriptions clearly differentiate the entry-point tools from the lower-level ones.

Naming Consistency4/5

The majority follow a verb_noun pattern (create_, delete_, get_, search_, suggest_, etc.), but a few tools use bare noun phrases (demand_signals, market_gaps, niche_report, price_benchmark) rather than imperative or get_ prefixes. This is a minor inconsistency that doesn't harm readability.

Tool Count4/5

At 19 tools, the set is slightly above the ideal 3-15 range but each tool serves a distinct, justified function within the market-intelligence and provider-directory domain. The count feels appropriate for the breadth of features (search, research, comparison, pricing, indexes, benchmarks, and feedback).

Completeness5/5

The tool surface is very comprehensive: full CRUD for custom benchmarks, multiple discovery paths (search, research, gaps, demand signals), pricing and index tools, profile/detail tools, comparison and alternatives, plus outcome reporting. There are no obvious dead ends or missing critical operations for the stated purpose.

Resources