Padel USA shopping assistant: find the right padel racket and gear, build a cart, check out.
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.
Adds items to the shopper's Padel USA cart (creates the cart on first use). Pass the cart_id from the previous cart result to keep adding to the same cart. Give the shopper's 5-digit US ZIP to show shipping options. If the result has "essentials", mention them once in one sentence with their reason (things the player genuinely needs with this cart, never an upsell push) and add them only if the shopper says yes; never repeat the suggestion. Show the cart, then offer checkout_url: the shopper pays on Padel USA's secure Shopify checkout (Shop Pay, cards, PayPal) and enters the delivery address there. Never ask for payment details in chat.
US ZIP for shipping options (Padel USA ships within the US only).
What you learned about the player, so the cart can suggest only what they genuinely need. Pass it on every cart call.
From a previous cart result; leave out to start a new cart.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http shopping-assistant https://mcp.padelusa.com/mcp
Adds items to the shopper's Padel USA cart (creates the cart on first use). Pass the cart_id from the previous cart result to keep adding to the same cart. Give the shopper's 5-digit US ZIP to show shipping options. If the result has "essentials", mention them once in one sentence with their reason (things the player genuinely needs with this cart, never an upsell push) and add them only if the shopper says yes; never repeat the suggestion. Show the cart, then offer checkout_url: the shopper pays on Padel USA's secure Shopify checkout (Shop Pay, cards, PayPal) and enters the delivery address there. Never ask for payment details in chat.
| Argument | Type | Description |
|---|---|---|
| zip | string | US ZIP for shipping options (Padel USA ships within the US only). |
| items* | array | |
| needs | object | What you learned about the player, so the cart can suggest only what they genuinely need. Pass it on every cart call. |
| cart_id | string | From a previous cart result; leave out to start a new cart. |
{
"type": "object",
"required": [
"items"
],
"properties": {
"zip": {
"type": "string",
"maxLength": 5,
"description": "US ZIP for shipping options (Padel USA ships within the US only)."
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"variant_id"
],
"properties": {
"quantity": {
"type": "integer",
"maximum": 10,
"minimum": 1
},
"variant_id": {
"type": "string",
"maxLength": 20
}
},
"additionalProperties": false
},
"maxItems": 10,
"minItems": 1
},
"needs": {
"type": "object",
"properties": {
"arm_pain": {
"type": "boolean",
"description": "They mentioned arm, elbow or wrist pain (tennis elbow)."
},
"bag_style": {
"enum": [
"backpack",
"racket_bag"
],
"type": "string",
"description": "Backpack for light carry or commuting; classic racket bag for several rackets, shoes and clothes."
},
"carries_gear": {
"type": "boolean",
"description": "They play after work, bring a change of clothes and water, or want to organise their gear."
}
},
"description": "What you learned about the player, so the cart can suggest only what they genuinely need. Pass it on every cart call.",
"additionalProperties": false
},
"cart_id": {
"type": "string",
"maxLength": 160,
"description": "From a previous cart result; leave out to start a new cart."
}
},
"additionalProperties": false
}Completes a racket with what the player needs: balls, an overgrip, a bag, and shoes when a US shoe size is given. One in-stock pick per slot with a short reason and its variant_id, ready for add_to_cart.
| Argument | Type | Description |
|---|---|---|
| level | string | |
| gender | string | |
| shoe_size | string | US shoe size; leave out to skip shoes. |
| budget_usd | number | Rough budget for the kit (excluding the racket). |
| racket_brand | string | Brand of the chosen racket, to match the bag and grip. |
{
"type": "object",
"required": [],
"properties": {
"level": {
"enum": [
"beginner",
"intermediate",
"advanced"
],
"type": "string"
},
"gender": {
"enum": [
"men",
"women"
],
"type": "string"
},
"shoe_size": {
"type": "string",
"maxLength": 5,
"description": "US shoe size; leave out to skip shoes."
},
"budget_usd": {
"type": "number",
"maximum": 3000,
"minimum": 20,
"description": "Rough budget for the kit (excluding the racket)."
},
"racket_brand": {
"type": "string",
"maxLength": 40,
"description": "Brand of the chosen racket, to match the bag and grip."
}
},
"additionalProperties": false
}Recommends the 3 best-fitting padel rackets for a player from the Padel USA store (in-stock rackets only; Padel USA ships within the United States). Uses the same matching engine as the Racket Finder on padelusa.com, ranked purely on fit to the player. Answer the Finder's questions yourself from what the shopper already said, instead of interviewing them: e.g. "I play 3 times a week and love to smash" = level intermediate, style aggressive; "my elbow hurts" = injury sometimes; "I'm new" = beginner; "under $200" = max_price_usd 200. Call it as soon as you can infer the level; ask at most one short question only if you cannot guess it. Leave out what you cannot infer (never make up arm pain, age or budget). The result includes accessories the player needs with the racket (an overgrip always, an arm sleeve if they have arm pain); offer them in one sentence. Show each pick with its name, price, the reasons, and its product link. To buy, call add_to_cart with the pick's variant_id, then build_kit to complete the kit.
| Argument | Type | Description |
|---|---|---|
| age | string | Your age range? "18-34" = 18–34; "35-49" = 35–49; "50+" = 50+. |
| feel | string | What should impact feel like? "soft" = Soft (Plush and forgiving — max comfort); "medium" = Balanced (Not too soft, not too firm); "firm" = Firm (Solid and direct — pure feedback); "notsure" = Not sure yet (Pick for me). |
| level* | string | What’s your level on court? "beginner" = Just starting out (New to padel, or play casually); "intermediate" = Improving fast (Play regularly, building consistency); "advanced" = Competitive (Tournaments, leagues, serious matches). |
| style |
After a purchase: where to track an order, start a return or exchange, file a warranty claim, report a lost or damaged parcel, or contact the team. Returns the right Padel USA page. Never ask for order numbers or email addresses in chat; the page verifies the shopper.
| Argument | Type | Description |
|---|---|---|
| topic* | string |
{
"type": "object",
"required": [
"topic"
],
"properties": {
"topic": {
"enum": [
"track",
"returns",
"warranty",
"shipping_problem",
"contact"
],
"type": "string"
}
},
"additionalProperties": false
}Finds Padel USA's own guides for a padel question (rules, technique, choosing gear, care, sizing). Returns up to 3 articles with a summary and link. Use it to answer as a padel expert and cite the guide.
| Argument | Type | Description |
|---|---|---|
| question* | string |
{
"type": "object",
"required": [
"question"
],
"properties": {
"question": {
"type": "string",
"maxLength": 120,
"minLength": 3
}
},
"additionalProperties": false
}Looks up up to 3 rackets by name in the Padel USA store and returns their specs (shape, balance, weight, core feel, handling, level, play style, surface), price, and product and add-to-cart links. Use it to answer questions about a specific racket or to compare 2 or 3 rackets side by side. A racket that is not returned is not currently sold in stock by Padel USA.
| Argument | Type | Description |
|---|---|---|
| names* | array | Racket brand and model names, e.g. ["Babolat Technical Viper 2026", "Nox AT10 Genius 18K"]. |
{
"type": "object",
"required": [
"names"
],
"properties": {
"names": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120,
"minLength": 3
},
"maxItems": 3,
"minItems": 1,
"description": "Racket brand and model names, e.g. [\"Babolat Technical Viper 2026\", \"Nox AT10 Genius 18K\"]."
}
},
"additionalProperties": false
}Shows the Padel USA Racket Finder as a tappable quiz card (level, style, feel, arm comfort, budget...). The shopper answers with a few taps and the card shows the 3 best-fitting rackets with Shop now buttons. Use it only when the shopper asks to take the quiz or wants to answer the questions themselves; otherwise fill in the answers yourself and call find_racket.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Finds in-stock padel gear at Padel USA other than a racket fit: shoes, balls, bags, overgrips, accessories, bundles (and rackets by name or brand). Returns up to 6 items with price, available sizes/options with their variant_id, and links. For racket recommendations use find_racket instead.
| Argument | Type | Description |
|---|---|---|
| size | string | US shoe size, e.g. "10" or "10.5". Only items in stock in that size are returned. |
| query | string | Optional words such as a brand or model, e.g. "Babolat" or "Jet Premura". |
| gender | string | For shoes and apparel. |
| category* | string | |
| max_price_usd | number |
{
"type": "object",
"required": [
"category"
],
"properties": {
"size": {
"type": "string",
"maxLength": 5,
"description": "US shoe size, e.g. \"10\" or \"10.5\". Only items in stock in that size are returned."
},
"query": {
"type": "string",
"maxLength": 60,
"description": "Optional words such as a brand or model, e.g. \"Babolat\" or \"Jet Premura\"."
},
"gender": {
"enum": [
"men",
"women"
],
"type": "string",
"description": "For shoes and apparel."
},
"category": {
"enum": [
"rackets",
"shoes",
"balls",
"bags",
"grips",
"accessories",
"bundles"
],
"type": "string"
},
"max_price_usd": {
"type": "number",
"maximum": 2000,
"minimum": 5
}
},
"additionalProperties": false
}Changes quantities in the cart (0 removes the line) and/or the delivery ZIP. If the result has "essentials", mention them once in one sentence with their reason (things the player genuinely needs with this cart, never an upsell push) and add them only if the shopper says yes; never repeat the suggestion. Show the cart, then offer checkout_url: the shopper pays on Padel USA's secure Shopify checkout (Shop Pay, cards, PayPal) and enters the delivery address there. Never ask for payment details in chat.
| Argument | Type | Description |
|---|---|---|
| zip | string | |
| needs | object | What you learned about the player, so the cart can suggest only what they genuinely need. Pass it on every cart call. |
| cart_id* | string | |
| changes | array |
{
"type": "object",
"required": [
"cart_id"
],
"properties": {
"zip": {
"type": "string",
"maxLength": 5
},
"needs": {
"type": "object",
"properties": {
"arm_pain": {
"type": "boolean",
"description": "They mentioned arm, elbow or wrist pain (tennis elbow)."
},
"bag_style": {
"enum": [
"backpack",
"racket_bag"
],
"type": "string",
"description": "Backpack for light carry or commuting; classic racket bag for several rackets, shoes and clothes."
},
"carries_gear": {
"type": "boolean",
"description": "They play after work, bring a change of clothes and water, or want to organise their gear."
}
},
"description": "What you learned about the player, so the cart can suggest only what they genuinely need. Pass it on every cart call.",
"additionalProperties": false
},
"cart_id": {
"type": "string",
"maxLength": 160
},
"changes": {
"type": "array",
"items": {
"type": "object",
"required": [
"line_id",
"quantity"
],
"properties": {
"line_id": {
"type": "string",
"maxLength": 120
},
"quantity": {
"type": "integer",
"maximum": 10,
"minimum": 0
}
},
"additionalProperties": false
},
"maxItems": 10
}
},
"additionalProperties": false
}Shows the cart: items, subtotal, shipping options for the ZIP, and the checkout link. If the result has "essentials", mention them once in one sentence with their reason (things the player genuinely needs with this cart, never an upsell push) and add them only if the shopper says yes; never repeat the suggestion. Show the cart, then offer checkout_url: the shopper pays on Padel USA's secure Shopify checkout (Shop Pay, cards, PayPal) and enters the delivery address there. Never ask for payment details in chat.
| Argument | Type | Description |
|---|---|---|
| needs | object | What you learned about the player, so the cart can suggest only what they genuinely need. Pass it on every cart call. |
| cart_id* | string |
{
"type": "object",
"required": [
"cart_id"
],
"properties": {
"needs": {
"type": "object",
"properties": {
"arm_pain": {
"type": "boolean",
"description": "They mentioned arm, elbow or wrist pain (tennis elbow)."
},
"bag_style": {
"enum": [
"backpack",
"racket_bag"
],
"type": "string",
"description": "Backpack for light carry or commuting; classic racket bag for several rackets, shoes and clothes."
},
"carries_gear": {
"type": "boolean",
"description": "They play after work, bring a change of clothes and water, or want to organise their gear."
}
},
"description": "What you learned about the player, so the cart can suggest only what they genuinely need. Pass it on every cart call.",
"additionalProperties": false
},
"cart_id": {
"type": "string",
"maxLength": 160
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 6, 2026.
| string |
| How do you win points? "defensive" = The wall (Patient at the back — force the error); "allround" = All-court (Adapt to whatever the point needs); "aggressive" = The finisher (Net rushes, smashes and volleys); "notsure" = Still figuring it out (No fixed style yet). |
| gender | string | Who’s this racket for? "men" = Men’s; "women" = Women’s. |
| injury | string | Any elbow or wrist trouble? "none" = No, never (Arm feels great); "sometimes" = Occasionally (A twinge after long sessions); "often" = Yes, often (Comfort is a priority). |
| dislike | string | Intermediate/advanced only. What would you change about it? "power" = I want more power (More punch on smashes and drives); "control" = I want more control (More precision and placement); "comfort" = It’s harsh on my arm (I want a softer, comfier feel); "lighter" = It feels heavy (I want a lighter, faster swing); "spin" = I want more spin (A grippier face for bite); "nothing" = Nothing major (Just exploring better options). |
| prior_sport | string | Beginners only. Did you play a racket sport before? "none" = No, padel’s my first (Straight into padel); "tennis" = Tennis (I play or played tennis); "pball" = Pickleball (Came from the paddle court); "other" = Ping pong, badminton or other (Another racket sport). |
| current_shape | string | Intermediate/advanced only, when the current racket is unknown. What’s your current racket like? "round" = A round / control racket (Forgiving, control-first); "teardrop" = A teardrop / all-round racket (Balanced power and control); "diamond" = A diamond / power racket (Head-heavy, built to attack); "notsure" = Not sure (I just play with what I have). |
| max_price_usd | number | Budget ceiling in US dollars. Leave out for no limit. |
| current_racket | string | Intermediate/advanced only: the brand and model the player uses now, e.g. "Bullpadel Vertex 04". Used to find a genuine step up. |
| women_suitable_first | boolean | Women only: true to prioritise lighter, arm-friendly and women's-range rackets (never a hard filter). |
{
"type": "object",
"required": [
"level"
],
"properties": {
"age": {
"enum": [
"18-34",
"35-49",
"50+"
],
"type": "string",
"description": "Your age range? \"18-34\" = 18–34; \"35-49\" = 35–49; \"50+\" = 50+."
},
"feel": {
"enum": [
"soft",
"medium",
"firm",
"notsure"
],
"type": "string",
"description": "What should impact feel like? \"soft\" = Soft (Plush and forgiving — max comfort); \"medium\" = Balanced (Not too soft, not too firm); \"firm\" = Firm (Solid and direct — pure feedback); \"notsure\" = Not sure yet (Pick for me)."
},
"level": {
"enum": [
"beginner",
"intermediate",
"advanced"
],
"type": "string",
"description": "What’s your level on court? \"beginner\" = Just starting out (New to padel, or play casually); \"intermediate\" = Improving fast (Play regularly, building consistency); \"advanced\" = Competitive (Tournaments, leagues, serious matches)."
},
"style": {
"enum": [
"defensive",
"allround",
"aggressive",
"notsure"
],
"type": "string",
"description": "How do you win points? \"defensive\" = The wall (Patient at the back — force the error); \"allround\" = All-court (Adapt to whatever the point needs); \"aggressive\" = The finisher (Net rushes, smashes and volleys); \"notsure\" = Still figuring it out (No fixed style yet)."
},
"gender": {
"enum": [
"men",
"women"
],
"type": "string",
"description": "Who’s this racket for? \"men\" = Men’s; \"women\" = Women’s."
},
"injury": {
"enum": [
"none",
"sometimes",
"often"
],
"type": "string",
"description": "Any elbow or wrist trouble? \"none\" = No, never (Arm feels great); \"sometimes\" = Occasionally (A twinge after long sessions); \"often\" = Yes, often (Comfort is a priority)."
},
"dislike": {
"enum": [
"power",
"control",
"comfort",
"lighter",
"spin",
"nothing"
],
"type": "string",
"description": "Intermediate/advanced only. What would you change about it? \"power\" = I want more power (More punch on smashes and drives); \"control\" = I want more control (More precision and placement); \"comfort\" = It’s harsh on my arm (I want a softer, comfier feel); \"lighter\" = It feels heavy (I want a lighter, faster swing); \"spin\" = I want more spin (A grippier face for bite); \"nothing\" = Nothing major (Just exploring better options)."
},
"prior_sport": {
"enum": [
"none",
"tennis",
"pball",
"other"
],
"type": "string",
"description": "Beginners only. Did you play a racket sport before? \"none\" = No, padel’s my first (Straight into padel); \"tennis\" = Tennis (I play or played tennis); \"pball\" = Pickleball (Came from the paddle court); \"other\" = Ping pong, badminton or other (Another racket sport)."
},
"current_shape": {
"enum": [
"round",
"teardrop",
"diamond",
"notsure"
],
"type": "string",
"description": "Intermediate/advanced only, when the current racket is unknown. What’s your current racket like? \"round\" = A round / control racket (Forgiving, control-first); \"teardrop\" = A teardrop / all-round racket (Balanced power and control); \"diamond\" = A diamond / power racket (Head-heavy, built to attack); \"notsure\" = Not sure (I just play with what I have)."
},
"max_price_usd": {
"type": "number",
"maximum": 5000,
"minimum": 30,
"description": "Budget ceiling in US dollars. Leave out for no limit."
},
"current_racket": {
"type": "string",
"maxLength": 120,
"description": "Intermediate/advanced only: the brand and model the player uses now, e.g. \"Bullpadel Vertex 04\". Used to find a genuine step up."
},
"women_suitable_first": {
"type": "boolean",
"description": "Women only: true to prioritise lighter, arm-friendly and women's-range rackets (never a hard filter)."
}
},
"additionalProperties": false
}