{"$schema":"https://modelcontextprotocol.io/schemas/server-card.json","serverInfo":{"name":"agentery","version":"1.8.0"},"description":"Agentery — the pricing layer for commercial AI agents & MCP servers, as an MCP. Map a task to its niche, compare FX-normalized prices by buyer tier and billing unit, read the Agent Economy Price Index (AEPI) and its history, and build private custom price benchmarks. Public; mostly read-only. Writes (each tool's annotations say which): report_outcome, the custom-benchmark tools (your own private cohort only), and research requests/refinements (your own jobs and tasks).","homepage":"https://agentery.com","endpoint":"https://agentery.com/api/mcp","transport":"streamable-http","authentication":{"type":"none"},"configSchema":{"type":"object","properties":{},"additionalProperties":false},"capabilities":{"tools":{},"resources":{},"prompts":{}},"tools":[{"name":"suggest_alternatives","title":"Find provider alternatives","description":"Substitutes for a given agent, ranked by text-embedding nearness to its own profile (no category lookup). Unknown names are queued for automated research — check back later (research runs about every 10 minutes).","write":false,"annotations":{"title":"Find provider alternatives","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}},{"name":"request_research","title":"Request product research","description":"Ask one specific question about one listing (e.g. {\"provider_id\":\"singchat\",\"requirement\":\"Does the Business plan's button lead to checkout or a sales form?\"}). Agentery reads the vendor's own pages or verified code repository and answers that exact question with quotes, URLs and observation dates — usually within about 15 seconds in this same response (result, phase). Otherwise poll get_research after poll_after_seconds. Identical questions share one job; 'unknown' is a valid answer.","write":true,"annotations":{"title":"Request product research","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"get_research","title":"Get research result","description":"Status and result of a research job. phase: queued | running | retry_scheduled | completed_answer | completed_unknown | failed; poll no more often than poll_after_seconds (polling is free and never repeats the work). The result gives answer (yes/no/partly/unknown), short_answer, per-claim evidence (quote, URL, observed date, file path and revision for repositories) and what remains unresolved.","write":false,"annotations":{"title":"Get research result","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}},{"name":"stop_research_updates","title":"Stop research updates","description":"Stop watching a research job.","write":true,"annotations":{"title":"Stop research updates","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"name":"refine_results","title":"Refine search results","description":"Refine an earlier search/research answer: pass its request_ref and a plain-words correction; Agentery re-reads the request (Claude Opus 5.5), keeps unchanged constraints, re-runs the search and returns the improved answer with what changed.","write":true,"annotations":{"title":"Refine search results","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"research_capability","title":"Research a capability","description":"One-call procurement: resolves a task to its live semantic market (nearest providers by text embedding, no fixed category), current pricing + index context, and a ready-to-compare shortlist (collapses find_market → market_report → price_benchmark → search_providers). Pricing uses the same engine and neighbourhood as price_benchmark; pass buyer_tier for that tier's median (with n) — without it the headline is labelled entry-plan (cheapest plan per provider), never a tier estimate.","write":false,"annotations":{"title":"Research a capability","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}},{"name":"price_benchmark","title":"Benchmark a price","description":"Fair-price benchmark for a natural-language capability — the semantic neighbourhood of the query — split by provider type (agent / MCP) and buyer tier, with median/mean/stdev/quartiles/range/n. Never a blended agent+MCP median.","write":false,"annotations":{"title":"Benchmark a price","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}},{"name":"get_group_fair_price","title":"Get group fair price","description":"Use to check whether a price or quote is fair: give a task or product type and get its product group's fair price per buyer tier (median entry monthly price and typical range), the usual payment models, and the group price index's 90-day change. Medians only — tiers with fewer than 3 priced listings are marked as too few.","write":false,"annotations":{"title":"Get group fair price","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}},{"name":"get_price_index","title":"Get price index","description":"Current Agent Economy Price Index (AEPI) level + 1d/7d/30d change for the whole economy, each buyer tier, and the agent/mcp facets — a chained like-for-like price index, not a market price. Also accepts a `benchmark_id` to read a private custom benchmark's current index.","write":false,"annotations":{"title":"Get price index","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}},{"name":"get_price_index_history","title":"Get price index history","description":"Canonical dated index series (30d/90d/all) for the AEPI, a buyer tier, or an agent/mcp facet — the same series the /aepi page charts. Also accepts a `benchmark_id` (and optional `as_of`) to read a private custom benchmark's history. Polling agents: pass `since` (the `cursor` from the previous call, or a timestamp) to get only new days and corrections to earlier days.","write":false,"annotations":{"title":"Get price index history","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}},{"name":"market_gaps","title":"Find market gaps","description":"Demand-first whitespace: clusters of real user requests that sit far from any paid provider, ranked by demand mass. No fixed categories.","write":false,"annotations":{"title":"Find market gaps","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}},{"name":"demand_signals","title":"View demand signals","description":"Unmet demand mined from zero-result and weak-match search telemetry. An empty list is honest (status insufficient_evidence + next_step): it is never filled from search popularity, page views or trending queries.","write":false,"annotations":{"title":"View demand signals","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}},{"name":"report_outcome","title":"Report provider outcome","description":"Report the result of actually using a listed provider. Testing Agentery itself does not establish that the provider worked; reports are self-reported evidence subject to eligibility checks and test-labelled reports carry no weight.","write":true,"annotations":{"title":"Report provider outcome","readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}},{"name":"create_custom_benchmark","title":"Create custom benchmark","description":"Use to keep watching the prices of products you choose. Create a PRIVATE benchmark: pass an explicit member list, or fork a canonical market (base_niche + remove/add). Returns a one-time secret cb_ token — your only key, no account needed. Every member must resolve to an immutable offering_id; ambiguous names return candidates (never silently resolved).","write":true,"annotations":{"title":"Create custom benchmark","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"get_custom_benchmark","title":"Get custom benchmark","description":"Read a custom benchmark by its cb_ token: members, current stats (headline median only when ≥3 comparable priced — monthly / per-seat / per-call never blended), buyer-tier / provider-type / pricing-unit cohorts, historical index, and reproducibility fields (version, data_as_of, engine_version). Optional as_of replays the exact output for a chosen date.","write":false,"annotations":{"title":"Get custom benchmark","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}},{"name":"update_custom_benchmark","title":"Update custom benchmark","description":"Add/remove members or rename — creates a NEW immutable version (previous versions stay reproducible) and returns the exact change-impact on the median/quartiles/index.","write":true,"annotations":{"title":"Update custom benchmark","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"delete_custom_benchmark","title":"Delete custom benchmark","description":"Disable access to a custom benchmark; keeps a minimal audit record. Never touches underlying Agentery data.","write":true,"annotations":{"title":"Delete custom benchmark","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"name":"search_providers","title":"Search providers","description":"Start here for buying research. Free-text search for agents / MCP servers by what they do — example: \"supplier invoice reconciliation\". Then call get_provider_profile on the best handles and compare_providers on the shortlist. Filters: price ceiling, billing, provider_type (agent / mcp / api / platform / infrastructure). Filters: price ceiling, billing, and provider_type (agent / mcp / api / platform / infrastructure — the audited classification; result labels always match the filter). A budget stated in the query (\"maximum $5 total\", \"under $30/month\", \"no subscription\") or max_monthly_usd is a HARD constraint: results are only offers whose observed price fits; unknown-cost offers are returned separately as budget_unverified, over-budget ones as over_budget. A failed product-name search is queued for automated research (listed in ~15 minutes if real) instead of dead-ending.","write":false,"annotations":{"title":"Search providers","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}},{"name":"get_provider","title":"Get provider details","description":"Look up a single agent by handle or registration number. Unknown names are queued for automated research — check back later (research runs about every 10 minutes).","write":false,"annotations":{"title":"Get provider details","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}},{"name":"get_provider_profile","title":"Get provider profile","description":"Step 2 of the buyer path. Full profile for one provider: plans, pricing model, liveness, evidence URLs, how-to-connect. Use after search_providers returns handles. Unknown names are queued for automated research — check back later (research runs about every 10 minutes).","write":false,"annotations":{"title":"Get provider profile","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}},{"name":"compare_providers","title":"Compare providers","description":"Step 3 of the buyer path. Side-by-side capability + plan-level prices for 2–6 providers (e.g. the Pro tier). Resolves handles/display-names (never silent fuzzy-swaps), returns suggested matches + a corrected_call for unknowns, and discloses mixed delivery types (agent/MCP/API). Entirely-unknown names are queued for automated research (~15 minutes). Concise decision view by default; detail:\"full\" for every field.","write":false,"annotations":{"title":"Compare providers","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}},{"name":"find_market","title":"Find a market","description":"Map a natural-language task/capability to its live semantic market — nearest providers by text embedding — with the priced-neighbourhood benchmark (median/mean/stdev/quartiles/n per buyer tier). When there is no strong market the response says so: status no_match or thin_coverage (nearest neighbourhood labelled partial_match) with a next_step — it never invents a market.","write":false,"annotations":{"title":"Find a market","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}},{"name":"market_report","title":"Get market report","description":"Deep-dive one market (the semantic neighbourhood of a query): pricing by provider type & buyer tier, neighbourhood size, and the top providers competing there.","write":false,"annotations":{"title":"Get market report","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}}],"resources":[],"prompts":[]}