ReturnCheck

Can this product actually be returned? The merchant's exact clause, its URL and the date.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
93%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~601Tokens (tool definitions)
~5.5 KBTypical response size
Minimal attention impact (0.47% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "returncheck": {
      "command": "npx",
      "args": [
        "returncheck-mcp"
      ]
    }
  }
}

Runnable packages

npmreturncheck-mcp0.1.1stdio

Remote endpoints

https://returncheck.m-angelmartinez-fer.workers.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (1)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡check_return(product_url, buyer_country, item_condition, reason, purchase_date, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "product_url": {
      "type": "string",
      "description": "The product page URL (http/https)."
    },
    "buyer_country": {
      "type": "string",
      "description": "ISO 3166-1 alpha-2, e.g. 'US'."
    },
    "item_condition": {
      "type": "string",
      "enum": [
        "unopened",
        "opened",
        "used",
        "defective"
      ]
    },
    "reason": {
      "type": "string",
      "enum": [
        "changed_mind",
        "defective",
        "wrong_size_or_model",
        "arrived_late",
        "other"
      ]
    },
    "purchase_date": {
      "type": "string",
      "description": "YYYY-MM-DD (optional)."
    },
    "delivery_date": {
      "type": "string",
      "description": "YYYY-MM-DD (optional; preferred for the deadline)."
    },
    "merchant": {
      "type": "string"
    },
    "seller_name": {
      "type": "string"
    },
    "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)."
    },
    "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_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."
    }
  },
  "required": [
    "product_url",
    "buyer_country"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded1 tools
verifiedversion not recorded1 tools
verifiedversion not recorded1 tools
verifiedversion not recorded1 tools
verifiedversion not recorded1 tools
verifiedversion not recorded1 tools