Skip to main content
Glama

Research a capability

research_capability
Read-only

Use for a quick first overview of a buying task in one call: the closest-matching listings (matched on what they do, no fixed categories), the price range and median for comparable products (with n), and a shortlist with observed prices, market_position (below / in line / above market) and handles in compare_ready for compare_providers. Also returns suggested_alternatives. It does not run the comparison. For careful selection prefer search_providers → get_provider_profile → compare_providers. Accepts task (aliases: query, q).

Input Schema

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

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / request_ref
      Added value: +{
      +  "description": "Optional task reference (rq_ + 12 hex) from an earlier answer. Continues that task: its remembered facts (quantities, budget, requirements, benchmark selection) apply to this call, and the answer keeps the same request_ref.",
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / cohort_ref
      Added value: +{
      +  "description": "Optional (1.17.0): reuse the exact set of comparable providers selected by an earlier price_benchmark / market_report / research_capability call.",
      +  "type": "string"
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / provider_type / enum
      Previous value: -[
      -  "auto",
      -  "provider",
      -  "mcp",
      -  "api",
      -  "any"
      -]New value: +[
      +  "auto",
      +  "agent",
      +  "mcp",
      +  "api",
      +  "any"
      +]
  4. Changed1 schema field changed
    • changedInput schema / properties / provider_type / description
      Previous value: -"Preferred delivery type. 'auto' (default) infers from the task; note 'AI agent' phrasing is treated as generic (neutral), not an agent-only filter. When a type is explicit (mcp/api/agent) matching providers are SOFT-RANKED to the top and the rest are kept as clearly-labelled cross_type_alternative entries — never hard-filtered (no zero-result cliff), and the functional niche is never changed. Every provider is labelled with provider_type (public values: agent | mcp | api | unknown) + type_match_score; provider_type{type_rank_boost_applied, boosted_provider_type, result_counts_by_type} is returned."New value: +"Preferred delivery type. 'auto' (default) infers from the task; note 'AI agent' phrasing is treated as generic (neutral), not an agent-only filter. When a type is explicit (mcp/api/agent) matching providers are SOFT-RANKED to the top and the rest are kept as clearly-labelled cross_type_alternative entries — never hard-filtered (no zero-result cliff), and the functional match is never changed. Every provider is labelled with provider_type (public values: agent | mcp | api | unknown) + type_match_score; provider_type{type_rank_boost_applied, boosted_provider_type, result_counts_by_type} is returned."
  5. Changed2 schema fields changed
    • changedInput schema / properties / provider_type / enum
      Previous value: -[
      -  "auto",
      -  "agent",
      -  "mcp",
      -  "api",
      -  "any"
      -]New value: +[
      +  "auto",
      +  "provider",
      +  "mcp",
      +  "api",
      +  "any"
      +]
    • changedInput schema / properties / task / description
      Previous value: -"Required — the natural-language capability/task, e.g. 'reconcile supplier invoices' or 'litigation-analysis agent'. Aliases: query, q."New value: +"Required — the natural-language capability/task, e.g. 'reconcile supplier invoices' or 'litigation-analysis provider'. Aliases: query, q."
  6. Changed1 schema field changed
    • changedInput schema / properties / provider_type / description
      Previous value: -"Preferred delivery type. 'auto' (default) infers from the task; note 'AI agent' phrasing is treated as generic, not an agent-only filter. Every provider is labelled with entity_type and result_counts_by_type is returned."New value: +"Preferred delivery type. 'auto' (default) infers from the task; note 'AI agent' phrasing is treated as generic (neutral), not an agent-only filter. When a type is explicit (mcp/api/agent) matching providers are SOFT-RANKED to the top and the rest are kept as clearly-labelled cross_type_alternative entries — never hard-filtered (no zero-result cliff), and the functional niche is never changed. Every provider is labelled with provider_type (public values: agent | mcp | api | unknown) + type_match_score; provider_type{type_rank_boost_applied, boosted_provider_type, result_counts_by_type} is returned."
  7. Changed1 schema field changed
    • addedInput schema / properties / provider_type
      Added value: +{
      +  "description": "Preferred delivery type. 'auto' (default) infers from the task; note 'AI agent' phrasing is treated as generic, not an agent-only filter. Every provider is labelled with entity_type and result_counts_by_type is returned.",
      +  "enum": [
      +    "auto",
      +    "agent",
      +    "mcp",
      +    "api",
      +    "any"
      +  ],
      +  "type": "string"
      +}
  8. Added

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely useful behavior beyond that: matching is functional with no fixed categories, the price band comes with a sample size n, and compare_ready handles are produced as the hand-off artifact for compare_providers. It stops short of describing pagination or response-size behavior, so not a full 5.

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

Conciseness4/5

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

The purpose and return shape are front-loaded in the opening clause, and the exclusion plus preferred alternative follow immediately. The trailing 'Accepts `task` (aliases: query, q)' duplicates what the schema already states and is the one sentence that does not earn its place.

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

Completeness4/5

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

With no output schema, the description carries the burden of return-shape disclosure and does so by listing the concrete fields produced (price range/median with n, market_position values, compare_ready handles, suggested_alternatives). Given 10 parameters and four enums, the remaining input options are fully covered by the 100% schema coverage, so the gap is minor.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3 and every enum, default and alias is already documented. The description still adds cross-parameter meaning: it names `task` with its aliases and clarifies that compare_ready output is the input contract for compare_providers, which the schema itself does not express.

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

Purpose5/5

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

The description states a specific verb+resource ('quick first overview of a buying task in one call') and enumerates exactly what is returned: closest-matching listings matched on function (no fixed categories), price range and median with n, plus a shortlist with observed prices, market_position and compare_ready handles. It explicitly distinguishes itself from compare_providers ('It does not run the comparison'), so an agent can separate it from siblings without opening the schema.

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

Usage Guidelines5/5

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

Names the precise condition for use ('quick first overview') and the alternative path when the goal differs ('For careful selection prefer search_providers → get_provider_profile → compare_providers'), including the excluded action ('does not run the comparison'). Both when-to-use and when-to-use-something-else are stated explicitly.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources