Underpriced AI
Real eBay sold prices by photo or description. Signed-in photo scans: your currency and eBay drafts.
사용해야 할까요
품질 및 안전성
발견 사항 (3)
- HIGH
- LOWget_scan_result에서
- LOWlist_on_ebay에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"underpriced-ai": {
"url": "https://underpricedai.com/api/mcp"
}
}
}원격 엔드포인트
https://underpricedai.com/api/mcpstreamable-http할 수 있는 일
도구 목록
도구 (6)
🟢price_item(description, image_url, condition, cost)
What a secondhand item sells for on eBay US: a calibrated estimate with a range, the recent real sold comps behind it, three list prices (fast, market, patient) with the 14-day sell chance, the net after eBay fees, and a worth-it verdict when you pass what the user would pay. Give image_url (a public https link to a photo) whenever one exists; a description alone works but reads less.
입력 스키마
{
"type": "object",
"properties": {
"description": {
"description": "What the item is: brand, model or pattern, size, any marks, completeness.",
"type": "string",
"minLength": 3,
"maxLength": 1200
},
"image_url": {
"description": "Public https URL of a photo of the item. Preferred over description alone.",
"type": "string",
"maxLength": 2000,
"format": "uri"
},
"condition": {
"description": "Condition as the user states it.",
"type": "string",
"enum": [
"New",
"Like New",
"Good",
"Fair",
"Poor"
]
},
"cost": {
"description": "What the user paid or would pay for it, for a worth-it verdict: in USD, or in the seller's own currency for a photo scan on a signed-in account.",
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_sold_comps(query)
The most recent real eBay US sales 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.
입력 스키마
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 120,
"description": "3 to 6 specific words, brand and model first, like an eBay search."
}
},
"required": [
"query"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢worth_it(expected_sale_price, cost)
Net after eBay fees and a verdict (worth it / thin / pass) for an expected sale price and what the user would pay. Pure arithmetic; use price_item first when the sale price is unknown.
입력 스키마
{
"type": "object",
"properties": {
"expected_sale_price": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000000,
"description": "Expected eBay sale price in USD."
},
"cost": {
"type": "number",
"minimum": 0,
"maximum": 1000000,
"description": "What the user would pay for the item in USD."
}
},
"required": [
"expected_sale_price",
"cost"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢buy_credits(pack)
Ways to pay for Underpriced AI scans. Without a choice it lists the credit packs (credits never expire), pay as you go ($0.25 per photo scan on a monthly bill, no cap), and for a signed-in user their balance. With a pack it returns a Stripe Checkout link for that user; with PAY_AS_YOU_GO it returns the link that puts a card on file so scans just run from then on. Anonymous callers get the pricing page link.
입력 스키마
{
"type": "object",
"properties": {
"pack": {
"description": "A pack to buy, or PAY_AS_YOU_GO. Leave empty to see the options and the balance first.",
"type": "string",
"enum": [
"PACK_5",
"PACK_15",
"PACK_30",
"PAY_AS_YOU_GO"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_scan_result(scan_id, cost)
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.
입력 스키마
{
"type": "object",
"properties": {
"scan_id": {
"type": "string",
"minLength": 8,
"maxLength": 200,
"description": "The account.scanId from a signed-in price_item, or the saved-scan link."
},
"cost": {
"description": "What the user would pay, in the scan's currency (price.currency), for a worth-it verdict.",
"type": "number",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"scan_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡list_on_ebay(scan_id, price, condition, title)
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. It never publishes anything; publishing happens in the app after the user checks the listing.
입력 스키마
{
"type": "object",
"properties": {
"scan_id": {
"type": "string",
"minLength": 8,
"maxLength": 200,
"description": "The account.scanId that price_item returned for a photo scan on this account (the saved-scan link works too)."
},
"price": {
"description": "List price in the scan's currency (price.currency from price_item). Leave empty for the scan's market list price.",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100000
},
"condition": {
"description": "Overrides the condition read from the photo.",
"type": "string",
"enum": [
"New",
"Like New",
"Good",
"Fair",
"Poor"
]
},
"title": {
"description": "Overrides the generated listing title (80 characters, eBay's limit).",
"type": "string",
"minLength": 3,
"maxLength": 80
}
},
"required": [
"scan_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}커뮤니티
증거