com.agentery/agentery
REMOTE · AGENTERY.COM · SCANNED AUG 3
Search agents & MCP servers by capability, with daily-observed pricing, liveness and market data.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security63
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 19 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability58
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 6135 tokens (~322/item across 19 items; 19 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
- Stability check failed: schema churn in the 8 days we've observed: 5 tool removals, 0 breaking changes, 0 auth/transport breaks, 12 additions. See how to fix → Fail
Tool Coverage99
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 96% of tool parameters carry a description.Partial
Capabilities40
- Spec-recency check failed: implements MCP spec 2025-03-26; the latest is 2026-07-28. See how to fix → Fail
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · agentery.com
claude mcp add --transport http com-agentery-agentery https://agentery.com/api/mcp
[mcp_servers.com-agentery-agentery] url = "https://agentery.com/api/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-agentery-agentery": {
"type": "remote",
"url": "https://agentery.com/api/mcp",
"enabled": true
}
}
} openclaw mcp add com-agentery-agentery --url https://agentery.com/api/mcp --transport streamable-http
mcp_servers:
com-agentery-agentery:
url: "https://agentery.com/api/mcp" {
"mcpServers": {
"com-agentery-agentery": {
"type": "http",
"url": "https://agentery.com/api/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 0
- Tool “price_benchmark” rewrote its description, which is the text the model reads security
- “price_benchmark” added an optional parameter “response_mode” cosmetic
- “price_benchmark” added an optional parameter “provider_type” cosmetic
- “price_benchmark” added an optional parameter “pricing_unit” cosmetic
- “price_benchmark” added an optional parameter “buyer_tier” cosmetic
- 2 Aug 26 −3
- Stability: 0.20 → fail ▼ security
- Tool “compare_agents” was removed ▼ security
- Tool “get_agent” was removed ▼ security
- Tool “get_agent_profile” was removed ▼ security
- Tool “rank_agents_for_workflow” was removed ▼ security
- Tool “search_agents” was removed ▼ security
- The server rewrote its instructions, which are the text every model session reads security
- Tool “demand_signals” rewrote its description, which is the text the model reads security
- Tool “find_niche” rewrote its description, which is the text the model reads security
- Tool “get_price_index” rewrote its description, which is the text the model reads security
- Tool “niche_report” rewrote its description, which is the text the model reads security
- Tool “report_outcome” rewrote its description, which is the text the model reads security
- Tool “research_capability” rewrote its description, which is the text the model reads security
- Tool “suggest_alternatives” rewrote its description, which is the text the model reads security
- Schema quality: good → excellent functional
- Server version: 1.7.1 → 1.8.0 functional
- New tool “compare_providers” functional
- New tool “get_provider” functional
- New tool “get_provider_profile” functional
- New tool “rank_providers_for_workflow” functional
- New tool “search_providers” functional
- “suggest_alternatives” reworded the description of “agent_id” cosmetic
- “suggest_alternatives” reworded the description of “cheaper_only” cosmetic
- “get_price_index” reworded the description of “niche” cosmetic
- “report_outcome” reworded the description of “agent_id” cosmetic
- “report_outcome” reworded the description of “latency_ms” cosmetic
- “report_outcome” reworded the description of “outcome” cosmetic
- “research_capability” reworded the description of “task” cosmetic
- 1 Aug 26 +3
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 −1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 +1
- Tool “compare_agents” rewrote its description, which is the text the model reads security
- Server version: 1.6.1 → 1.6.2 functional
- 28 Jul 26 +1
- Schema quality: good → excellent functional
- 27 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 58
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://agentery.com/api/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=agentery.com | CN=YE1,O=Let's Encrypt,C=US | 2 Jul 2026 | 30 Sept 2026 | ECDSA 256 | ECDSA-SHA384 | 5967c049f2641470a99076efdb98a5a463a |
| SANs: agentery.com, www.agentery.com | ||||||
| CN=YE1,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 5ddd70dd31f801c85c186a7a04b80afe |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
DNSSEC insecure
Validation of agentery.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| agentery.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains; preload |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | camera=(), microphone=(), geolocation=(), payment=(), usb=(), interest-cohort=() |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://agentery.com/api/mcp | Verified | 200 | |
| http (plaintext) | http://agentery.com/api/mcp | HTTPS enforced | 301 | https://agentery.com/api/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
compare_providers ~382
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-niche competitors (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 niche/sector. 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 | Type | Req | Description |
|---|---|---|---|
| provider_ids | array | yes | 2-6 provider handles from search_providers/market_gaps, e.g. ["openhands","lexaclaw"] |
No output schema declared.
No examples provided.
create_custom_benchmark ~263
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 niche: pass `base_niche` 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 niche_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 niches are never changed.
| Name | Type | Req | Description |
|---|---|---|---|
| add | array | — | members to add |
| allow_partial | boolean | — | Create with only the resolved members when some inputs don't resolve (default false) |
| base_niche | string | — | Mode B: canonical niche slug to fork |
| members | array | — | Mode A: exact handles (preferred), product names or domains |
| name | string | — | Optional private label |
| remove | array | — | Mode B: members to drop from the forked niche |
No output schema declared.
No examples provided.
delete_custom_benchmark ~49
Disable access to a custom benchmark. Keeps only a minimal audit record; no underlying Agentery data is touched. Pass `benchmark_id`.
| Name | Type | Req | Description |
|---|---|---|---|
| benchmark_id | string | yes | Your cb_ token |
No output schema declared.
No examples provided.
demand_signals ~98
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 niche_report/market_gaps to size the gap. Empty args ({}) return the current ranked unmet-demand list.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Max signals (1-50, default 20) |
No output schema declared.
No examples provided.
find_niche ~508
Map a natural-language task, capability or service to the correct canonical Agentery niche in ONE call — for buyers ('a provider that monitors competitor pricing'), sellers ('what should I charge for a lead-generation provider') or classification ('which niche does my customer-support provider belong to?'). Pricing-intent boilerplate is stripped before matching. Returns match_certainty ('confident'|'ambiguous'|'uncertain' — 'confident' requires a strong score AND a clear lead over the runner-up AND a specific niche, so a borderline top score is never oversold as confident), the best-matching niche (name + slug) with a confidence score and reason, up to two alternatives, and pricing on an EVIDENCE LADDER via pricing_status: 'ok' = a strict comparable benchmark — pricing_by_tier: FX-normalized monthly-USD cohorts separated by buyer tier (individual/pro/team_sme/enterprise) AND billing unit (flat/per_seat/per_user/per_agent), provider-deduped (one vendor's ladder counts once), with provider_count, plan_observation_count, data_confidence, reliability; p25/p75 only at >=5 providers. When no strict cohort forms: 'single_observation' (exactly one comparable provider — returned in single_observations, never called a benchmark/median), or 'observed_offers_only' (real provider offers in observed_offers, grouped and labelled by billing type/unit, each a single observed price NEVER aggregated across mixed units/periods/tiers). Also returns pricing_coverage (listings, priced listings, normalized observations, comparable providers, exclusion reasons) and, when there is no strict benchmark, adjacent_pricing (related niches WITH a benchmark, clearly not equivalent). Usage-metered, promotional, range, one-time and ambiguous-cadence plans are excluded from cohorts. When the match is 'uncertain', pricing is WITHHELD; when 'ambiguous', pricing is returned but flagged to confirm the niche. Follow suggested_next_call to niche_report for the full market read. Accepts `task` (aliases: que…
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | — | Alias for task (back-compat) — a natural-language task, capability or service |
| task | string | — | A natural-language task, capability or service, e.g. 'reconcile supplier invoices' |
No output schema declared.
No examples provided.
get_custom_benchmark ~165
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 | Type | Req | Description |
|---|---|---|---|
| as_of | string | — | Optional YYYY-MM-DD — reproduce the exact stats + index as they were on that date, using this version's fixed membership |
| benchmark_id | string | yes | Your cb_ token (bearer secret; passed as an argument, never a URL) |
| response_mode | string | — | full includes the index series |
| version | number | — | Optional benchmark version (default latest) |
No output schema declared.
No examples provided.
get_price_index ~536
Call this for the CURRENT level of the Agent Economy Price Index (AEPI) or one niche's price index — 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. scope 'aepi' (default) returns the 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). scope 'niche' resolves a slug OR a natural-language task via the niche resolver (returning resolver mode/certainty/confidence and candidate niches) and returns that niche's index level and change_1d/7d/30d with comparable-provider counts; when history or comparable data is thin it returns an honest status (insufficient_comparables / insufficient_history / temporarily_unavailable) instead of a fabricated percentage — it never substitutes another cohort. `tier` filters to one buyer tier; response_mode 'full' adds exact sub-0.01% moves, per-tier niche indices and repricing counts. Reads the SAME canonical series as the /aepi page, so the MCP and website agree for a given timestamp.
| Name | Type | Req | Description |
|---|---|---|---|
| niche | string | — | 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. |
| provider_type | string | — | 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 differe… |
| response_mode | string | — | 'summary' (default) or 'full' (adds exact sub-0.01% moves, per-tier niche detail and repricing counts). |
| scope | string | — | 'aepi' (default) = whole-economy headline + the four buyer tiers; 'niche' = one niche's index. |
| tier | string | — | Filter to one buyer tier ('team' = Team/SME). Default 'all'. |
No output schema declared.
No examples provided.
get_price_index_history ~356
Call this for the canonical DATED index SERIES (to chart or analyse movement) of the AEPI or a niche price index — the same chained like-for-like series the /aepi and niche pages plot. Every point is an index level (base 100), never a price. scope 'aepi' (default) returns the headline series, or a single buyer tier's series when `tier` is set; scope 'niche' resolves a slug or natural-language query and returns that niche's dated series. `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 / insufficient_comparables) rather than a fabricated series when data is too thin.
| Name | Type | Req | Description |
|---|---|---|---|
| niche | string | — | For scope 'niche': a canonical niche slug or natural-language query. |
| period | string | — | History window. Default '30d'. |
| provider_type | string | — | 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 s… |
| response_mode | string | — | 'summary' (default, compact) or 'full'. |
| scope | string | — | 'aepi' (default) or 'niche'. |
| tier | string | — | For scope 'aepi', return one buyer tier's series ('team' = Team/SME). Default 'all' = the headline series. |
No output schema declared.
No examples provided.
get_provider ~78
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 | Type | Req | Description |
|---|---|---|---|
| handle | string | — | Provider handle, e.g. 'openhands' |
| regNum | number | — | Registration number, e.g. 2432 |
No output schema declared.
No examples provided.
get_provider_profile ~202
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 | Type | Req | Description |
|---|---|---|---|
| provider_id | string | yes | The provider_id/handle returned by search_providers or compare_providers |
No output schema declared.
No examples provided.
market_gaps ~209
Find under-served markets to build in. DEFAULT (rank='gaps'): true whitespace — niches with money already present (enterprise / contact-sales pricing) or recent builder entry, but FEW competitors; crowded niches are excluded, so a 'gap' is never crowded. Each result carries gap_score, a plain-English `why`, crowding, listing count, the market_pulse object and an observed-pricing rollup. Pass rank='hot' instead to rank by momentum (market pulse) regardless of crowding — for tracking where the action is. Drill into one slug with niche_report. Empty args ({}) return the ranked overview — a lightweight orient scan.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Max niches (1-50, default 15) |
| rank | string | — | gaps (default): whitespace with money, crowded excluded. hot: most active by market pulse, crowding ignored. |
| sector | string | — | Optional sector filter, e.g. 'legal', 'healthcare' |
No output schema declared.
No examples provided.
niche_report ~320
Call this to deep-dive ONE market niche before building or investing — every field is MEASURED: market_pulse (composite of 30d like-for-like price movement, money present, builder entry, endpoint liveness — with plain-English drivers), the observed-pricing snapshot, crowding level, adjacent niches, and the top providers already competing there. Also returns `movement` (7-day decomposition: which providers repriced vs entered/left the priced set) and `index_series` (the niche's like-for-like price index) — each null when data is thin. Pricing follows the same EVIDENCE LADDER as find_niche (pricing_status ok / single_observation / observed_offers_only / insufficient, with pricing_coverage). An approximate or natural-language niche is resolved to the canonical slug (returned in niche_resolution). Accepts `niche` (aliases: slug, niche_slug). Get valid slugs from market_gaps. Use when you already know the niche; for market + pricing + shortlist in one call use research_capability.
| Name | Type | Req | Description |
|---|---|---|---|
| niche | string | yes | Niche slug (or an approximate slug / natural-language name — it is resolved to the canonical niche), e.g. 'ai-phishing-detection' |
| response_mode | string | — | 'summary' (DEFAULT) returns a compact ~5KB block: clearly-named counts, canonical published movement, monthly-comparable tier ranges, billing mix, top providers and suggested next calls. 'full' retur… |
No output schema declared.
No examples provided.
price_benchmark ~647
Returns fair-price benchmarks for a functional niche, SEPARATED BY provider type (provider / mcp / api), buyer tier (individual / pro / team_sme / enterprise) and compatible pricing unit. A fair-price benchmark = NICHE x PROVIDER_TYPE x BUYER_TIER x PRICING_UNIT — 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 available per-type/per-tier cohort matrix (populated cohorts only), not a blended headline. Never treat MCP as the functional niche unless the product itself is MCP infrastructure. The blended distribution + AEPI index remain available only in response_mode='full'. Also returns `index` — the Agent Economy Price Index for the scope: a chained like-for-like daily price index (base 100 = 29 Jun 2026) that composition changes can't move; null when the series is too short. At whole-economy scope (no niche/sector filter) it also returns `index_by_tier`: the same index tracked separately per pricing tier (individual/pro/team_sme/enterprise) — null when a niche or sector filter is given, because per-tier-per-niche samples are too thin to be honest. The authoritative block is pricing_by_tier (pricing_version 'cohorts-1') on the same EVIDENCE LADDER as find_niche: 'ok' (strict per-tier/unit cohorts) else single_observations / observed_offers (real offers, labelled by billing type, never aggregated across mixed units) plus pricing_coverage; the legacy byPersona medians are kept only for back-compat. An approximate or natural-language niche is resolved to the canonical slug (returned in niche_resolution); an unresolvable niche returns resolved:false with did_you_mean instead of an empty result.
| Name | Type | Req | Description |
|---|---|---|---|
| buyer_tier | string | — | 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 enterpr… |
| niche | string | — | Niche slug (or an approximate slug / natural-language name — it is resolved to the canonical niche), e.g. 'contract-review-automation' |
| pricing_unit | string | — | Optional pricing unit to hold constant (e.g. 'flat', 'per_seat', 'per_agent'). Incompatible units are never combined. |
| provider_type | string | — | 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… |
| response_mode | string | — | 'summary' (default): compact per-type/per-tier benchmark matrix. 'full': also returns the deprecated blended legacy block + AEPI index. |
| sector | string | — | Sector name, e.g. 'legal' (ignored if niche is given) |
No output schema declared.
No examples provided.
rank_providers_for_workflow ~207
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 | Type | Req | Description |
|---|---|---|---|
| business_context | object | — | company_description, industry, region, existing_tools[], automation_posture (cautious|balanced|agent_native), regulated_data (none|personal|health|financial|legal|children|unknown) |
| limit_per_step | number | — | Max candidates per step (1-25, default 8) |
| workflow_steps | array | yes | Each: step_id, step_name, step_description, inputs[], desired_outputs[], required_integrations[], human_approval_preference (always|sometimes|not_needed|unknown) |
No output schema declared.
No examples provided.
report_outcome ~292
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 | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Handle of the provider you used, as returned by search_providers/get_provider_profile/compare_providers |
| error_class | string | — | Optional failure class, e.g. 'timeout', 'auth', 'wrong-output', 'endpoint-down' |
| latency_ms | number | — | Optional end-to-end latency of the provider in milliseconds |
| note | string | — | Optional free-text detail (capped at 300 chars) |
| outcome | string | yes | Did the provider accomplish the task you hired it for? |
| task_type | string | — | Optional short task label, e.g. 'code-review', 'lead-enrichment' |
No output schema declared.
No examples provided.
research_capability ~597
START HERE for provider procurement. ONE call turns a task into: (1) its resolved market — niche name + slug, resolver mode/confidence, alternative niches, a concise definition; (2) current pricing context — comparable price range, the niche's AEPI index level and 1d/7d/30d movement, provider/comparable 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`. This collapses the usual find_niche → niche_report → price_benchmark → search_providers handshake into a single call and REUSES those exact engines (no new pricing/index/search logic). It also returns `suggested_alternatives` (cheaper or stronger in-market options — e.g. when a provider is over budget or an integration is unconfirmed) 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_niche, niche_report, price_benchmark, search_providers) when you need finer control. Aliases: `task` also accepts `query` / `q`.
| Name | Type | Req | Description |
|---|---|---|---|
| buyer_tier | string | — | Optional buyer tier to price against ('team' = Team/SME). |
| integrations | array | — | Optional required integrations, e.g. ["zendesk","slack"] — soft preference; integration status is reported per provider. |
| limit | number | — | Shortlist size (1-12, default 5). |
| max_monthly_usd | number | — | Optional budget ceiling in USD/month — filters the shortlist and drives suggested_alternatives. |
| provider_type | string | — | 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 pr… |
| response_mode | string | — | 'summary' (default) or 'full' (adds tier cohorts, coverage and raw results). |
| sort | string | — | Shortlist ordering. Default 'match'. |
| task | string | yes | Required — the natural-language capability/task, e.g. 'reconcile supplier invoices' or 'litigation-analysis provider'. Aliases: query, q. |
No output schema declared.
No examples provided.
search_providers ~413
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 | Type | Req | Description |
|---|---|---|---|
| billing | array | — | Only providers with one of these observed billing models, e.g. ["free","freemium","subscription","usage"] |
| filters | object | — | Optional: industry_fit[], integrations_available[], entity_type[] (agent|tool|infrastructure|service|marketplace|content-community), autonomy_level[] (assistant|workflow automation|agentic|infrastruc… |
| limit | number | — | Max results (1-50, default 20) |
| max_monthly_usd | number | — | 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. |
| query | string | — | Free-text capability query, e.g. 'customer support provider with Zendesk integration' |
| require_public_price | boolean | — | Only return providers with an observed public price (default false) |
| sort | string | — | match (default) or price_asc (cheapest observed price first; unpriced providers last) |
No output schema declared.
No examples provided.
suggest_alternatives ~201
Call this when a shortlisted provider is too expensive, unreachable or a poor fit: substitutes for one known provider — same niche first, topped up by similar capability — 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 | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Handle of the provider to find substitutes for, e.g. 'openhands' |
| cheaper_only | boolean | — | 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. |
| limit | number | — | Max alternatives (1-10, default 5) |
No output schema declared.
No examples provided.
update_custom_benchmark ~85
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 | Type | Req | Description |
|---|---|---|---|
| add | array | — | — |
| benchmark_id | string | yes | Your cb_ token |
| remove | array | — | — |
| rename | string | — | — |
No output schema declared.
No examples provided.