forsale.xyz offers
Make price offers on Shopify products; get counters, single-use codes and checkout links.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"offers": {
"url": "https://mcp.forsale.xyz/mcp"
}
}
}원격 엔드포인트
https://mcp.forsale.xyz/mcpstreamable-http할 수 있는 일
도구 목록
도구 (5)
🟢search_offerable_products(query, storeId, maxPriceCents, limit)
Find products whose sellers accept price offers through forsale.xyz. Returns list prices in cents.
입력 스키마
{
"type": "object",
"properties": {
"query": {
"description": "Words to match in the product title",
"type": "string",
"maxLength": 100
},
"storeId": {
"type": "string",
"maxLength": 64
},
"maxPriceCents": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000000
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}출력 스키마
{
"type": "object",
"properties": {
"products": {
"type": "array",
"items": {
"type": "object",
"properties": {
"storeId": {
"type": "string"
},
"storeName": {
"type": "string"
},
"productId": {
"type": "string"
},
"variantId": {
"type": "string"
},
"title": {
"type": "string"
},
"variantTitle": {
"type": "string"
},
"listPriceCents": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"currency": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"storeId",
"storeName",
"productId",
"variantId",
"title",
"variantTitle",
"listPriceCents",
"currency",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"products"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_offer_terms(variantId)
Public offer rules for one product: list price, rounds allowed, and how long offers and codes last.
입력 스키마
{
"type": "object",
"properties": {
"variantId": {
"type": "string",
"maxLength": 128
}
},
"required": [
"variantId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}출력 스키마
{
"type": "object",
"properties": {
"variantId": {
"type": "string"
},
"listPriceCents": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"currency": {
"type": "string"
},
"acceptsOffers": {
"type": "boolean"
},
"maxRounds": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"offerTtlMinutes": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"codeTtlMinutes": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"maxQuantity": {
"type": "number",
"const": 1
},
"howItWorks": {
"type": "string"
}
},
"required": [
"variantId",
"listPriceCents",
"currency",
"acceptsOffers",
"maxRounds",
"offerTtlMinutes",
"codeTtlMinutes",
"maxQuantity",
"howItWorks"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}⚪make_offer(variantId, amountCents)
Offer a price (in cents) for one unit of a product. The seller accepts, counters, or declines. An accepted offer returns a single-use discount code and a checkout link.
입력 스키마
{
"type": "object",
"properties": {
"variantId": {
"type": "string",
"maxLength": 128
},
"amountCents": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000000
}
},
"required": [
"variantId",
"amountCents"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}출력 스키마
{
"type": "object",
"properties": {
"offerId": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"countered",
"accepted",
"rejected",
"expired",
"withdrawn"
]
},
"round": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"roundsRemaining": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"yourLastOfferCents": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"counterCents": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"currency": {
"type": "string"
},
"expiresAt": {
"type": "string"
},
"message": {
"type": "string"
},
"acceptance": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"finalPriceCents": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"codeExpiresAt": {
"type": "string"
},
"checkoutUrl": {
"type": "string"
},
"shopPayUrl": {
"type": "string"
}
},
"required": [
"finalPriceCents",
"checkoutUrl",
"shopPayUrl"
],
"additionalProperties": false
}
},
"required": [
"offerId",
"status",
"round",
"roundsRemaining",
"currency",
"expiresAt",
"message"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}⚪respond_to_counter(offerId, action, amountCents)
Answer the seller's counter: accept it, counter with a higher offer (amountCents required), or withdraw.
입력 스키마
{
"type": "object",
"properties": {
"offerId": {
"type": "string",
"maxLength": 64
},
"action": {
"type": "string",
"enum": [
"accept",
"counter",
"withdraw"
]
},
"amountCents": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000000
}
},
"required": [
"offerId",
"action"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}출력 스키마
{
"type": "object",
"properties": {
"offerId": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"countered",
"accepted",
"rejected",
"expired",
"withdrawn"
]
},
"round": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"roundsRemaining": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"yourLastOfferCents": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"counterCents": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"currency": {
"type": "string"
},
"expiresAt": {
"type": "string"
},
"message": {
"type": "string"
},
"acceptance": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"finalPriceCents": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"codeExpiresAt": {
"type": "string"
},
"checkoutUrl": {
"type": "string"
},
"shopPayUrl": {
"type": "string"
}
},
"required": [
"finalPriceCents",
"checkoutUrl",
"shopPayUrl"
],
"additionalProperties": false
}
},
"required": [
"offerId",
"status",
"round",
"roundsRemaining",
"currency",
"expiresAt",
"message"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_offer(offerId)
Current state of an offer, including the code and checkout link once accepted.
입력 스키마
{
"type": "object",
"properties": {
"offerId": {
"type": "string",
"maxLength": 64
}
},
"required": [
"offerId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}출력 스키마
{
"type": "object",
"properties": {
"offerId": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"countered",
"accepted",
"rejected",
"expired",
"withdrawn"
]
},
"round": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"roundsRemaining": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"yourLastOfferCents": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"counterCents": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"currency": {
"type": "string"
},
"expiresAt": {
"type": "string"
},
"message": {
"type": "string"
},
"acceptance": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"finalPriceCents": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"codeExpiresAt": {
"type": "string"
},
"checkoutUrl": {
"type": "string"
},
"shopPayUrl": {
"type": "string"
}
},
"required": [
"finalPriceCents",
"checkoutUrl",
"shopPayUrl"
],
"additionalProperties": false
}
},
"required": [
"offerId",
"status",
"round",
"roundsRemaining",
"currency",
"expiresAt",
"message"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}커뮤니티
증거