Sharpest price search
Server Details
Current new and used prices for GPUs, electronics, trading cards, LEGO and everyday staples.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 7 tools
Each tool has a distinct lens: search_prices finds listings, get_price details one product, deals surfaces bargains vs 30-day averages, price_moves shows week-over-week movers, price_per_unit ranks unit economics, and used_vs_new compares conditions. The only mild overlap is deals vs price_moves (both highlight favorable price changes) and price_per_unit vs search_prices (both return 'cheapest'), but descriptions clarify the distinction.
All names are snake_case, which is good, but conventions are mixed: some are verb_noun (get_price, list_categories, search_prices) while others are bare noun phrases (deals, price_moves, price_per_unit, used_vs_new). Names remain readable and mostly hint at their function, but there is no single predictable pattern.
Seven tools is well-scoped for a price-search server. Each tool covers a distinct query type (search, detail, categories, deals, movers, unit price, condition comparison) and none feels redundant or padding.
The surface covers the core pricing domain: discovery (search_prices, list_categories), detail (get_price with 30-day stats), and analysis (deals, price_moves, price_per_unit, used_vs_new). Minor gaps exist—no direct product-to-product comparison, no price history beyond the 30-day snapshot, and no watchlist/alert mechanism—but agents can work around these.
Available Tools
7 toolsdealsARead-onlyInspect
Today's deals: products whose cheapest listing is well under their own 30-day average low (or, for new products, under today's typical price). Optional category key from list_categories.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context by defining the deal criterion (30-day average low comparison, separate branch for new products), which is essential for interpreting results. It stops short of saying how many results come back by default, whether they are ranked, or why an item might be excluded.
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 sentences with the core definition front-loaded; nothing is wasted. The nested parenthetical about new products is slightly awkward to parse but conveys a necessary edge case, so it 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 simple two-parameter read tool this is mostly adequate, and the criterion definition covers the conceptual gap. With no output schema, though, the description never sketches the return shape (e.g., that it yields products with their cheapest listing and comparison price), and it omits the limit parameter entirely.
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 0% across two parameters, so the description has to carry the load. It explains the 'category' parameter's meaning and where to source valid keys (list_categories), which the bare string schema does not. The 'limit' parameter is never mentioned, leaving its purpose, default of 10, and maximum of 25 undocumented outside the schema constraints.
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 gives a specific resource ('products') plus the exact selection criterion: cheapest listing well under the product's own 30-day average low, with a separate rule for new products. That is far more specific than the bare name 'deals'. It does not explicitly contrast itself with the sibling price_moves, so an agent must infer the difference between 'deals' and 'price moves'.
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 tells the agent that category is optional and that valid keys come from list_categories, which is a useful pointer to a sibling. However, there is no explicit guidance on when to choose this tool over price_moves or price_per_unit, and no note on when the tool returns nothing or how results are ordered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_priceARead-onlyInspect
Today's price summary for one sharpest.ai product page (a URL from search_prices): lowest and median asking price, listing count, 30-day low, high and change.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | https://sharpest.ai/<category>/<product> |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety and scope are largely covered. The description adds genuine context by naming the return payload (lowest/median asking price, listing count, 30-day low, high, change) and the 'Today's' daily-snapshot framing, which matters because there is no output schema. It does not mention behavior for invalid/unknown URLs or how often the snapshot refreshes.
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?
A single front-loaded sentence stating scope first and the returned metrics second, with no filler or redundancy.
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 one required parameter, full schema coverage, and read-only annotations, the only real gap is return-value description because no output schema exists — and the description fills that by listing every metric returned. Minor omissions (error behavior, refresh cadence) keep it from a 5.
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, but the description adds meaning beyond the schema's format example: the URL must identify a product page (not a category page) and should originate from search_prices. That narrows valid inputs in a way the schema alone does not.
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 gives a specific verb+resource (price summary for one sharpest.ai product page) and immediately scopes it to a single URL rather than a set, and it enumerates the returned metrics. It does not explicitly distinguish itself from close siblings like price_moves or used_vs_new, which cover related price views, so it stops short of a 5.
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 parenthetical '(a URL from search_prices)' establishes a concrete workflow dependency: discover the product page with search_prices, then summarize its price here. It does not state when an agent should prefer price_moves, used_vs_new, or price_per_unit instead, so the exclusion side of the guidance is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesARead-onlyInspect
Categories sharpest.ai tracks, with the keys the other tools take: eBay product categories (GPUs, storage, RAM, phones, cameras, cards...) and per-unit staple groups (batteries, coffee, cables...).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered; the description adds that the entries are the exact keys other tools consume, which is genuinely useful. It does not state whether the taxonomy is static or user-scoped, nor what the returned structure looks like, and there is no output schema to fill that 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?
A single sentence, front-loaded with the core statement and followed by the two category families. The parenthetical example lists (GPUs, storage, RAM..., batteries, coffee, cables...) are illustrative rather than exhaustive, which is efficient, though the sentence is dense enough to read as a run-on.
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 zero-parameter read-only reference tool, the description covers what the list contains and why the keys matter to sibling tools. The one remaining gap is return shape — how categories and keys are paired or grouped — which no output schema documents.
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 tool takes no parameters, so there is nothing for the description to explain beyond the schema's empty object; baseline 4 applies. The description correctly does not invent parameter behavior.
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 names the resource precisely — the category taxonomy tracked by sharpest.ai — and enumerates its two families (eBay product categories vs. per-unit staple groups), which no sibling tool covers. It lacks an explicit verb ('list'), phrasing the purpose as a noun clause, but an agent can still distinguish this discovery tool from deals/get_price/search_prices at a glance.
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?
'with the keys the other tools take' implies the intended use: call this first to resolve keys that the pricing siblings accept. There is no explicit when-to-use/when-not framing and no named alternative, so the routing benefit is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
price_movesBRead-onlyInspect
Biggest price moves over the last week across all tracked products (typical asking price, then vs now), falling and rising.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and openWorldHint=false, so safety is covered; the description's added value is the metric definition (typical asking price, then vs now) and the one-week window, which are genuinely beyond the annotations. It does not disclose ordering direction, whether results are capped by default, or what happens when a product has insufficient history.
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?
A single front-loaded sentence with no boilerplate or redundancy, and the scope (weekly, all products) arrives before the metric clarification. Slightly dense with the parenthetical, but nothing is wasted.
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 read-only ranking tool with annotations covering safety and no output schema, the description conveys enough about what comes back (movers in both directions with before/after prices). The notable gap is the undocumented limit parameter and the unstated result ordering, which an agent would need to call it precisely.
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?
There is one optional parameter (limit, default 10, max 25) with 0% schema description coverage, and the description never mentions it. Because coverage is low, the description should have explained that limit controls how many moves are returned and that the maximum is 25, but it adds no meaning at all here.
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?
States a specific resource and scope: 'biggest price moves over the last week across all tracked products', with the metric parenthetically defined as typical asking price then-vs-now and the direction covered ('falling and rising'). An agent can tell this is a ranked weekly-movers list and not a point lookup like get_price or a query like search_prices, though it never names those siblings 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?
Usage is implied by the phrasing: reach for this when you want the largest week-over-week moves rather than a specific product's price. There is no explicit when-to-use/when-not guidance and no pointer to alternatives such as deals or used_vs_new, which an agent must infer from sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
price_per_unitBRead-onlyInspect
Cheapest price per unit, best first: per GB/TB for storage and RAM, per GB of VRAM for GPUs, per battery, per ounce, per foot of cable and so on. category = a key from list_categories (e.g. 'storage', 'ram', 'gpus', 'Batteries', 'Coffee & tea'). Optional condition for eBay categories: new, used or refurb.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| category | Yes | ||
| condition | No | any |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds two useful behavioral facts beyond them: results are ordered best-first, and condition only affects eBay categories. It does not describe what a result row contains (product, price, seller) or how the per-unit computation behaves when unit data is missing.
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 compact sentences with no filler, and the core ranking behavior plus unit basis is front-loaded. The opening 'Cheapest price per unit, best first:' reads slightly awkwardly, but every clause carries information.
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, the description is the only place to learn what comes back, and it stops at 'cheapest price per unit, best first' without describing result fields or ordering ties. Combined with the unexplained limit parameter, the definition is workable but leaves gaps an agent would have to discover by calling it.
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 0%, so the description must carry parameter meaning. It does well for category (key from list_categories plus labeled examples) and condition (allowed values, eBay-only scope, defaulting to any), but the limit parameter's meaning and cap of 25 are never mentioned, leaving one of three parameters undocumented anywhere.
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 names a specific operation: ranking items by cheapest price per unit, with the unit basis spelled out per category type (per GB, per battery, per ounce, per foot). This is clearly distinct from get_price or search_prices in intent, though it never explicitly names those siblings to differentiate.
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 tells the agent where category keys come from ('a key from list_categories') and when condition applies ('for eBay categories'), which is genuine routing guidance. It gives no guidance on when to prefer this over search_prices, deals, or used_vs_new, so the choice among siblings is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_pricesARead-onlyInspect
Find current prices for a product on sharpest.ai: GPUs, CPUs, RAM, SSDs, phones, laptops, cameras, consoles, Pokemon and other trading cards, LEGO, and everyday staples priced per unit (batteries, coffee, cables...). Returns today's lowest and median US eBay Buy It Now asking price (item + shipping, USD; not sold prices) or, for staples, the cheapest price per unit across Amazon and eBay, with a link to the product page.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | What to price, e.g. 'rtx 4090', 'aa batteries', 'canon r50' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only and the title covers scope, but the description adds substantive context: prices are US eBay Buy It Now asking prices (item + shipping, USD), explicitly not sold prices, and staples return cheapest per-unit across Amazon and eBay. That 'asking not sold' caveat is exactly the kind of caveat an agent would otherwise get wrong.
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?
One dense but front-loaded passage: coverage and return semantics lead, caveats follow. No filler sentences, though the category enumeration is long and could be trimmed without losing much.
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, the description carries the return-value burden and does so (lowest/median asking price, currency, unit-price mode, product link). The only real gap is 'limit' behavior and result count/pagination, which is minor for a simple two-parameter search.
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 50%: 'query' is documented in the schema and the category list reinforces what kinds of strings work. The 'limit' parameter is undocumented in both schema and description, so the description does not compensate for the coverage gap; baseline 3.
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?
States a specific verb+resource ('Find current prices for a product') and enumerates covered categories, so an agent knows this is broad product price lookup. It does not explicitly name how it differs from siblings like get_price or price_per_unit, leaving that inference to the agent.
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?
Usage is only implied: you call it when you have a product query. There is no explicit 'use this instead of get_price when...' or exclusion guidance among the six siblings, which matters given the overlapping price-oriented siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
used_vs_newBRead-onlyInspect
How much buying used or refurbished saves vs new, typical price vs typical price, for a category key from list_categories (not collectibles).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| category | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds only that results are category-scoped and exclude collectibles; it says nothing about how prices are aggregated or what happens with sparse data, and the redundant 'typical price vs typical price' adds no behavioral information.
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?
It is a single front-loaded sentence with no filler beyond what is needed, but the clause 'typical price vs typical price' is literally redundant and consumes space that could have clarified the savings output or the limit parameter.
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 two-parameter read tool with no output schema, the definition covers the core comparison and the category dependency. It still leaves the limit parameter and the shape of the returned savings data unaddressed, so an agent knows what it asks for but not fully how to tune or read the result.
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 0%, so the description must carry parameter meaning. It does clarify that the category parameter is a key obtained from list_categories and must not be a collectible, which is genuinely useful. However, the limit parameter is entirely unexplained, leaving half the inputs undocumented.
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 states a specific comparison (used/refurbished price vs new price, expressed as savings) over a category, which is a distinct purpose from siblings like get_price or price_moves. The phrasing 'typical price vs typical price' is awkward and blurs the exact output, but the core verb+resource is identifiable.
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 gives one concrete usage constraint: the category must be a key from list_categories, and collectibles are excluded. It does not say when to prefer this over deals or get_price, nor what to do if a category is a collectible, so guidance is implied rather than explicit.
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.
7 tool updates
- First observed
deals - First observed
get_price - First observed
list_categories - First observed
price_moves - First observed
price_per_unit - First observed
search_prices - First observed
used_vs_new
Related MCP Connectors
Used prices for GPUs, CPUs, RAM, consoles, iPhones, MacBooks and more from live eBay listings.
Real eBay sold prices for used GPUs, CPUs, RAM and more in 7 markets, and eBay listing price checks.
Live UK, Germany, Canada and US prices for GPUs and Macs that run open AI models. No sign-up.
Real-time Pokemon TCG restock alerts, MSRP lookups and restock timing for shops, apps and AI agents.
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceSourced product prices, dated price history, specs and independent-test coverage across 4,764 hardware products and 2,064 software vendors — every figure returned with its source URL and the date it was captured. Unknown values come back as null rather than a guess, so an agent can cite what it surfaces.-
- AlicenseAqualityDmaintenanceLEGO minifigure price lookup and identification. Search 18,000+ minifigs by name, theme, or description. Prices for used and new condition. Powered by brick'em (brickem.io).410 npm1MIT
- AlicenseAqualityDmaintenanceSearch eBay and get real price data, straight from an AI agent.31MIT
- AlicenseAqualityCmaintenanceMCP server for Magic: The Gathering card prices, deck analysis, sealed product EV calculations, and investment insights, powered by live data from 5 vendors covering 99K+ cards.21MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.