Developer documentation
Juicy Designs MCP documentation
Connect an AI agent to Juicy Designs to submit a free, no-obligation quote or strategy-session request, and to read services, areas, track record, reviews and FAQs. Tools run over Model Context Protocol, REST or OpenAPI. No authentication. Request tools only create a lead, read tools are side-effect-free, and nothing ever returns, calculates or implies a price; a custom proposal follows within four working hours.
Endpoints
- MCP (Streamable HTTP):
https://juicy-designs-quote.black-voice-76e6.workers.dev/mcp - REST quote (POST JSON):
.../quote - REST strategy session (POST JSON):
.../strategy-session - REST read (GET):
.../service-catalogue,.../service-areas,.../case-studies,.../client-reviews,.../faqs - OpenAPI 3.1: openapi.json
Authentication
None. The endpoints are public. Request tools only create a lead; read tools return curated reference data. Nothing fetches per-user pricing or performs any other action.
Tool: get_quote
Submit a quote request. Every field is validated server-side. A request without consent_to_contact: true is rejected (POPIA). The response confirms receipt and the four-working-hour turnaround; it never contains a price.
Input schema
{
"name": "string (required)",
"email": "string, email (required)",
"service": "web_design | seo | ai_search_visibility | branding | google_ads | meta_ads | social_media_marketing | content_marketing | other (required)",
"project_summary": "string (required)",
"consent_to_contact": "boolean, must be true (required)",
"company": "string (optional)",
"phone": "string (optional)",
"budget_range": "under_25k | 25k_75k | 75k_200k | 200k_plus | unsure (optional)",
"timeline": "asap | 1_3_months | 3_6_months | flexible (optional)"
}
Other tools
book_strategy_session (request)
Request a free, no-obligation strategy session. Consent-gated like get_quote; does not book a confirmed time or return a price.
{
"name": "string (required)",
"email": "string, email (required)",
"consent_to_contact": "boolean, must be true (required)",
"company": "string (optional)",
"phone": "string (optional)",
"topic": "string (optional)",
"service": "same enum as get_quote (optional)"
}
Read-only tools
Side-effect-free. Over MCP they take no arguments; over REST they are GET requests. None capture personal data or return a price.
get_service_catalog, services with reference "from" floors (reference only).get_service_areas, head office, in-person areas, nationwide remote coverage.get_case_studies, agency track record and portfolio pointer.get_client_reviews, aggregate Google rating and review source.get_faqs, common questions and answers.
What is Model Context Protocol?
Model Context Protocol (MCP) is an open standard that lets an AI assistant call external tools and read external data through a defined interface, instead of guessing from training data or scraping a web page. A server publishes a list of tools with typed input schemas; a client such as an AI assistant discovers those tools and calls them on the user's behalf.
For an agency, that means an assistant can answer questions about our services with current data, and can submit a genuine quote request on behalf of the person it is helping, without a human copying details into a contact form.
The same capability is exposed three ways here so no client is excluded:
- MCP over Streamable HTTP for assistants that speak the protocol natively
- Plain REST for anything that can send JSON
- OpenAPI 3.1 for agent frameworks that build tools from a specification
Design principles behind this API
Three deliberate constraints shape every endpoint, and they are worth stating because they are unusual:
- No authentication, because nothing sensitive is exposed. Read tools return curated public reference data. Request tools create a lead and nothing else. There is no account to compromise and no per-user data to fetch.
- No price is ever returned, calculated or implied. Scope drives cost, so a figure produced without a human reading the brief would be misleading. Every response points to a written proposal within four working hours instead.
- Consent is enforced server-side. A request without
consent_to_contact: trueis rejected. That is a POPIA requirement, not a preference, and validating it at the API means an agent cannot accidentally create a contact record without a lawful basis.
Read tools are side-effect-free and safe to call speculatively. Request tools create a real lead, so they should only be called when the person has actually asked for a quote or a session.
Which AI clients can connect
Any client that implements MCP over Streamable HTTP can discover and call these tools, including Claude Desktop and Claude Code, agent frameworks that accept an MCP server URL, and custom agents built on the OpenAI or Anthropic SDKs.
Clients without MCP support can use the REST endpoints directly, or import openapi.json to generate tool definitions automatically. Nothing about the integration is client-specific.
A practical sequence for an agent helping a South African business:
- Call
get_service_catalogandget_service_areasto confirm the service exists and the area is covered. - Call
get_client_reviewsorget_case_studiesif the user is comparing providers. - Confirm with the user that they want to be contacted, then call
get_quotewithconsent_to_contact: true. - Return the reference number and the four-working-hour commitment to the user.
Request examples
REST (curl)
curl -X POST https://juicy-designs-quote.black-voice-76e6.workers.dev/quote \
-H "Content-Type: application/json" \
-d '{
"name": "Sam Nkosi",
"email": "sam@example.co.za",
"service": "seo",
"project_summary": "New ecommerce site, want organic growth in 3 months.",
"budget_range": "25k_75k",
"timeline": "1_3_months",
"consent_to_contact": true
}'
MCP tool call (arguments)
{
"name": "get_quote",
"arguments": {
"name": "Sam Nkosi",
"email": "sam@example.co.za",
"service": "seo",
"project_summary": "New ecommerce site, want organic growth in 3 months.",
"consent_to_contact": true
}
}
Response example
{
"ok": true,
"reference": "JD-XXXXXX",
"message": "Quote request received. A Juicy Designs team member will send a custom proposal within four working hours.",
"service": "seo"
}
No price, estimate or figure is returned. Pricing is scope-dependent and confirmed by a human in the written proposal.
Errors
400, validation failed (missing or invalid field), orconsent_to_contactnot true.405, method not allowed (REST endpoint accepts POST only).
Connect a client
Claude: Settings, Connectors, Add custom connector, paste the MCP URL.
ChatGPT: add an MCP server under connectors or developer mode using the MCP URL.
OpenAPI clients and browser agents: import the OpenAPI spec or POST to the REST endpoint.
See also: AI overview, all AI tools, Connect summary, and the in-page WebMCP tools on the quote page.
MCP API FAQs
What is the Juicy Designs MCP server for?
It lets an AI assistant read current information about Juicy Designs services, service areas, case studies, reviews and FAQs, and submit a quote or strategy-session request on a user's behalf. It never returns a price; a human sends a written proposal within four working hours.
Does the API require an API key or authentication?
No. The endpoints are public because nothing sensitive is exposed: read tools return curated reference data and request tools only create a lead. There is no per-user data to fetch and no account to authenticate.
Why does the API never return a price?
Pricing depends on scope, and a figure generated without a human reading the brief would mislead the client. Every quote response confirms receipt and commits to a custom written proposal within four working hours instead.
Can an AI agent submit a quote request without the user's consent?
No. The server rejects any request without consent_to_contact set to true. Consent is validated server-side because POPIA requires a lawful basis for direct contact, so an agent cannot create a contact record accidentally.