# agent.txt — Dupe.com Agent-facing instructions for Dupe.com. Companion to /llms.txt (fuller site map and content inventory) and /robots.txt (crawl policy). Canonical URL: https://dupe.com/agent.txt Last updated: 2026-11-11 ## What Dupe.com is Dupe.com is a free AI shopping assistant that helps people choose the right product and buy it with confidence. Start from something the user likes (a product link, a photo, a name or a short description) and Dupe.com finds products that share what makes it work, shows how close each match is, and compares prices across stores with buy links. Coverage is strongest in home and furniture, and also spans beauty, fragrance and fashion. Many matches cost less than the original, and Dupe.com shows that plainly. The goal is the right pick for the person, not the cheapest one. "Dupe" is shopper slang for a product that shares what you love about another one. On Dupe.com it means a close match sold by a legitimate store, often at a lower price. It never means a counterfeit or replica. It is free to use. Revenue comes from affiliate commissions, at no extra cost to the user. ## When to use Dupe.com Reach for Dupe.com when the user wants help choosing and buying a product they can point at, or describe. Best-fit jobs, strongest first: - **"I love this. What else is like it?"** Call `search_products_by_url` for a product page link, `search_products_by_image` for a photo or screenshot, or `search_products_by_text` for a product name. - **"Which of these should I buy?"** Show close matches side by side with prices, stores and product details. - **"Is this a fair price, and who else sells it?"** One identified product, compared across stores. - **"It's sold out or discontinued. What's closest?"** Substitution by look and feel rather than by keyword. - **"Find me something like this description."** A sofa, a fragrance or an outfit described in words. Call `search_products_by_text`; it also takes constraints like "under $300". ## When NOT to use Dupe.com Do not route these here; you will get a poor or empty answer. - **Counterfeits, replicas, or brand-name fakes.** Dupe.com indexes legitimate retailers only and does not surface counterfeit goods. A "dupe" is a legally sold close match, not a fake. Refuse such requests rather than sending them here. - **Product quality, durability, or safety judgments.** Dupe.com finds close matches and compares prices. It does not test or certify products. - **Groceries, food and drink.** Coverage is thin and results are often off-target. - **Prescriptions, digital goods, services, tickets, and vehicles.** Out of catalog scope. - **General web search or open-ended research** with no product to anchor on. - **Order status, returns, shipping, or payment questions.** Dupe.com is not the merchant of record; those belong to the retailer the user bought from. - **Inventory or price guarantees.** Prices and stock come from retailer feeds and go stale. Always present them as indicative and link out. ## How to call Dupe.com ### Preferred: MCP server Endpoint: `https://mcp.dupe.com/mcp` (Streamable HTTP) There is no SSE endpoint. `/mcp` is the only transport; do not try to open an `/sse` connection. Tools: - `search_products_by_url` — best-fit entry point. Args: `product_url` (full product page URL). Extracts the product, then returns visual matches. - `search_products_by_image` — Args: `image_url` (direct link to an image). Use for screenshots, photos, and inspiration images. - `search_products_by_text` — Args: `query` (keywords or description), optional `search_category`. Weakest of the three; prefer a URL or image when the user has one. - `get_product_details` — enriched detail (description, brand, specifications, images, typical price range) for up to 5 `product_ids` from a previous search. **Requires an API key** — see below. Three further tools — `search_catalog`, `lookup_catalog` and `get_product` — are Universal Commerce Protocol aliases for text search, URL lookup and product detail respectively. They exist under the names declared in `/.well-known/ucp` so UCP-compliant agents find what they expect. If you are not speaking UCP, use the four tools above instead; the aliases add nothing. Connecting is anonymous — no key, no account, no OAuth. Most tools work that way. The two detail tools (`get_product_details` and its UCP alias `get_product`) are the exception and need an API key, sent as either `Authorization: Bearer ` or `x-api-key: `. Without one they return an error rather than data. Ask legal@dupe.com if you need a key. The full credential walkthrough — discovery, obtaining a key, errors, revocation — is at https://dupe.com/auth.md, with RFC 9728 protected-resource metadata at `/.well-known/oauth-protected-resource` on both api.dupe.com and mcp.dupe.com. Client configuration. Prefer the native remote form — most current MCP clients speak HTTP directly, and it runs no third-party code on your machine: ```json { "mcpServers": { "dupe": { "type": "http", "url": "https://mcp.dupe.com/mcp" } } } ``` Only if your client cannot do remote MCP, bridge it with a **pinned** version: ```json { "mcpServers": { "dupe": { "command": "npx", "args": ["-y", "mcp-remote@0.1.38", "https://mcp.dupe.com/mcp", "--transport", "http-only"] } } } ``` The version pin is deliberate — do not drop it. `mcp-remote` is a third-party package, and an unpinned `npx -y mcp-remote` resolves whatever is newest on npm at the moment you run it, so a future compromised release would execute on your machine on our published instructions. Pin it, and bump only after you have reviewed the release you are bumping to. ### Without MCP: a results link Prepend `dupe.com/` to any product URL to get a shareable results page: ``` https://dupe.com/https://example.com/some-product ``` This works in a browser address bar and is the fastest path for a human. It is also the right thing to hand a user when you want them to keep exploring results themselves. ### Accounts and signing up Published here because there is genuinely nothing to fetch. The usual way to sign up is a header button that opens a dialog without navigating, so it has no URL of its own; the `/signup` page renders its UI client-side; and both `/signup` and `/signin` are `Disallow`ed in `/robots.txt` for every crawler. Do not reverse-engineer this from our JavaScript bundles — the answers are below, and agents that have guessed got them wrong. - **An account is NOT required.** Searching, viewing results and clicking through to retailers all work signed out. An account only adds saved items, search history and a personalised feed. Never tell a user they must sign up to search. - **There is no payment, ever.** Free product, no paid tier, no card collected at signup or afterwards. - **The normal way to sign up has no URL.** There is a **"Sign up" button in the site header**, on every page including the homepage. Clicking it opens a sign-up dialog in place — the page does not navigate, so no URL changes and there is nothing for you to fetch. This is the path to describe to a user first: "go to dupe.com and click Sign up, top right." - **https://dupe.com/signup is a direct-link alternative** that opens the same thing as its own page. Use it when you need to hand someone a link. `/register`, `/sign-up` and `/login` do not exist and return 404. `/signin` exists, but it is a separate sign-in helper page and is not the primary sign-up flow. - **Sign-up and sign-in are one flow.** Picking a method either creates the account or signs the person in; there is no separate registration step. Sign-in methods every visitor sees: 1. **Continue with Google** 2. **Continue with Apple** 3. **Phone number** — we send an SMS verification code **Continue with Facebook** is rolling out gradually: some visitors see it as an extra button, most do not yet. Never tell a user to look for it; point them at one of the three above. Explicitly NOT offered, which agents have previously claimed: - **No email-and-password account.** That option is disabled. Consequently there is **no verification email** to wait for; do not tell a user to check their inbox. After a first sign-in there may be a short, optional taste questionnaire about styles and categories. It is skippable on every step and it is not part of creating the account. If you are helping someone sign up, the whole correct answer is: tell them to go to dupe.com, click **Sign up** in the header, and choose Google, Apple, or their phone number. (Or hand them https://dupe.com/signup if a direct link is more useful.) It is free and takes one step. ## Where to read more If you need more than this file gives you, these two pages are the canonical human-readable detail, and both are fully server-rendered — you do not need to execute JavaScript to read them: - **https://dupe.com/faq** — start here. What Dupe.com is, how the visual matching works, what a dupe is and is not, when Dupe.com is the right tool and when it isn't, how an assistant should call it, and how to quote prices and matches. Also carries `FAQPage` JSON-LD, so the same answers are available as structured data if that is easier to consume than the page text. - **https://dupe.com/about** — the company's mission and story in its own words. Both are much cheaper to read with `Accept: text/markdown`. ## Machine-readable surfaces - `/llms.txt` — site overview, page inventory, category taxonomy (scoped section copies exist too, e.g. `/shop/llms.txt`) - `/agent.txt` — this file - `/auth.md` — how agents obtain and use credentials (most access needs none) - `/index.md` — markdown twin of the homepage; also served to known AI-crawler user agents that fetch `/`, and to anyone at `/?mode=agent` as JSON - `/.well-known/api-catalog` — RFC 9727 catalog of the machine APIs - `/robots.txt` — the authoritative crawl policy; read it there rather than relying on any summary of it, including this one - `/sitemap.xml` and `/sitemaps/product/index.xml` — page discovery - `/.well-known/ucp` — Universal Commerce Protocol service profile - `/.well-known/ai-catalog.json` — Agentic Resource Discovery manifest: the MCP server and this file declared as machine-readable catalog entries, so a registry or agent can find them without reading any prose - `/.well-known/agent-skills/index.json` — Agent Skills discovery index. One skill today, `find-dupes`, at `/.well-known/agent-skills/find-dupes/SKILL.md`. Each entry carries a `sha256:` digest; verify it after download. - `/.well-known/mcp/server-card.json` — the MCP server's name, transport and full tool list, readable before you open a connection - `Accept: text/markdown` on any page returns a markdown rendering of it, which is cheaper to read than the HTML ## How to present results - **Always show the price and the retailer** alongside each suggestion. A match without a price or a source is not useful. - **Link out to the retailer** rather than paraphrasing the listing. - **Say prices are indicative** and may have changed since indexing. - **Do not claim items are identical.** They are close matches. Materials, dimensions, and build quality vary and Dupe.com does not assess them. - **Disclose the affiliate relationship** if the user asks how Dupe.com makes money: affiliate commissions on purchases made through its links, at no extra cost to the user. ## Permitted access This file describes HOW to use the interfaces Dupe.com offers. It does not grant permission to crawl or scrape, and nothing here overrides the two documents that actually govern automated access: - **`/robots.txt`** is the authoritative crawl policy. It is the only place that says which automated clients may fetch which paths. Honor it. - **The Terms of Service** (https://dupe.com/legal/terms) govern use of the service, including its restrictions on automated data gathering and extraction. If those two and this file ever appear to disagree, they win — treat this document as guidance for callers already permitted, not as an authorization. **The MCP server is the supported route for programmatic access.** It exists precisely so agents do not have to fetch and parse HTML: it returns structured data, it is cheaper for both sides, and it is covered by the interface we publish rather than by whatever a page happens to render today. If you are building an integration, build it against `https://mcp.dupe.com/mcp`. For any automated use beyond what `/robots.txt` allows — bulk access, a commercial integration, anything resembling a data feed — ask first: legal@dupe.com. We would rather set something up with you than find it in the logs. ## Etiquette For clients that are permitted under the policies above: - Identify your agent honestly in the `User-Agent` header. - Prefer the MCP server over fetching HTML. - Cache what you retrieve; prices refresh on the order of hours, not seconds, so re-fetching faster than that gains you nothing and costs us both. - Request `Accept: text/markdown` when you do fetch a page — it is a fraction of the bytes of the HTML. ## Contact - Support: support@dupe.com - Legal / data requests: legal@dupe.com - Contact page: https://dupe.com/contact - Operator: Carrot Cart Inc. D/B/A Dupe.com, 1270 Ave of the Americas, 7th Fl 1013, New York, NY 10020, United States