Skip to main content
Glama
cobusvdwest

Juicy Designs Quote MCP Server

by cobusvdwest

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.

  • Rejects consent_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.

Related MCP server: Customer Support MCP Server

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).

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides AI agents with 220+ tools for building websites, sending email, managing contacts, invoicing, databases, automation, and more through a single secure connection. Features hardware-bound authentication and works with Claude Desktop, Claude Code, Cursor, and other MCP-compatible clients.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to read and write CRM data—companies, contacts, opportunities, tasks, and interactions—through MCP, with OAuth and provenance tracking for every value.
    MIT