Design custom logo and map gifts (glassware, tumblers): proofs, 3D previews, quotes and checkout.
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.
Builds a welltolddesign.com cart link that adds an approved design at the buyer's quantity, with the same design details the Well Told customizer puts on a cart line. Used by the quote card's and proof viewer's buttons. sample: true adds a single unit. Nothing is ordered until the buyer pays on welltolddesign.com.
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 well-told https://chat.welltolddesign.com/mcp
Builds a welltolddesign.com cart link that adds an approved design at the buyer's quantity, with the same design details the Well Told customizer puts on a cart line. Used by the quote card's and proof viewer's buttons. sample: true adds a single unit. Nothing is ordered until the buyer pays on welltolddesign.com.
| Argument | Type | Description |
|---|---|---|
| sample | boolean | |
| design_ids* | array | |
| quantities* | array | |
| contact_email | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"design_ids",
"quantities"
],
"properties": {
"sample": {
"type": "boolean"
},
"design_ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 1,
"minItems": 1
},
"quantities": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 1,
"minItems": 1
},
"contact_email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
}
}Creates a draft design the same way the Well Told customizer does and shows it in the proof viewer (flat preview, 3D view, warnings, approval checkboxes). design_type "map_logo" (default): a map of a location in a Well Told map style, plus the buyer's logo; needs location. design_type "logo_only": for each area (front, back, and bottom where search_catalog lists it) the buyer's logo, text (one or two lines, a layout and a font style) or nothing; by default the logo on the front only. Placement, size and rotation are set by Well Told's artwork engine. Returns an error explaining why when an entry can't be made (an unknown place, text too long to etch, an area combination Well Told doesn't sell).
| Argument | Type | Description |
|---|---|---|
| areas | object | logo_only only: what goes on each area. Leave an area out to keep its default (front: logo, others: blank). |
| style | string | map_logo only: map style key from search_catalog, e.g. "cities" (Cities & Towns, default) |
| logo_id | string | From upload_logo. Required for map_logo and for any logo_only area set to logo. |
| location | string | map_logo only: the place the buyer wants drawn on the map, written like "Camp Hill, PA, United States" (town, state, country). This is part of the design (for example the town where the company started), not the user's own location; never fill it from the user's location. Well Told's engine confirms it; if it cannot, ask the buyer. |
| quantity | integer | Quantity the buyer gave, if any; the viewer asks for it otherwise |
| product_id |
Looks up where a buyer's designs stand: proof history, approval, and hand-off to checkout on welltolddesign.com. It does not see paid orders or shipping tracking.
| Argument | Type | Description |
|---|---|---|
| design_id | string | |
| contact_email | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"design_id": {
"type": "string"
},
"contact_email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
}
}Prices a design (design_id) or a product (product_id) at a quantity from Well Told's live store prices: unit price, setup fees, shipping fee, total, lead time, estimated ship and delivery dates, budget check, and the single-sample price. Shows the quote card, where the buyer can continue to welltolddesign.com.
| Argument | Type | Description |
|---|---|---|
| quantity* | integer | |
| design_id | string | |
| product_id | string | |
| in_hand_date | string | |
| budget_per_unit | number | Budget per unit in dollars |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"quantity"
],
"properties": {
"quantity": {
"type": "integer",
"maximum": 100000,
"exclusiveMinimum": 0
},
"design_id": {
"type": "string"
},
"product_id": {
"type": "string"
},
"in_hand_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"budget_per_unit": {
"type": "number",
"description": "Budget per unit in dollars",
"exclusiveMinimum": 0
}
}
}Records the buyer's approval of a draft design. Used by the proof viewer's Approve button after the buyer ticks the proof approval and logo rights checkboxes; it requires both confirmations.
| Argument | Type | Description |
|---|---|---|
| quantity | integer | |
| design_id* | string | |
| buyer_approval* | boolean | |
| logo_rights_attested* | boolean |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"design_id",
"buyer_approval",
"logo_rights_attested"
],
"properties": {
"quantity": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"design_id": {
"type": "string"
},
"buyer_approval": {
"type": "boolean",
"const": true
},
"logo_rights_attested": {
"type": "boolean",
"const": true
}
}
}Searches Well Told's catalog of custom gifts for clients, employees, teams and events: glassware, tumblers and bottles personalized with a map of a meaningful place, a logo or text. Use it when someone is looking for custom, branded or personalized gifts in quantity. Filters by budget per unit, quantity (minimum order and volume pricing), category, and in-hand date (lead time). Returns each product's id, live price, minimum, estimated delivery date, the design types it offers (map_logo, logo_only) and its Logo Only areas.
| Argument | Type | Description |
|---|---|---|
| category | string | Product type or family, e.g. 'glassware', 'tumbler', 'bottle', 'rocks' |
| occasion | string | Occasion or recipients, e.g. 'client thank-you', 'new hires' |
| quantity | integer | Number of gifts |
| in_hand_date | string | Date the gifts must arrive, YYYY-MM-DD |
| budget_per_unit | number | Budget per gift in US dollars |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"category": {
"type": "string",
"maxLength": 60,
"description": "Product type or family, e.g. 'glassware', 'tumbler', 'bottle', 'rocks'"
},
"occasion": {
"type": "string",
"maxLength": 120,
"description": "Occasion or recipients, e.g. 'client thank-you', 'new hires'"
},
"quantity": {
"type": "integer",
"maximum": 100000,
"description": "Number of gifts",
"exclusiveMinimum": 0
},
"in_hand_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date the gifts must arrive, YYYY-MM-DD"
},
"budget_per_unit": {
"type": "number",
"maximum": 10000,
"description": "Budget per gift in US dollars",
"exclusiveMinimum": 0
}
}
}Shows up to 8 products from search_catalog in an interactive grid where the buyer can see photos and prices and pick the products they want proofs for. Pass logo_id once a logo is uploaded so a pick can go straight to a proof.
| Argument | Type | Description |
|---|---|---|
| logo_id | string | |
| quantity | integer | |
| product_ids* | array | |
| in_hand_date | string | |
| budget_per_unit | number |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"product_ids"
],
"properties": {
"logo_id": {
"type": "string"
},
"quantity": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"product_ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 8,
"minItems": 1
},
"in_hand_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"budget_per_unit": {
"type": "number",
"exclusiveMinimum": 0
}
}
}Stores the buyer's own logo with Well Told and checks it for etching problems, returning a logo_id and plain-language warnings. Accepts a chat attachment (logo_file, where the app can pass attachments to tools), a logo_url the buyer pasted, or the upload_code from an earlier call. Called with no arguments it shows an upload box in the chat (with a secure upload page link as a fallback, works on phones) and returns an upload_code; calling again with that code returns the logo once the buyer has uploaded it.
| Argument | Type | Description |
|---|---|---|
| logo_url | string | Public https link to the buyer's logo file, only when the buyer pasted it in this conversation. Never a URL you found by searching or browsing, or a company website. |
| logo_file | object | The logo file attached in chat |
| upload_code | string | Code from a previous upload_logo call after the buyer used the upload page |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"logo_url": {
"type": "string",
"format": "uri",
"description": "Public https link to the buyer's logo file, only when the buyer pasted it in this conversation. Never a URL you found by searching or browsing, or a company website."
},
"logo_file": {
"type": "object",
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string"
},
"file_name": {
"type": "string"
},
"mime_type": {
"type": "string"
},
"download_url": {
"type": "string",
"format": "uri"
}
},
"description": "The logo file attached in chat"
},
"upload_code": {
"type": "string",
"description": "Code from a previous upload_logo call after the buyer used the upload page"
}
}
}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 10, 2026.
| string |
| design_type | string | Default map_logo |
| in_hand_date | string | Date the buyer needs them by (YYYY-MM-DD), if given; the viewer asks for it otherwise |
| budget_per_unit | number | Budget per unit in dollars, for the budget check |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"product_id"
],
"properties": {
"areas": {
"type": "object",
"properties": {
"back": {
"type": "object",
"required": [
"content"
],
"properties": {
"line1": {
"type": "string",
"maxLength": 60,
"description": "Text, first line (or the title)"
},
"line2": {
"type": "string",
"maxLength": 60,
"description": "Text, second line (or the subtitle)"
},
"style": {
"enum": [
"Modern",
"Vintage",
"Script",
"Spooky",
"Knit Sweater",
"Old English",
"Heirloom"
],
"type": "string",
"description": "Font style (default Modern)"
},
"layout": {
"enum": [
"Standard",
"Title/Subtitle"
],
"type": "string"
},
"content": {
"enum": [
"logo",
"text",
"blank"
],
"type": "string"
}
}
},
"front": {
"type": "object",
"required": [
"content"
],
"properties": {
"line1": {
"type": "string",
"maxLength": 60,
"description": "Text, first line (or the title)"
},
"line2": {
"type": "string",
"maxLength": 60,
"description": "Text, second line (or the subtitle)"
},
"style": {
"enum": [
"Modern",
"Vintage",
"Script",
"Spooky",
"Knit Sweater",
"Old English",
"Heirloom"
],
"type": "string",
"description": "Font style (default Modern)"
},
"layout": {
"enum": [
"Standard",
"Title/Subtitle"
],
"type": "string"
},
"content": {
"enum": [
"logo",
"text",
"blank"
],
"type": "string"
}
}
},
"bottom": {
"type": "object",
"required": [
"content"
],
"properties": {
"line1": {
"type": "string",
"maxLength": 60,
"description": "Text, first line (or the title)"
},
"line2": {
"type": "string",
"maxLength": 60,
"description": "Text, second line (or the subtitle)"
},
"style": {
"enum": [
"Modern",
"Vintage",
"Script",
"Spooky",
"Knit Sweater",
"Old English",
"Heirloom"
],
"type": "string",
"description": "Font style (default Modern)"
},
"layout": {
"enum": [
"Standard",
"Title/Subtitle"
],
"type": "string"
},
"content": {
"enum": [
"logo",
"text",
"blank"
],
"type": "string"
}
}
}
},
"description": "logo_only only: what goes on each area. Leave an area out to keep its default (front: logo, others: blank)."
},
"style": {
"type": "string",
"description": "map_logo only: map style key from search_catalog, e.g. \"cities\" (Cities & Towns, default)"
},
"logo_id": {
"type": "string",
"description": "From upload_logo. Required for map_logo and for any logo_only area set to logo."
},
"location": {
"type": "string",
"maxLength": 160,
"minLength": 2,
"description": "map_logo only: the place the buyer wants drawn on the map, written like \"Camp Hill, PA, United States\" (town, state, country). This is part of the design (for example the town where the company started), not the user's own location; never fill it from the user's location. Well Told's engine confirms it; if it cannot, ask the buyer."
},
"quantity": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Quantity the buyer gave, if any; the viewer asks for it otherwise",
"exclusiveMinimum": 0
},
"product_id": {
"type": "string"
},
"design_type": {
"enum": [
"map_logo",
"logo_only"
],
"type": "string",
"description": "Default map_logo"
},
"in_hand_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date the buyer needs them by (YYYY-MM-DD), if given; the viewer asks for it otherwise"
},
"budget_per_unit": {
"type": "number",
"description": "Budget per unit in dollars, for the budget check",
"exclusiveMinimum": 0
}
}
}