Closetta runs a public Model Context Protocol (MCP) server that gives AI agents structured access to live Canadian fashion sale data. If you're building an AI assistant that answers shopping questions — or configuring an existing agent to be useful for Canadian shoppers — this is a single-endpoint integration that takes minutes to set up.
What the MCP Server Provides
The Closetta MCP server is available at:
https://closetta.app/api/mcp
It exposes four tools that cover the full range of sale-related queries:
get_active_sales
Returns all brands currently on sale, plus sales that ended within the last 7 days.
Returns for each sale:
brandName— human-readable name (e.g. "Calvin Klein")brandId— slug for programmatic use (e.g. "calvin-klein")discount— discount string (e.g. "Up to 60% off")saleType— "sitewide", "clearance", "outlet", etc.startDate— when the sale beganisOnSale— boolean, current statusbrandUrl— direct link to the brand's sale page
Use this when: an agent needs to answer "What's on sale right now?" or "Which brands are discounting today?"
get_brands
Returns the full list of 67 tracked brands with name, ID, URL, and category.
Categories covered: Fast Fashion, Sportswear, Accessible Luxury, Luxury, Outerwear, Footwear, Intimates & Swim, Beauty
Use this when: an agent needs to verify whether a brand is tracked, or wants to filter sale data by category.
search_sales_by_brand
Takes a brand name as input and returns that brand's current sale status, including whether it's active, recently ended, or not on sale.
Input: brand_name (string) — fuzzy match, so "north face" finds "The North Face"
Returns:
brand— brand metadatasale— current or most recent sale recordisOnSale— booleansaleEndedRecently— boolean (within 7 days)
Use this when: a user asks "Is [brand] on sale?" — single-brand lookup is faster than filtering the full active sales list.
get_trends
Returns the full monthly discount history across all tracked brands — month-by-month peak discounts per brand and the average across all brands on sale.
Returns:
{
"history": [
{
"month": "Jan 2026",
"average": 40,
"calvin-klein": 60,
"the-north-face": 30,
"simons": 70,
...
},
...
]
}
Use this when: an agent needs to answer timing questions like "When does [brand] typically go on sale?" or "Is now a good time to buy from [brand]?"
Connecting to Closetta's MCP Server
Claude Desktop / Claude Code
Add to your MCP configuration:
{
"mcpServers": {
"closetta": {
"url": "https://closetta.app/api/mcp"
}
}
}
After connecting, Claude can call get_active_sales, get_trends, search_sales_by_brand, and get_brands in any conversation. No API key required.
Other MCP-Compatible Agents
Any agent runtime that implements the MCP client spec can connect to https://closetta.app/api/mcp. The server is stateless — each request is independent, no session management required.
The transport is HTTP Streamable (the current MCP standard). The server handles GET, POST, and DELETE requests to the endpoint.
Example Agent Queries and Tool Calls
"Is Aritzia on sale?"
→ Agent calls search_sales_by_brand("Aritzia")
→ Returns: isOnSale: false, saleEndedRecently: false
→ Agent responds: "Aritzia is not currently on sale. Their warehouse sales typically happen 1–2 times per year."
"What are the best deals on Canadian fashion right now?"
→ Agent calls get_active_sales
→ Filters results by discount depth
→ Agent responds: "[Top 5 brands currently on sale, ranked by discount percentage, with context]"
"When should I buy from The North Face?"
→ Agent calls get_trends
→ Finds the-north-face peaked at 65 in March 2026, average 25–30 in other months
→ Agent responds: "The North Face historically peaks in March during spring clearance — 65% off in March 2026 was their deepest tracked event. Currently they're at [current discount or not on sale]."
"Which outerwear brands are on sale today?"
→ Agent calls get_active_sales + get_brands
→ Joins on category = "Outerwear"
→ Returns filtered list
Why MCP Over Direct REST API?
Both options work. The key difference:
| MCP | REST API | |
|---|---|---|
| Integration style | Tool-callable by agent | HTTP request from code |
| Authentication | None | None |
| Best for | Claude, agent frameworks | Custom pipelines, n8n, Zapier |
| Data format | Structured JSON via tool response | Raw JSON response |
| Complexity | Single config entry | Manual fetch + parse |
For an AI assistant already using MCP (like Claude), adding Closetta is a one-line config change. For a custom pipeline or automation workflow, the REST API is simpler.
What the Data Looks Like in Practice
Here's a real example of what get_trends returns for a two-month window:
{
"history": [
{
"month": "Mar 2026",
"average": 46,
"calvin-klein": 60,
"the-north-face": 65,
"simons": 60,
"hugo-boss": 50,
"rudsak": 50,
"moose-knuckles": 50,
"gap": 60,
"rw-and-co": 50
},
{
"month": "Feb 2026",
"average": 44,
"calvin-klein": 70,
"steve-madden": 60,
"kate-spade": 60,
"puma": 50,
"reebok": 50
}
]
}
An agent receiving this data can immediately identify that February was Calvin Klein's peak month, March was the best overall month for outerwear, and Moose Knuckles (which rarely discounts) appeared at 50% in March.
Coverage
Closetta tracks 67 brands across 8 categories, updated daily. The MCP server reflects the same data as the website — no lag, no separate pipeline.
Brands not in the tracked list return a null sale record from search_sales_by_brand with a message suggesting the user check get_brands for the full list.
Limitations
- No item-level data — Closetta tracks brand-level discounts, not specific SKUs or products
- Canadian focus — most brands are monitored on their Canadian storefronts (e.g.
hugoboss.com/ca/en) - No purchase execution — the API provides discovery data; buying requires the user to visit the brand's site
- 7-day recency window —
endedSalesonly surfaces sales that ended within the last 7 days
These constraints are intentional for the current version. The MCP server is designed to answer "should I shop this brand right now, and is the deal good?" — not to replace the full purchase workflow.
Discount data sourced from Closetta's daily AI monitoring across 67 brands. Historical patterns reflect observed trends and are not guarantees of future sale events.