WRDO

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

我该使用它吗

质量与安全性

A
描述质量
96%
模式完整度
96%
命名质量
100%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~2,586token 数(工具定义)
~4.4 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 2.02%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

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

远程端点

https://api.wrdo.co.za/mcpstreamable-http

它能做什么

工具清单

工具(5)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢search_local_businesses(what, where, category, has_price_list, max_price_rand, ...)

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.

输入模式

{
  "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#"
}

输出模式

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "area": {
            "type": "string"
          },
          "verified": {
            "type": "boolean"
          },
          "page_url": {
            "type": "string"
          },
          "start_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "has_price_list": {
            "description": "True when WRDO holds a price list or menu for this business (see get_price_list).",
            "type": "boolean"
          },
          "price_from_rand": {
            "description": "Cheapest listed item with a price, in rand; null when no item has a price.",
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "open_now": {
            "description": "Open right now in South Africa (SAST), from the hours on a verified business page; null when unknown.",
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "name",
          "category",
          "area",
          "verified",
          "page_url",
          "start_url",
          "has_price_list",
          "price_from_rand",
          "open_now"
        ],
        "additionalProperties": false
      }
    },
    "source": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "results",
    "source"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢list_categories(where)

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.

输入模式

{
  "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#"
}

输出模式

{
  "type": "object",
  "properties": {
    "where": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "total": {
      "type": "number"
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "group": {
            "type": "string"
          },
          "count": {
            "type": "number"
          }
        },
        "required": [
          "slug",
          "name",
          "group",
          "count"
        ],
        "additionalProperties": false
      }
    },
    "source": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "where",
    "total",
    "categories",
    "source"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢get_business(id)

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.

输入模式

{
  "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#"
}

输出模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "category": {
      "type": "string"
    },
    "area": {
      "type": "string"
    },
    "verified": {
      "type": "boolean"
    },
    "page_url": {
      "type": "string"
    },
    "start_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "last_checked": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "source": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "address": {
      "type": "string"
    },
    "website": {
      "type": "string"
    },
    "facebook_url": {
      "type": "string"
    },
    "menu_url": {
      "type": "string"
    },
    "hours": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "value"
        ],
        "additionalProperties": false
      }
    },
    "open_now": {
      "description": "Open right now in SAST from the hours above; null when hours are missing or unreadable.",
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ]
    },
    "reviews": {
      "description": "WRDO's own reviews only (never copied from Google or any other site).",
      "type": "object",
      "properties": {
        "source": {
          "type": "string",
          "const": "wrdo"
        },
        "count": {
          "type": "number"
        },
        "average_rating": {
          "type": "number"
        },
        "recent": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "rating": {
                "type": "number"
              },
              "comment": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "date": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "rating",
              "comment",
              "date"
            ],
            "additionalProperties": false
          }
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "source",
        "count"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "id",
    "name",
    "category",
    "area",
    "verified",
    "page_url",
    "start_url",
    "last_checked",
    "source"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢start_request(what, business_id, when)

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.

输入模式

{
  "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#"
}

输出模式

{
  "type": "object",
  "properties": {
    "start_url": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "const": "not_booked"
    },
    "next_step": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "start_url",
    "status",
    "next_step",
    "message"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢get_price_list(id)

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.

输入模式

{
  "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#"
}

输出模式

{
  "type": "object",
  "properties": {
    "business": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "category": {
              "type": "string"
            },
            "area": {
              "type": "string"
            }
          },
          "required": [
            "id",
            "name",
            "category",
            "area"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "sections": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "description": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "price_zar": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "duration_min": {
                  "type": "number"
                }
              },
              "required": [
                "name",
                "description",
                "price_zar"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "title",
          "items"
        ],
        "additionalProperties": false
      }
    },
    "prices_confirmed": {
      "type": "boolean"
    },
    "price_note": {
      "type": "string"
    },
    "item_count": {
      "type": "number"
    },
    "truncated": {
      "type": "boolean"
    },
    "page_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "source": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "business",
    "sections",
    "prices_confirmed",
    "item_count",
    "truncated",
    "page_url",
    "source"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

社区

评价此服务器

证据

最近观测

已验证未记录版本5 个工具