Underpriced AI

com.underpricedaiPublished by underpricedai.comOfficial publisherv1.3.0Updated Oct 24, 2026

Ask what a thrift find sells for. Real eBay sold comps, price range and net after fees.

VerifiedStreamable HTTPWeb executableFinanceBusiness & Commerce

Overview

AI-generated overview

Estimates what secondhand items sell for on eBay, using real sold comps, fee-adjusted net proceeds and draft listing creation.

What you can do
  • Price an item with a calibrated estimate, range, recent eBay sold comps, three list prices with 14-day sell chances and net after eBay fees
  • Pull recent sold comps for a search query, with count, median and quartiles
  • Check whether a deal is worth it from expected sale price and cost, using eBay US fee arithmetic
  • Retrieve a finished background scan result for a signed-in account
  • Turn a photo scan into an inventory item with a draft eBay listing and a review link
When to use it
Useful when reselling thrift or secondhand finds and you want a quick, evidence-based sense of eBay resale value, fee-adjusted profit and a starting list price, or want a draft listing prepared from a photo scan.
Requirements
Remote streamable HTTP endpoint; no packages, environment variables or headers declared. Some tools act on a signed-in Underpriced AI account, and comps come from the user's own eBay marketplace (for example eBay UK in GBP).
Before you install
Tools act on a signed-in account: get_scan_result reads that account's scan results and list_on_ebay creates an inventory item and a draft eBay listing, though publishing happens in the app. Estimates and fee math are advisory; worth_it uses eBay US fees regardless of currency. Sold comps and pricing data are sent to the provider.

Installation

In SourceWeft

  1. Open Underpriced AI in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.underpricedai%2Funderpriced-ai/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "underpriced-ai": {
      "type": "http",
      "url": "https://underpricedai.com/api/mcp/directory"
    }
  }
}

Tools

5

price_item

Price an item

What a secondhand item sells for on eBay: a calibrated estimate with a range, the recent real eBay sales behind it (sold comps, linked where the source gives a link), three list prices (fast, market, patient) with the 14-day sell chance, what the seller keeps after eBay fees, and a worth-it verdict when you pass what the user would pay. A description price searches the signed-in user's own eBay marketplace (eBay UK in GBP for a UK seller), eBay US in USD when nobody is signed in, or the site given in marketplace; price.currency names the currency. A photo price (photo, a file the user uploaded in the chat, or image_url, a public https link) needs the user signed in through the connector: it runs a real scan on their account, priced in their own eBay marketplace and currency (price.currency). Without sign-in, describe the item; a description works but reads less than a photo.

Parameterscostsizebrandmodelphotoconditionimage_urldescriptionmarketplacepart_number

get_sold_comps

Recent eBay sold comps

The most recent real eBay sales (sold comps) for a search query (brand, model or pattern, a few specific words), with the count, median and quartiles. Use when the user wants to see what actually sold and for how much. It searches the signed-in user's own eBay marketplace (eBay UK in GBP for a UK seller), eBay US in USD when nobody is signed in, or the site given in marketplace; the result names the site (marketplace) and the currency (currency). One search runs: the query as typed (a retail price with "$" in it is left out), with model or part_number appended only when the query does not already name it; with no query, brand plus model, or brand plus part_number. Sales whose title shows a different item are left out of the count, median and quartiles: comps.matched is how many were kept, comps.dropped how many were left out, and comps.relevanceChecked is false when that check could not run (every sale is then kept). comps.countIsLowerBound true means eBay returned a full page, so the count is that many or more. include words must all appear in a sale's title (and are added to the search when missing); a title with any exclude word is left out; both match whole words in any case and are named in the answer. prefer words leave nothing out: sales whose title has every one are listed first (preferred true) and summarized in comps.preferred, while count and summary still cover every matching sale. Each listed sale has condition, saleType, bids, shipping and location, each null when not known (a sale stored before 22 October 2026 gives condition only as new or used). exclude_items leaves out sales by eBay item number (each listed sale's itemId), before every other filter; comps.removedByItems counts them. limit sets how many recent sales are listed (default 8, up to 50).

Parametersbrandlimitmodelquerypreferexcludeincludemarketplacepart_numberexclude_items

worth_it

Worth buying at this cost?

What the seller keeps after eBay fees and a verdict (worth it / thin / pass) for an expected sale price and what the user would pay. Pure arithmetic in the currency you give it, with eBay US fees: pass the sale price and the cost in the same currency (the one price_item named in price.currency). For a seller on eBay UK, the worthIt block price_item returns already uses their own fees. Use price_item first when the sale price is unknown.

Parameterscostrequiredexpected_sale_pricerequired

get_scan_result

Fetch a saved scan's result

For a signed-in user: the finished result for a scan on their account, in the same shape as price_item, once the sold comps have landed in the background. Call it with the account.scanId a photo price returned when that result said comps were still loading (about 20 seconds later), or to re-read any saved scan.

Parameterscostscan_idrequired

list_on_ebay

Prepare an eBay listing

For a signed-in user: turns a photo scan from price_item (account.scanId) into an inventory item with a draft eBay listing on their Underpriced AI account (title, list price defaulting to the market price, condition, description) and returns the link where they review and publish it in the app, plus whether eBay is connected and the connect link if not (connecting brings them back to the same item). If the item already has an unpublished eBay draft, it returns that draft unchanged and never overwrites it (draftKept); changes are made in the app. It never publishes anything and only prepares eBay; publishing happens in the app after the user checks the listing, and until then the draft shows on the Sell tab under Not live yet.

Parameterspricetitlescan_idrequiredcondition

Version history

3
  1. v1.3.0LatestOct 10, 2026
  2. v1.1.1Sep 26, 2026
  3. v1.1.0Sep 16, 2026

Score

83% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.