Juicy Designs Quote
Description
# Juicy Designs — Quote MCP Server + REST API (Cloudflare Worker) Request and read-only capabilities for AI agents, exposed two ways: | Transport | Path | For | |---|---|---| | MCP (Streamable HTTP) | `POST /mcp` | ChatGPT / Claude / agent connectors | | REST request | `POST…
About
# Juicy Designs — Quote MCP Server + REST API (Cloudflare Worker) Request and read-only capabilities for AI agents, exposed two ways: | Transport | Path | For | |---|---|---| | MCP (Streamable HTTP) | `POST /mcp` | ChatGPT / Claude / agent connectors | | REST request | `POST /quote`, `POST /strategy-session` | Agentic…
Details
- Author
- cobusvdwest
- Downloads
- 271
- Categories
- Other
Jump to
- Two request tools: get_quote and book_strategy_session, both consent‑gated
- Five read tools: service catalog, service areas, case studies, client reviews, FAQs
- All input validated server‑side; model extraction is never trusted
- Quotes are never returned; only receipt confirmation with a four‑working‑hour SLA
- Leads land in the existing Juicy Designs email and Google Sheet
- Supports both MCP (Streamable HTTP) and REST transports
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Juicy Designs QuoteCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Deploy by cloning the repository, installing dependencies, setting the LEAD_ENDPOINT secret with the existing Apps Script URL, and running npx wrangler deploy. Connect any MCP client (e.g., Claude under Settings → Connectors) to the worker’s /mcp endpoint, or call the REST endpoints directly at POST /quote and POST /strategy-session. The server accepts no authentication and never returns or implies a price.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"juicy designs quote": {
"juicy-designs-quote": {
"type": "streamable-http",
"url": "https://juicy-designs-quote.black-voice-76e6.workers.dev/mcp"
}
}
}
}
McpServers
{
"juicy-designs-quote": {
"type": "streamable-http",
"url": "https://juicy-designs-quote.black-voice-76e6.workers.dev/mcp"
}
}
Juicy Designs — Quote MCP Server + REST API (Cloudflare Worker)
Request and read-only capabilities for AI agents, exposed two ways:
| Transport | Path | For |
|---|---|---|
| MCP (Streamable HTTP) | POST /mcp | ChatGPT / Claude / agent connectors |
| REST request | POST /quote, POST /strategy-session | Agentic browsers / OpenAPI clients |
| REST read | GET /service-catalog /service-areas /case-studies /client-reviews /faqs | Read reference data |
| Discovery | GET /, GET /openapi.json | Health + machine-readable spec |
Tools
| Tool | Type | Purpose |
|---|---|---|
| get_quote | request | Submit a free, no-obligation quote request. Consent-gated. |
| book_strategy_session | request | Request a free strategy session. Consent-gated. |
| get_service_catalog | read | Services + reference "from" floors (reference only). |
| get_service_areas | read | Where Juicy Designs works. |
| get_case_studies | read | Track record and portfolio pointer. |
| get_client_reviews | read | Aggregate Google rating and review source. |
| get_faqs | read | Common questions and answers. |
Both request tools share the same server-side validation and the same forwardLead()
sink, which posts the lead to the existing Juicy Designs Apps Script form handler
as form_type=quote — leads land exactly where the website form's leads land
(email + the "Leads" Google Sheet). Read tools return curated static data only; no PII,
no external calls.
Guarantees
- Never returns or implies a price. Published "from" figures are entry-point references only, never a quote or estimate. Confirms receipt + the four-working-hour SLA only. - Rejectsconsent_to_contact !== true on every request tool (POPIA).
- All input validated server-side — the model's extraction is never trusted.
- Read tools are side-effect-free and contain no per-user calculation.
- Enum inputs map to the labels the Apps Script email/sheet expects.
Deploy
cd mcp-quote-worker
npm install
1) Lead sink (the existing Apps Script /exec URL)
npx wrangler secret put LEAD_ENDPOINT
paste: https://script.google.com/macros/s/AKfycb.../exec
2) (optional) per-IP rate limit — Apps Script already throttles 5/10min
npx wrangler kv namespace create RATELIMIT # then paste id into wrangler.toml + uncomment
npx wrangler deploy
Deploy prints the Worker URL, e.g. https://juicy-designs-quote.<subdomain>.workers.dev.
Put that origin into openapi.yaml (servers.url) and wherever you advertise the endpoint.
Local test
npx wrangler dev # serves on http://localhost:8787
REST
curl -s localhost:8787/quote -H 'content-type: application/json' -d '{
"name":"Sipho Dlamini","email":"sipho@example.co.za","service":"seo",
"project_summary":"E-commerce store, want to rank for running shoes in SA.",
"budget_range":"25k_75k","timeline":"1_3_months","consent_to_contact":true
}'
MCP: list tools
curl -s localhost:8787/mcp -H 'content-type: application/json' -d \
'{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
MCP: call get_quote
curl -s localhost:8787/mcp -H 'content-type: application/json' -d \
'{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_quote","arguments":{"name":"Sipho","email":"s@x.co.za","service":"seo","project_summary":"Need SEO for a new store in Pretoria.","consent_to_contact":true}}}'
A request without consent_to_contact:true must come back as an error — that is the POPIA gate working.
Connect as a connector
Claude (Settings → Connectors → Add custom connector): URL = https://<worker>/mcp.
ChatGPT (Settings → Connectors / Developer mode): add an MCP server with the same /mcp URL.
The connector lists one tool, get_quote. The agent should read the fields back and confirm
consent with the user before calling. No authentication is required (the tool only creates a lead).
Connector discovery (so agents can find it)
After deploy, advertise the endpoints from the site:
1. A short docs page (e.g. /connect/ or a section on /quote/) listing the MCP + OpenAPI URLs.
2. Append to llms.txt (root of juicydesigns.co.za):
## For AI agents
- MCP server (request a quote): https://<worker>/mcp
- OpenAPI 3.1 spec: https://<worker>/openapi.json
(Left out of llms.txt until you have the real Worker URL — paste it in post-deploy so there is no dead link.)
Map of inputs → Apps Script fields
| MCP/REST input | sent as | shown in email/sheet |
|---|---|---|
| service (enum) | services (label) | Services |
| budget_range (enum) | budget (label) | Budget |
| project_summary (+ timeline + source) | message | Message |
| name / email / phone / company | same | as-is |
| form_type | quote | routes to the quote email/template |
Swap the body of forwardLead() in src/index.ts to send leads elsewhere (CRM, webhook, Resend).
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



