agentery
Server Details
Price benchmarks, alternatives & daily price history across 17,000+ AI agents and MCP servers.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
19 toolscompare_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.
| Name | Required | Description | Default |
|---|---|---|---|
| provider_ids | Yes | 2-6 provider handles from search_providers/market_gaps, e.g. ["openhands","lexaclaw"] |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| add | No | members to add | |
| name | No | Optional private label | |
| remove | No | Mode B: members to drop from the forked market | |
| members | No | Mode A: exact handles (preferred), product names or domains | |
| base_niche | No | Mode B: slug of the canonical market to fork | |
| allow_partial | No | Create with only the resolved members when some inputs don't resolve (default false) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| benchmark_id | Yes | Your cb_ token |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max signals (1-50, default 20) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task | No | A natural-language task, capability or service, e.g. 'reconcile supplier invoices' | |
| query | No | Alias for task (back-compat) — a natural-language task, capability or service |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| as_of | No | Optional YYYY-MM-DD — reproduce the exact stats + index as they were on that date, using this version's fixed membership | |
| version | No | Optional benchmark version (default latest) | |
| benchmark_id | Yes | Your cb_ token (bearer secret; passed as an argument, never a URL) | |
| response_mode | No | full includes the index series |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | No | Filter to one buyer tier ('team' = Team/SME). Default 'all'. | |
| provider_type | No | '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_mode | No | 'summary' (default) or 'full' (adds exact sub-0.01% moves and repricing counts). |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | No | Return one buyer tier's series ('team' = Team/SME). Default 'all' = the headline series. | |
| period | No | History window. Default '30d'. | |
| provider_type | No | 'all' (default) = the combined whole-economy series, or the standalone 'agent' / 'mcp' series (own base 100). | |
| response_mode | No | 'summary' (default, compact) or 'full'. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| handle | No | Provider handle, e.g. 'openhands' | |
| regNum | No | Registration number, e.g. 2432 |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| provider_id | Yes | The provider_id/handle returned by search_providers or compare_providers |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| rank | No | gaps (default): whitespace with money, crowded excluded. hot: most active by market pulse, crowding ignored. | |
| limit | No | Max gaps (1-50, default 15) | |
| sector | No | Optional sector filter, e.g. 'legal', 'healthcare' |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Natural-language capability or market, e.g. 'customer support chatbot' or 'ai phishing detection'. | |
| response_mode | No | '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
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| niche | No | Legacy alias of `query`, kept for older clients — prefer `query`. | |
| sector | No | Sector name, e.g. 'legal' (ignored if a query is given) | |
| buyer_tier | No | 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. | |
| pricing_unit | No | Optional pricing unit to hold constant (e.g. 'flat', 'per_seat', 'per_agent'). Incompatible units are never combined. | |
| provider_type | No | 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). | |
| response_mode | No | 'summary' (default): compact per-type/per-tier benchmark matrix. 'full': also returns the deprecated blended legacy block + AEPI index. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit_per_step | No | Max candidates per step (1-25, default 8) | |
| workflow_steps | Yes | Each: step_id, step_name, step_description, inputs[], desired_outputs[], required_integrations[], human_approval_preference (always|sometimes|not_needed|unknown) | |
| business_context | No | company_description, industry, region, existing_tools[], automation_posture (cautious|balanced|agent_native), regulated_data (none|personal|health|financial|legal|children|unknown) |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional free-text detail (capped at 300 chars) | |
| outcome | Yes | Did the provider accomplish the task you hired it for? | |
| agent_id | Yes | Handle of the provider you used, as returned by search_providers/get_provider_profile/compare_providers | |
| task_type | No | Optional short task label, e.g. 'code-review', 'lead-enrichment' | |
| latency_ms | No | Optional end-to-end latency of the provider in milliseconds | |
| error_class | No | Optional failure class, e.g. 'timeout', 'auth', 'wrong-output', 'endpoint-down' |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Shortlist ordering. Default 'match'. | |
| task | Yes | Required — the natural-language capability/task, e.g. 'reconcile supplier invoices' or 'litigation-analysis provider'. Aliases: query, q. | |
| limit | No | Shortlist size (1-12, default 5). | |
| buyer_tier | No | Optional buyer tier to price against ('team' = Team/SME). | |
| integrations | No | Optional required integrations, e.g. ["zendesk","slack"] — soft preference; integration status is reported per provider. | |
| provider_type | No | 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. | |
| response_mode | No | 'summary' (default) or 'full' (adds tier cohorts, coverage and raw results). | |
| max_monthly_usd | No | Optional budget ceiling in USD/month — filters the shortlist and drives suggested_alternatives. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | match (default) or price_asc (cheapest observed price first; unpriced providers last) | |
| limit | No | Max results (1-50, default 20) | |
| query | No | Free-text capability query, e.g. 'customer support provider with Zendesk integration' | |
| billing | No | Only providers with one of these observed billing models, e.g. ["free","freemium","subscription","usage"] | |
| filters | No | Optional: 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_type | No | 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. | |
| max_monthly_usd | No | 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. | |
| require_public_price | No | Only return providers with an observed public price (default false) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max alternatives (1-10, default 5) | |
| agent_id | Yes | Handle of the provider to find substitutes for, e.g. 'openhands' | |
| cheaper_only | No | 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. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| add | No | ||
| remove | No | ||
| rename | No | ||
| benchmark_id | Yes | Your cb_ token |
TDQS
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.
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.
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.
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.
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.
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 tool update
- Changed
search_providers1 field changed- added
Input schema / properties / provider_typeAdded 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" +}
5 tool updates
- Changed
create_custom_benchmark2 fields changed- changed
Input schema / properties / base_niche / descriptionPrevious value: -"Mode B: canonical niche slug to fork"New value: +"Mode B: slug of the canonical market to fork" - changed
Input schema / properties / remove / descriptionPrevious value: -"Mode B: members to drop from the forked niche"New value: +"Mode B: members to drop from the forked market"
- Changed
market_gaps1 field changed- changed
Input schema / properties / limit / descriptionPrevious value: -"Max niches (1-50, default 15)"New value: +"Max gaps (1-50, default 15)"
- Changed
market_report1 field changed- changed
Input schema / properties / query / descriptionPrevious 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'."
- Changed
price_benchmark2 fields changed- changed
Input schema / properties / niche / descriptionPrevious 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`." - changed
Input schema / properties / sector / descriptionPrevious value: -"Sector name, e.g. 'legal' (ignored if niche is given)"New value: +"Sector name, e.g. 'legal' (ignored if a query is given)"
- Changed
research_capability1 field changed- changed
Input schema / properties / provider_type / descriptionPrevious 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."
6 tool updates
- Added
find_market - Removed
find_niche - Changed
get_price_index4 fields changed- removed
Input schema / properties / nicheRemoved 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" -} - changed
Input schema / properties / provider_type / descriptionPrevious 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." - changed
Input schema / properties / response_mode / descriptionPrevious 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)." - removed
Input schema / properties / scopeRemoved value: -{ - "description": "'aepi' (default) = whole-economy headline + the four buyer tiers; 'niche' = one niche's index.", - "enum": [ - "aepi", - "niche" - ], - "type": "string" -}
- Changed
get_price_index_history4 fields changed- removed
Input schema / properties / nicheRemoved value: -{ - "description": "For scope 'niche': a canonical niche slug or natural-language query.", - "type": "string" -} - changed
Input schema / properties / provider_type / descriptionPrevious 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)." - removed
Input schema / properties / scopeRemoved value: -{ - "description": "'aepi' (default) or 'niche'.", - "enum": [ - "aepi", - "niche" - ], - "type": "string" -} - changed
Input schema / properties / tier / descriptionPrevious 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."
- Added
market_report - Removed
niche_report
1 tool update
- Changed
price_benchmark4 fields changed- added
Input schema / properties / buyer_tierAdded 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" +} - added
Input schema / properties / pricing_unitAdded value: +{ + "description": "Optional pricing unit to hold constant (e.g. 'flat', 'per_seat', 'per_agent'). Incompatible units are never combined.", + "type": "string" +} - added
Input schema / properties / provider_typeAdded 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" +} - added
Input schema / properties / response_modeAdded 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" +}
12 tool updates
- Removed
compare_agents - Removed
get_agent - Removed
get_agent_profile - Changed
get_price_index2 fields changed- changed
Input schema / properties / niche / descriptionPrevious 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." - changed
Input schema / properties / provider_type / enumPrevious value: -[ - "all", - "agent", - "mcp" -]New value: +[ + "all", + "provider", + "mcp" +]
- Changed
get_price_index_history1 field changed- changed
Input schema / properties / provider_type / enumPrevious value: -[ - "all", - "agent", - "mcp" -]New value: +[ + "all", + "provider", + "mcp" +]
- Changed
get_provider1 field changed- changed
Input schema / properties / handle / descriptionPrevious value: -"Agent handle, e.g. 'openhands'"New value: +"Provider handle, e.g. 'openhands'"
- Removed
rank_agents_for_workflow - Changed
report_outcome3 fields changed- changed
Input schema / properties / agent_id / descriptionPrevious 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" - changed
Input schema / properties / latency_ms / descriptionPrevious value: -"Optional end-to-end latency of the agent in milliseconds"New value: +"Optional end-to-end latency of the provider in milliseconds" - changed
Input schema / properties / outcome / descriptionPrevious value: -"Did the agent accomplish the task you hired it for?"New value: +"Did the provider accomplish the task you hired it for?"
- Changed
research_capability2 fields changed- changed
Input schema / properties / provider_type / enumPrevious value: -[ - "auto", - "agent", - "mcp", - "api", - "any" -]New value: +[ + "auto", + "provider", + "mcp", + "api", + "any" +] - changed
Input schema / properties / task / descriptionPrevious 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."
- Removed
search_agents - Changed
search_providers2 fields changed- changed
Input schema / properties / query / descriptionPrevious 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'" - changed
Input schema / properties / require_public_price / descriptionPrevious value: -"Only return agents with an observed public price (default false)"New value: +"Only return providers with an observed public price (default false)"
- Changed
suggest_alternatives2 fields changed- changed
Input schema / properties / agent_id / descriptionPrevious 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'" - changed
Input schema / properties / cheaper_only / descriptionPrevious 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."
3 tool updates
- Changed
compare_providers1 field changed- changed
Input schema / properties / provider_ids / descriptionPrevious 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\"]"
- Changed
get_provider_profile1 field changed- changed
Input schema / properties / provider_id / descriptionPrevious 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"
- Changed
search_providers3 fields changed- changed
Input schema / properties / billing / descriptionPrevious 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\"]" - changed
Input schema / properties / max_monthly_usd / descriptionPrevious 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." - changed
Input schema / properties / sort / descriptionPrevious 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)"
5 tool updates
- Added
compare_providers - Added
get_provider - Added
get_provider_profile - Added
rank_providers_for_workflow - Added
search_providers
2 tool updates
- Changed
get_price_index1 field changed- added
Input schema / properties / provider_typeAdded 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" +}
- Changed
get_price_index_history1 field changed- added
Input schema / properties / provider_typeAdded 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" +}
4 tool updates
- Added
create_custom_benchmark - Added
delete_custom_benchmark - Added
get_custom_benchmark - Added
update_custom_benchmark
1 tool update
- Changed
research_capability1 field changed- changed
Input schema / properties / provider_type / descriptionPrevious 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."
1 tool update
- Changed
research_capability1 field changed- added
Input schema / properties / provider_typeAdded 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" +}
1 tool update
- Added
research_capability
2 tool updates
- Added
get_price_index - Added
get_price_index_history
2 tool updates
- Changed
niche_report1 field changed- changed
Input schema / properties / niche / descriptionPrevious 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'"
- Changed
price_benchmark1 field changed- changed
Input schema / properties / niche / descriptionPrevious 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
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Search 150k+ AI agents and MCP servers. Live liveness probes, behavioral benchmarks, x402 commerce.
AI inference pricing for agents: live and historical model prices, provider comparison.
Find, compare, and audit software for AI agents. Scored registry of tools and MCP servers.
Pay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server that benchmarks AI models on your actual prompts and finds cheaper, faster alternatives.56MIT
- AlicenseNot gradedqualityBmaintenancePrice Tracker AI - MCP server providing AI-powered tools and automation by MEOK AI Labs14MIT
- AlicenseAqualityCmaintenanceSearch and discover 3,500+ AI tools, MCP servers, and Claude Skills with community ratings. Find the best tools by category, compatibility, and real user reviews.3114MIT
- AlicenseAqualityBmaintenanceMCP server for PriceTrack that enables AI assistants to search live SaaS pricing, view verified price changes, and compare products side-by-side across 33,000+ vendors.468MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
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.
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.
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).
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.