# WRDO (remote · api.wrdo.co.za)

Local businesses, menus and price lists in Cape Town and the Western Cape; start a request in WRDO.

- Trust score: 76/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-04

## Components

- remote · `api.wrdo.co.za`: 76/100 (this document), [markdown](https://verifymcp.io/servers/za-co-wrdo-wrdo/api.md), [page](https://verifymcp.io/servers/za-co-wrdo-wrdo/api)

## Channel facts

- Endpoint: `https://api.wrdo.co.za/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.2`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-04.

- **Endpoint Security**: 74/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 66/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1576 tokens (~262/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 50/100
  - Stability observed for 15 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 7 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the WRDO MCP server?

WRDO is a hosted endpoint at https://api.wrdo.co.za/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http za-co-wrdo-wrdo 'https://api.wrdo.co.za/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "za-co-wrdo-wrdo": {
      "url": "https://api.wrdo.co.za/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "za-co-wrdo-wrdo": {
      "type": "http",
      "url": "https://api.wrdo.co.za/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.za-co-wrdo-wrdo]
url = "https://api.wrdo.co.za/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "za-co-wrdo-wrdo": {
      "type": "remote",
      "url": "https://api.wrdo.co.za/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add za-co-wrdo-wrdo --url 'https://api.wrdo.co.za/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  za-co-wrdo-wrdo:
    url: "https://api.wrdo.co.za/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "za-co-wrdo-wrdo": {
      "Transport": "http",
      "Url": "https://api.wrdo.co.za/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add za-co-wrdo-wrdo -t streamable-http -u 'https://api.wrdo.co.za/mcp'
```

### Other

```json
{
  "mcpServers": {
    "za-co-wrdo-wrdo": {
      "type": "http",
      "url": "https://api.wrdo.co.za/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-02 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-31 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-29 (score 74, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-27 (score 73, +1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “get_business” rewrote its description, which is the text the model reads
- [security] Tool “get_price_list” rewrote its description, which is the text the model reads
- [security] Tool “start_request” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 236 → 262
- [functional] New tool “list_areas”
- [cosmetic] “get_business” reworded the description of “id”
- [cosmetic] “get_price_list” reworded the description of “id”
- [cosmetic] “start_request” reworded the description of “business_id”

### 2026-10-25 (score 72, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-23 (score 71, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-21 (score 70, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-20 (score 69)

First indexed and scored.

## MCP tools (6)

### `search_local_businesses` (~509 tokens)

Search local businesses

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.

Input parameters:

- `category` (string): 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…
- `has_price_list` (boolean): 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.
- `limit` (integer): How many results, 1 to 20 (default 10).
- `max_price_rand` (number): 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);…
- `open_now` (boolean): 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…
- `what` (string): What the person needs: a kind of business or service ("plumber", "pizza") or a business name. Optional when "category" is given.
- `where` (string): A town or suburb in the Western Cape, e.g. "Paarl" or "Val de Vie, Paarl". Leave out for the whole Western Cape.

Output parameters:

- `message` (string)
- `results` (array)
- `source` (string)

### `list_categories` (~124 tokens)

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.

Input parameters:

- `where` (string): A town or suburb in the Western Cape, e.g. "Paarl" or "Val de Vie, Paarl". Leave out for the whole Western Cape.

Output parameters:

- `categories` (array)
- `message` (string)
- `source` (string)
- `total` (number)
- `where`

### `list_areas` (~147 tokens)

List areas

The towns and suburbs in the Western Cape where WRDO has listings, each with its region and how many businesses (suburbs counted in their town). Gives the valid names for "where" in search_local_businesses and list_categories. Optional "query" keeps areas whose name or region contains it (e.g. "paarl" or "winelands"). Most businesses first, up to 100; areas with none are left out. Western Cape only. Names and counts only: no business or contact details.

Input parameters:

- `query` (string): Part of a town, suburb or region name, e.g. "paarl" or "cape town". Leave out for every area.

Output parameters:

- `areas` (array)
- `message` (string)
- `source` (string)
- `total` (number): How many areas match, before the cap on this list.
- `truncated` (boolean)

### `get_business` (~222 tokens)

Get a 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). For one business already found; to look for businesses use search_local_businesses, and for prices use get_price_list. Takes the id from a search_local_businesses result. An unknown or malformed id returns an error ("WRDO has no public business with that id"), not an empty page. Never a phone number or email.

Input parameters:

- `id` (string, required): A WRDO business id (lbiz_…), copied from the "id" of a search_local_businesses result. Ids are not guessable; an unknown id returns an error.

Output parameters:

- `address` (string)
- `area` (string)
- `category` (string)
- `description` (string)
- `facebook_url` (string)
- `hours` (array)
- `id` (string)
- `last_checked`
- `menu_url` (string)
- `name` (string)
- `open_now`: Open right now in SAST from the hours above; null when hours are missing or unreadable.
- `page_url` (string)
- `reviews` (object): WRDO's own reviews only (never copied from Google or any other site).
- `source` (string)
- `start_url`
- `verified` (boolean)
- `website` (string)

### `start_request` (~232 tokens)

Start a request in WRDO

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. The result is a plain wa.me link with the request already typed in; it is not stored, has no token and does not expire. Nothing is sent or saved until the person opens it and sends the message. "what" is required; business_id is optional and must come from search_local_businesses (an unknown id returns an error).

Input parameters:

- `business_id` (string): A WRDO business id (lbiz_…), copied from the "id" of a search_local_businesses result. Ids are not guessable; an unknown id returns an error.
- `what` (string, required): What the person needs: a kind of business or service ("plumber", "pizza") or a business name.
- `when` (string): When they want it, in their words, e.g. "Saturday morning".

Output parameters:

- `message` (string)
- `next_step` (string)
- `start_url` (string)
- `status` (string)

### `get_price_list` (~203 tokens)

Get a 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. For a business already found (has_price_list is true in search_local_businesses); it is not a search and gives no business details (use get_business). Takes the id from a search_local_businesses result. An unknown or malformed id returns an error ("WRDO has no public business with that id"); a known business with no list returns empty sections. Never a phone number or email.

Input parameters:

- `id` (string, required): A WRDO business id (lbiz_…), copied from the "id" of a search_local_businesses result. Ids are not guessable; an unknown id returns an error.

Output parameters:

- `business`
- `item_count` (number)
- `message` (string)
- `page_url`
- `price_note` (string)
- `prices_confirmed` (boolean)
- `sections` (array)
- `source` (string)
- `truncated` (boolean)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/za-co-wrdo-wrdo/api#diagnostics

## Score history

- 2026-11-04: 76
- 2026-11-03: 76
- 2026-11-02: 76
- 2026-11-01: 75
- 2026-10-31: 75
- 2026-10-30: 74
- 2026-10-29: 74
- 2026-10-28: 73
- 2026-10-27: 73
- 2026-10-26: 72
- 2026-10-25: 72
- 2026-10-24: 71
- 2026-10-23: 71
- 2026-10-22: 70
- 2026-10-21: 70
- 2026-10-20: 69

## Common questions

### What is the WRDO MCP server?

WRDO is an MCP server listed in the public MCP registry as za.co.wrdo/wrdo. Local businesses, menus and price lists in Cape Town and the Western Cape; start a request in WRDO. This page covers its hosted endpoint (https://api.wrdo.co.za/mcp).

### Is the WRDO MCP server safe to use?

WRDO scores 76 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the WRDO MCP server expose?

WRDO exposes 6 tools: search_local_businesses, list_categories, list_areas, get_business, start_request, get_price_list. Their descriptions and schemas cost roughly 1,437 tokens of context every time the server is loaded.

### Does the WRDO MCP server require authentication?

No. We connected to WRDO without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the WRDO MCP server still maintained?

WRDO is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://api.wrdo.co.za/mcp
- Repository: https://github.com/wrdo-development/wrdo-mcp-connector
- Website: https://wrdo.co.za/support/mcp
- Changelog RSS feed: https://verifymcp.io/servers/za-co-wrdo-wrdo/api.xml
- Changelog JSON feed: https://verifymcp.io/servers/za-co-wrdo-wrdo/api.json
- HTML version of this page: https://verifymcp.io/servers/za-co-wrdo-wrdo/api
