Deals with their evidence: price, conditions, eligibility, freshness and whether it was checked.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Evaluate whether a shopper can get an offer’s price, given what you know about them: memberships, location, app or store purchase, first order, coupon clipping, Subscribe & Save and order total. Anything not supplied stays unknown and makes the verdict "uncertain" rather than "eligible".
Offer id from search_deals.
ISO 3166-1 alpha-2 country of delivery.
Whether the shopper will buy in a store.
Whether the shopper will buy in the retailer’s app.
Whether the shopper will clip an on-page coupon.
Whether this would be the shopper’s first order at the retailer.
Programmes the shopper holds: amazon_prime, walmart_plus, target_circle_360, target_circle_card, costco_member, sams_club, kohls_rewards, student, store_card. Omit if unknown.
Expected order total, for minimum-spend conditions.
Whether the shopper accepts Subscribe & Save.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http deal-evidence https://postthisdeal.com/wp-json/ptd-evidence/v1/mcp
Evaluate whether a shopper can get an offer’s price, given what you know about them: memberships, location, app or store purchase, first order, coupon clipping, Subscribe & Save and order total. Anything not supplied stays unknown and makes the verdict "uncertain" rather than "eligible".
| Argument | Type | Description |
|---|---|---|
| country | string | ISO 3166-1 alpha-2 country of delivery. |
| in_store | boolean | Whether the shopper will buy in a store. |
| offer_id* | integer | Offer id from search_deals. |
| uses_app | boolean | Whether the shopper will buy in the retailer’s app. |
| will_clip | boolean | Whether the shopper will clip an on-page coupon. |
| first_order | boolean | Whether this would be the shopper’s first order at the retailer. |
| memberships | array | Programmes the shopper holds: amazon_prime, walmart_plus, target_circle_360, target_circle_card, costco_member, sams_club, kohls_rewards, student, store_card. Omit if unknown. |
| order_total | number | Expected order total, for minimum-spend conditions. |
| will_subscribe | boolean | Whether the shopper accepts Subscribe & Save. |
{
"type": "object",
"required": [
"offer_id"
],
"properties": {
"country": {
"type": "string",
"description": "ISO 3166-1 alpha-2 country of delivery."
},
"in_store": {
"type": "boolean",
"description": "Whether the shopper will buy in a store."
},
"offer_id": {
"type": "integer",
"minimum": 1,
"description": "Offer id from search_deals."
},
"uses_app": {
"type": "boolean",
"description": "Whether the shopper will buy in the retailer’s app."
},
"will_clip": {
"type": "boolean",
"description": "Whether the shopper will clip an on-page coupon."
},
"first_order": {
"type": "boolean",
"description": "Whether this would be the shopper’s first order at the retailer."
},
"memberships": {
"type": "array",
"items": {
"type": "string"
},
"description": "Programmes the shopper holds: amazon_prime, walmart_plus, target_circle_360, target_circle_card, costco_member, sams_club, kohls_rewards, student, store_card. Omit if unknown."
},
"order_total": {
"type": "number",
"description": "Expected order total, for minimum-spend conditions."
},
"will_subscribe": {
"type": "boolean",
"description": "Whether the shopper accepts Subscribe & Save."
}
},
"additionalProperties": false
}Offers updated, verified or withdrawn since a cursor (or a time). Each change has a category: initial (a first record — not a check), check (a completed check confirmed the price), price_check (a completed check found a different price), availability, freshness, publication (withdrawn, restored, expired), listing (an edit to the listing — stated, not checked). Pass next_cursor back as since to continue.
| Argument | Type | Description |
|---|---|---|
| kinds | array | |
| limit | integer | |
| since | string | Cursor from a previous call. |
| offer_id | integer | Offer id from search_deals. |
| categories | array | |
| since_time | string | When you have no cursor. |
{
"type": "object",
"properties": {
"kinds": {
"type": "array",
"items": {
"enum": [
"created",
"price_dropped",
"price_rose",
"reference_changed",
"coupon_added",
"coupon_removed",
"coupon_changed",
"membership_changed",
"channel_changed",
"conditions_changed",
"shipping_changed",
"seller_changed",
"availability_changed",
"verified",
"recheck_due",
"became_overdue",
"withdrawn",
"expired",
"unavailable",
"price_mismatch",
"unpriced",
"restored",
"end_changed"
],
"type": "string"
}
},
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1
},
"since": {
"type": "string",
"description": "Cursor from a previous call."
},
"offer_id": {
"type": "integer",
"minimum": 1,
"description": "Offer id from search_deals."
},
"categories": {
"type": "array",
"items": {
"enum": [
"initial",
"check",
"price_check",
"availability",
"freshness",
"publication",
"listing"
],
"type": "string"
}
},
"since_time": {
"type": "string",
"format": "date-time",
"description": "When you have no cursor."
}
},
"additionalProperties": false
}The full evidence record for one offer: exact product identity, price and its conditions, the verification ledger, freshness, price context and recent changes.
| Argument | Type | Description |
|---|---|---|
| offer_id* | integer | Offer id from search_deals. |
{
"type": "object",
"required": [
"offer_id"
],
"properties": {
"offer_id": {
"type": "integer",
"minimum": 1,
"description": "Offer id from search_deals."
}
},
"additionalProperties": false
}How the offer’s price compares with independent checks of the same exact product, and how strong that comparison is (coverage: strong, limited or none). Repeat the coverage alongside any conclusion.
| Argument | Type | Description |
|---|---|---|
| days | integer | Window, default 30. |
| offer_id* | integer | Offer id from search_deals. |
{
"type": "object",
"required": [
"offer_id"
],
"properties": {
"days": {
"type": "integer",
"maximum": 365,
"minimum": 1,
"description": "Window, default 30."
},
"offer_id": {
"type": "integer",
"minimum": 1,
"description": "Offer id from search_deals."
}
},
"additionalProperties": false
}Find current offers PostThisDeal tracks that match a need and budget. Results are the best of the offers PostThisDeal tracks, not every store. Each carries its freshness (confirmed, due, overdue or not independently verified), a status block with the separate facts (verification: independent|merchant|none; freshness; availability; price: matched|changed|variable|unknown; publication), conditions and unknowns. Withdrawn offers are never returned. Give memberships to leave out prices the shopper cannot get.
| Argument | Type | Description |
|---|---|---|
| sort | string | |
| limit | integer | |
| query | string | What the shopper wants, in words that would appear in a product title. |
| country | string | ISO 3166-1 alpha-2 country of delivery. |
| category | string | Category slug. |
| currency | string | ISO 4217, default USD. |
| retailer | string | Retailer slug, e.g. walmart, target, amazon. |
| max_price | number | Budget for one item. |
| memberships | array | Programmes the shopper holds: amazon_prime, walmart_plus, target_circle_360, target_circle_card, costco_member, sams_club, kohls_rewards, student, store_card. Omit if unknown. |
| verified_only | boolean | Only offers whose price was confirmed at the retailer. |
{
"type": "object",
"properties": {
"sort": {
"enum": [
"price",
"verified",
"changed",
"ending"
],
"type": "string"
},
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1
},
"query": {
"type": "string",
"description": "What the shopper wants, in words that would appear in a product title."
},
"country": {
"type": "string",
"description": "ISO 3166-1 alpha-2 country of delivery."
},
"category": {
"type": "string",
"description": "Category slug."
},
"currency": {
"type": "string",
"description": "ISO 4217, default USD."
},
"retailer": {
"type": "string",
"description": "Retailer slug, e.g. walmart, target, amazon."
},
"max_price": {
"type": "number",
"description": "Budget for one item."
},
"memberships": {
"type": "array",
"items": {
"type": "string"
},
"description": "Programmes the shopper holds: amazon_prime, walmart_plus, target_circle_360, target_circle_card, costco_member, sams_club, kohls_rewards, student, store_card. Omit if unknown."
},
"verified_only": {
"type": "boolean",
"description": "Only offers whose price was confirmed at the retailer."
}
},
"additionalProperties": false
}Request a fresh check of the offer at the retailer, and report exactly what could and could not be confirmed. request_status says whether a check was made (completed, attempted_no_result, cached, in_progress, refused); verification_established is true only when a completed check read a price. A failed or unreadable check verifies nothing. A page check confirms a listed price and availability at most — never that a coupon code works. Needs a PostThisDeal agent key; repeated requests for the same offer within minutes return the last result.
| Argument | Type | Description |
|---|---|---|
| offer_id* | integer | Offer id from search_deals. |
{
"type": "object",
"required": [
"offer_id"
],
"properties": {
"offer_id": {
"type": "integer",
"minimum": 1,
"description": "Offer id from search_deals."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 9, 2026.