Koskamo

ReturnCheck MCP

ReturnCheck verifies which return policy applies to a purchase by returning a structured verdict (YES, YES_WITH_CONDITIONS, NO, or UNKNOWN) with the exact policy clause quoted verbatim, source URL, and verification date. It is designed for AI shopping agents to audit return eligibility safely.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

ReturnCheck MCP logo, by ReturnCheckCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by ReturnCheck
You need:Sign up for an API key (free credit): POST https://returncheck.m-angelmartinez-fer.workers.dev/v1/signupFree trial: a few calls per day with no API key
MCP endpoint (Streamable HTTP)
https://returncheck.m-angelmartinez-fer.workers.dev/mcp
Vendor documentation

What its tools do

1 tool, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

Not annotated (1)

1 of 1 have a description · 0 of 1 declare behavior hints · 0 of 1 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Verify return eligibility for a specific product URL
  • Retrieve exact policy clauses with source URLs
  • Determine if a purchase is reversible before checkout
  • Get auditable evidence for autonomous buyer decisions

Source and maintenance

Community listingRegistry 1.1.0
Maintenance checked

Protocol and capabilities

Server
ReturnCheck 1.0.0
MCP protocol negotiated in check
2025-11-25
Tools
1 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Call check_return with a product_url and buyer_country. Answers are verified against the merchant's published policy; UNKNOWN is returned instead of guessing.

Tools

1 advertised

check_return
Advertised by the server during the last successful anonymous check.

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.

check_return input schema
{
  "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."
    }
  }
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
478 ms
95th percentile latency
478 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 478 ms · metadata changed · 1 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http returncheck-mcp-workers https://returncheck.m-angelmartinez-fer.workers.dev/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add returncheck-mcp-workers --url https://returncheck.m-angelmartinez-fer.workers.dev/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable returncheck-mcp-workers in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "returncheck-mcp-workers": {
      "url": "https://returncheck.m-angelmartinez-fer.workers.dev/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "returncheck-mcp-workers": {
      "type": "streamableHttp",
      "url": "https://returncheck.m-angelmartinez-fer.workers.dev/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start returncheck-mcp-workers and inspect its tools.
VS Code configuration
{
  "servers": {
    "returncheck-mcp-workers": {
      "type": "http",
      "url": "https://returncheck.m-angelmartinez-fer.workers.dev/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http returncheck-mcp-workers https://returncheck.m-angelmartinez-fer.workers.dev/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://returncheck.m-angelmartinez-fer.workers.dev/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "returncheck-mcp-workers": {
      "serverUrl": "https://returncheck.m-angelmartinez-fer.workers.dev/mcp"
    }
  }
}

Let your agent find its tools

Find servers like ReturnCheck MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.