Local businesses, menus and price lists in Cape Town and the Western Cape; start a request in WRDO.
za.co.wrdo/wrdo MCP Server
The za.co.wrdo/wrdo MCP server provides access to local businesses, menus, and price lists for Cape Town and the Western Cape. It is described as “start a request in WRDO,” indicating that client requests are routed through WRDO to retrieve the available local business information.
🛠️ Key Features
Local businesses in Cape Town and the Western Cape
Menus
Price lists
Request initiation via “WRDO”
🚀 Use Cases
Fetch business listings for a local area
Retrieve menu information for specific businesses
Access price lists for businesses in Cape Town and the Western Cape
⚡ Developer Benefits
Clear scoping to Cape Town and the Western Cape
Focused data categories: businesses, menus, and prices
Simple entry point: “start a request in WRDO”
⚠️ Limitations
Available details provided do not enumerate specific tools, parameters, or authentication behavior
Find local businesses on WRDO in the Western Cape by what they do (or their name), optionally in a town or suburb, optionally narrowed by category, price list, price and whether they are open now. Example: "hairdressers in Paarl under R200 that are open now". Give "what" (words) and/or "category" (an exact slug from list_categories). Returns id, name, category, area, verified (claimed by the owner), page_url, start_url, has_price_list, price_from_rand (cheapest listed price, rand, or null) and open_now (true, false or null when unknown). When any of has_price_list, max_price_rand or open_now is used, only the top 100 matches are checked (a message says so). open_now uses opening hours that verified businesses publish; a business without readable hours is left out when open_now is true. No contact details: to reach a business, give the person its start_url.
Parameters7
what
string
optional
What the person needs: a kind of business or service ("plumber", "pizza") or a business name. Optional when "category" is given.
where
string
optional
A town or suburb in the Western Cape, e.g. "Paarl" or "Val de Vie, Paarl". Leave out for the whole Western Cape.
category
string
optional
Only businesses in this category: an exact plural slug such as "restaurants", "hair-salons" or "plumbers" (list_categories returns the valid slugs and which have businesses). An unknown slug returns an error listing the valid ones.
has_price_list
boolean
optional
true: only businesses with a price list or menu on WRDO (so get_price_list will have content). false: only those without. Leave out for both.
max_price_rand
number
optional
Only businesses with at least one listed item priced at or under this many rand (e.g. 200). Businesses without a listed price never match. The cheapest price may be unconfirmed (from their website); get_price_list says so.
open_now
boolean
optional
true: only businesses that are open right now in South Africa (SAST). Only verified businesses with readable hours can match; those without hours are excluded. Leave out when the person does not need it.
limit
integer
optional
How many results, 1 to 20 (default 10).
Raw schema
{
"type": "object",
"properties": {
"what": {
"description": "What the person needs: a kind of business or service (\"plumber\", \"pizza\") or a business name. Optional when \"category\" is given.",
"type": "string",
"minLength": 2,
"maxLength": 80
},
"where": {
"description": "A town or suburb in the Western Cape, e.g. \"Paarl\" or \"Val de Vie, Paarl\". Leave out for the whole Western Cape.",
"type": "string",
"maxLength": 60
},
"category": {
"description": "Only businesses in this category: an exact plural slug such as \"restaurants\", \"hair-salons\" or \"plumbers\" (list_categories returns the valid slugs and which have businesses). An unknown slug returns an error listing the valid ones.",
"type": "string",
"maxLength": 80
},
"has_price_list": {
"description": "true: only businesses with a price list or menu on WRDO (so get_price_list will have content). false: only those without. Leave out for both.",
"type": "boolean"
},
"max_price_rand": {
"description": "Only businesses with at least one listed item priced at or under this many rand (e.g. 200). Businesses without a listed price never match. The cheapest price may be unconfirmed (from their website); get_price_list says so.",
"type": "number",
"exclusiveMinimum": 0
},
"open_now": {
"description": "true: only businesses that are open right now in South Africa (SAST). Only verified businesses with readable hours can match; those without hours are excluded. Leave out when the person does not need it.",
"type": "boolean"
},
"limit": {
"description": "How many results, 1 to 20 (default 10).",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}
list_categories
The kinds of business WRDO lists in the Western Cape, with how many of each, for a town or suburb or everywhere. Answers "what is there in Paarl?". Each slug is a valid "category" for search_local_businesses. Most businesses first; categories with none are left out. Outside the Western Cape it returns nothing. No business details, no contact details.
Parameters1
where
string
optional
A town or suburb in the Western Cape, e.g. "Paarl" or "Val de Vie, Paarl". Leave out for the whole Western Cape.
Raw schema
{
"type": "object",
"properties": {
"where": {
"description": "A town or suburb in the Western Cape, e.g. \"Paarl\" or \"Val de Vie, Paarl\". Leave out for the whole Western Cape.",
"type": "string",
"maxLength": 60
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}
get_business
One business's public WRDO page: name, category, area, whether it is verified, and (for verified businesses) its description, address, opening hours (hours, as the business wrote them), website and menu link. Also open_now (true, false or null when hours are missing or unreadable) and reviews: WRDO's own reviews only (count, average_rating and up to 3 recent comments; never copied from Google or other sites; count 0 with a note when there are none). Takes an id as returned by search_local_businesses. Never a phone number or email.
Parameters1
id
string
required
A WRDO business id from search_local_businesses (lbiz_…).
Raw schema
{
"type": "object",
"properties": {
"id": {
"description": "A WRDO business id from search_local_businesses (lbiz_…).",
"type": "string",
"maxLength": 60
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}
start_request
Get a link the person opens to ask WRDO for a quote, booking or order (optionally from one business). The person finishes in WRDO. This tool never books, charges or creates an account. It only starts a request: nothing is booked until the business confirms in WRDO.
Parameters3
what
string
required
What the person needs: a kind of business or service ("plumber", "pizza") or a business name.
business_id
string
optional
A WRDO business id from search_local_businesses (lbiz_…).
when
string
optional
When they want it, in their words, e.g. "Saturday morning".
Raw schema
{
"type": "object",
"properties": {
"what": {
"description": "What the person needs: a kind of business or service (\"plumber\", \"pizza\") or a business name.",
"type": "string",
"minLength": 2,
"maxLength": 80
},
"business_id": {
"description": "A WRDO business id from search_local_businesses (lbiz_…).",
"type": "string",
"maxLength": 60
},
"when": {
"description": "When they want it, in their words, e.g. \"Saturday morning\".",
"type": "string",
"maxLength": 60
}
},
"required": [
"what"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}
get_price_list
A business's price list or menu, for any kind of business (salon, barber, nails, beauty, restaurant): sections of items with name, description, price_zar (rand) and, for services, duration_min. prices_confirmed is false (with a price_note) when the prices come from the business website and are not confirmed. Takes an id as returned by search_local_businesses. An empty list means WRDO has none yet. Never a phone number or email.
Parameters1
id
string
required
A WRDO business id from search_local_businesses (lbiz_…).
Raw schema
{
"type": "object",
"properties": {
"id": {
"description": "A WRDO business id from search_local_businesses (lbiz_…).",
"type": "string",
"maxLength": 60
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}
Find local businesses, menus and price lists in Cape Town and the Western Cape, South Africa,
and start a request with them in WRDO, from any AI assistant that speaks MCP.
WRDO is a hosted Model Context Protocol server. There is nothing to install or run: point your assistant at the URL below.
code
https://api.wrdo.co.za/mcp
Transport: Streamable HTTP
Sign-in: none. Every tool is read-only and anonymous.
Coverage: the Western Cape, including Cape Town, Paarl and the Cape Winelands.
Rate limit: 30 requests per minute per caller.
This repository holds no server code. It holds the small config files that let Claude Code, Cursor, Gemini CLI and other tools add WRDO in one step.
What you can ask
Find a hairdresser in Cape Town.
Which restaurants in Paarl have a menu with something under R100?
What's on the menu at Breezy's, and how much is the garlic and cheese pita?
Find a hairdresser in Wellington and start a request for Saturday morning.
Tools
Tool
What it does
search_local_businesses
Find businesses by what they do or their name, optionally in a town or suburb. Narrow by category, by whether they have a price list, by a maximum price in rand, and by whether they are open now.
list_categories
The kinds of business WRDO lists, with how many of each, for a town, a suburb or everywhere.
get_business
One business's public WRDO page: category, area and whether it is verified. Verified businesses add their description, address, opening hours, website and menu link. Shows WRDO's own reviews only, never reviews copied from other sites.
get_price_list
A business's menu or price list: items with prices in rand. Prices taken from the business's own website are marked as not yet confirmed.
start_request
A link the person opens to ask WRDO for a quote, booking or order. Nothing is booked or paid inside the assistant: the person finishes in WRDO, and prices are only confirmed when the business confirms them.
Results only ever carry public business information. No phone numbers, email addresses or personal data are returned.
Add WRDO to your assistant
Claude (claude.ai and Claude Desktop)
Open Settings → Connectors → Add custom connector.
Name it WRDO and paste https://api.wrdo.co.za/mcp as the URL.
Leave authentication empty and click Add.
Claude Code
bash
claude mcp add --transport http wrdo https://api.wrdo.co.za/mcp