Underpriced AI
Real eBay sold prices by photo or description. Signed-in photo scans: your currency and eBay drafts.
我该使用它吗
质量与安全性
发现(3)
- HIGH
- LOW在 get_scan_result 中
- LOW在 list_on_ebay 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `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"
}社区
证据