Can this product actually be returned? The merchant's exact clause, its URL and the date.
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.
ReturnCheck verifies which return policy actually applies to this purchase. BEST RESULTS: send the product page you already have as page_text (or page_html) along with product_url — your browser renders JavaScript and is not blocked by retailers, so this works on any store and is faster. Without it we fetch the page ourselves and reach the policy for about 1 in 3 US retailers (17 of 50 measured 2026-08-28; mostly Shopify and direct-to-consumer brands — large retailers and marketplaces block server-side reads). You get a verified verdict — YES / YES_WITH_CONDITIONS / NO / UNKNOWN — with the exact policy clause quoted verbatim, source URL, return window/deadline, fees and a confidence score. Never invents: returns UNKNOWN instead of guessing, and UNKNOWN is free.
The product page URL (http/https).
ISO 3166-1 alpha-2, e.g. 'US'.
RECOMMENDED (alternative to page_text). Raw HTML of the same page. Slightly better than page_text: we can also read structured data (JSON-LD) from it.
RECOMMENDED. Plain text of the product or returns page you already have open. We verify against this instead of fetching: works on any store, no blocking, no JavaScript problem, and faster. Still never invents: no verifiable clause -> UNKNOWN (free).
YYYY-MM-DD (optional; preferred for the deadline).
YYYY-MM-DD (optional).
URL of the supplied page_text/page_html when different from product_url. Caller-declared provenance; not independently fetched.
OPTIONAL. x402 payment authorization, base64 — the same envelope the PAYMENT-SIGNATURE header carries over HTTP. Use it to pay per call with no account and no signup. How: call once without it; if the free trial is exhausted you get the payment terms in structuredContent (x402Version, accepts[]); sign that authorization and call again with payment_signature set. Terms are also published at /.well-known/x402. UNKNOWN verdicts are never settled: the authorization simply expires unused.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
ReturnCheck verifies which return policy actually applies to this purchase. BEST RESULTS: send the product page you already have as page_text (or page_html) along with product_url — your browser renders JavaScript and is not blocked by retailers, so this works on any store and is faster. Without it we fetch the page ourselves and reach the policy for about 1 in 3 US retailers (17 of 50 measured 2026-08-28; mostly Shopify and direct-to-consumer brands — large retailers and marketplaces block server-side reads). You get a verified verdict — YES / YES_WITH_CONDITIONS / NO / UNKNOWN — with the exact policy clause quoted verbatim, source URL, return window/deadline, fees and a confidence score. Never invents: returns UNKNOWN instead of guessing, and UNKNOWN is free.
| Argument | Type | Description |
|---|---|---|
| reason | string | |
| merchant | string | |
| page_html | string | RECOMMENDED (alternative to page_text). Raw HTML of the same page. Slightly better than page_text: we can also read structured data (JSON-LD) from it. |
| page_text | string | RECOMMENDED. Plain text of the product or returns page you already have open. We verify against this instead of fetching: works on any store, no blocking, no JavaScript problem, and faster. Still never invents: no verifiable clause -> UNKNOWN (free). |
| product_url* | string | The product page URL (http/https). |
| seller_name | string | |
| buyer_country* | string | ISO 3166-1 alpha-2, e.g. 'US'. |
| delivery_date | string | YYYY-MM-DD (optional; preferred for the deadline). |
| purchase_date | string | YYYY-MM-DD (optional). |
| item_condition | string | |
| page_source_url | string | URL of the supplied page_text/page_html when different from product_url. Caller-declared provenance; not independently fetched. |
| payment_signature | string | OPTIONAL. x402 payment authorization, base64 — the same envelope the PAYMENT-SIGNATURE header carries over HTTP. Use it to pay per call with no account and no signup. How: call once without it; if the free trial is exhausted you get the payment terms in structuredContent (x402Version, accepts[]); sign that authorization and call again with payment_signature set. Terms are also published at /.well-known/x402. UNKNOWN verdicts are never settled: the authorization simply expires unused. |
{
"type": "object",
"required": [
"product_url",
"buyer_country"
],
"properties": {
"reason": {
"enum": [
"changed_mind",
"defective",
"wrong_size_or_model",
"arrived_late",
"other"
],
"type": "string"
},
"merchant": {
"type": "string"
},
"page_html": {
"type": "string",
"description": "RECOMMENDED (alternative to page_text). Raw HTML of the same page. Slightly better than page_text: we can also read structured data (JSON-LD) from it."
},
"page_text": {
"type": "string",
"description": "RECOMMENDED. Plain text of the product or returns page you already have open. We verify against this instead of fetching: works on any store, no blocking, no JavaScript problem, and faster. Still never invents: no verifiable clause -> UNKNOWN (free)."
},
"product_url": {
"type": "string",
"description": "The product page URL (http/https)."
},
"seller_name": {
"type": "string"
},
"buyer_country": {
"type": "string",
"description": "ISO 3166-1 alpha-2, e.g. 'US'."
},
"delivery_date": {
"type": "string",
"description": "YYYY-MM-DD (optional; preferred for the deadline)."
},
"purchase_date": {
"type": "string",
"description": "YYYY-MM-DD (optional)."
},
"item_condition": {
"enum": [
"unopened",
"opened",
"used",
"defective"
],
"type": "string"
},
"page_source_url": {
"type": "string",
"description": "URL of the supplied page_text/page_html when different from product_url. Caller-declared provenance; not independently fetched."
},
"payment_signature": {
"type": "string",
"description": "OPTIONAL. x402 payment authorization, base64 — the same envelope the PAYMENT-SIGNATURE header carries over HTTP. Use it to pay per call with no account and no signup. How: call once without it; if the free trial is exhausted you get the payment terms in structuredContent (x402Version, accepts[]); sign that authorization and call again with payment_signature set. Terms are also published at /.well-known/x402. UNKNOWN verdicts are never settled: the authorization simply expires unused."
}
}
}