Garden Route Specialist
Server Details
Garden Route travel MCP - routes, accommodation, and local guides
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2024-11-05
- URL
- Repository
- tyronplaatjies74-wq/garden-route-specialist-api
- GitHub Stars
- 0
TDQS
Scored across 3 tools
The three tools target clearly different outputs: a built itinerary, per-town reference knowledge, and API usage stats. There is mild overlap because both generate_itinerary and get_knowledge surface activities and prices, but the descriptions make the boundary (assembled plan vs. raw town lookup) reasonably clear.
All three names follow a clean verb_noun pattern: generate_itinerary, get_knowledge, get_stats. Snake_case is used uniformly, with no mixed conventions or vague verbs.
Three tools is lean but each has a distinct role, and the heavy lifting is concentrated in a well-parameterised itinerary generator. It is slightly thin for a destination-planning server, and get_stats is a meta utility rather than a domain tool.
Core planning (itinerary + town knowledge) is covered, but there is no way to list available towns, adjust or regenerate a single day, or search activities/transport independently of a full itinerary build. Agents can work around these gaps by iterating get_knowledge, but the surface is noticeably partial.
Available Tools
3 toolsgenerate_itineraryAInspect
Build a day-by-day Garden Route itinerary (west to east, no repeated activities) with per-day costs, a budget check, dietary verification, safety notes and transport estimates. Activities within a day are kept walkable or a short costed hop apart. If a town has nothing left or open (e.g. rain), the day becomes a trip to the nearest hub. Picks, prices and whale season depend on the month, so ask the traveller for their travel month first (if omitted, the current month is assumed and flagged). Costs are in South African rand; times and fares are estimates.
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | Trip length in days, 1-30. | |
| seed | No | Optional. Repeat a shuffled result. | |
| debug | No | Include debug info. | |
| month | No | Month of travel, e.g. 'July' or 7. Ask the traveller; do not guess. If omitted, the current month is assumed and flagged in warnings. Changes activity picks, hostel prices and whale-watching. | |
| towns | Yes | Towns to visit. Valid: mossel bay, george, wilderness, knysna, plettenberg bay, tsitsikamma. | |
| dietary | No | vegan, vegetarian or halal. Evening meals are marked verified or NOT verified. | |
| shuffle | No | Vary the picks between calls. | |
| budget_max | No | Maximum spend per day in rand, all-in (dorm + food allowance + activities), excluding inter-town transport. | |
| rainy_days | No | Optional. Day numbers (1-based) the traveller wants rain-proofed with indoor/covered options or a hub trip, e.g. [2, 3]. | |
| family_mode | No | Prefer family-friendly activities and private/family rooms. | |
| travel_style | No | One of: backpacker, adventure, chill, family, foodie. Default: backpacker. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden and does well: it states ordering constraints (west to east), no-repeat activities, walkable clustering, rainy-day hub fallback, month-dependent picks/prices/whale season, ZAR currency, and that times and fares are estimates. It omits whether the tool has side effects (e.g. that it books nothing) and any auth/rate-limit context, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then rule/behavior details, then currency and estimation caveats. Four tight sentences with little waste, though the month instruction partially restates the schema's month description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter generator with no output schema, the description conveys what the output contains (per-day plans, costs, budget check, dietary verification, safety notes, transport estimates) and how warnings work. It does not specify the output structure (e.g. JSON shape), but an agent has enough to call it and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the baseline is 3; the description adds meaning beyond the schema by explaining cross-parameter behavior: month changes activity picks, hostel prices and whale watching; budget is all-in per day; rainy days trigger hub trips; dietary drives verified/NOT verified marking. A few statements (month handling, budget definition) duplicate schema text, so it is not a full 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Starts with a specific verb and resource ('Build a day-by-day Garden Route itinerary') and immediately names the defining constraints: west-to-east, no repeated activities, with per-day costs, budget check, dietary verification, safety notes and transport estimates. This is unmistakably different from the sibling tools get_knowledge and get_stats, which are read-only data lookups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit operational guidance: ask the traveller for their travel month first and note that the current month is assumed and flagged if omitted. It also describes the fallback when a town has nothing open (rain → nearest hub trip). It does not provide when-not-to-use guidance, but the sibling tools are unrelated enough that explicit alternatives are not necessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_knowledgeAInspect
Local knowledge for one Garden Route town: free/paid activities, hidden gems, dorm prices with booking links, evenings, safety tips and NSRI links.
| Name | Required | Description | Default |
|---|---|---|---|
| town | Yes | One of: mossel bay, george, wilderness, knysna, plettenberg bay, tsitsikamma. Aliases like 'plett' and 'brenton-on-sea' work. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it does reasonably well: the 'get'/'Local knowledge' framing implies a non-mutating lookup, and enumerating returned content (booking links, NSRI links, dorm prices) substitutes for a missing output schema. It omits any note on caching, freshness, or failure behavior for an unsupported town.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; scope comes first and the content inventory follows. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup with no output schema, the description is nearly sufficient because it inventories the return contents. Only the response format and behavior for an out-of-list town are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% — the single town parameter already lists every valid value plus alias handling ('plett', 'brenton-on-sea'). The description only restates 'one Garden Route town', adding no format or matching details beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and scope: 'Local knowledge for one Garden Route town', then enumerates exactly what kinds of content come back (activities, hidden gems, dorm prices, evenings, safety tips, NSRI links). The weak verb 'get' is offset by the concrete content list, and the town-level scope distinguishes it from get_stats and generate_itinerary without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the content inventory — an agent can infer this is the reference-lookup tool for a single town versus itinerary planning or statistics. However, it never states when to prefer it over generate_itinerary, nor any preconditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statsBInspect
Usage statistics for this API (call counts, recent calls).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses little beyond the payload contents. It never states that the call is read-only and side-effect free, nor does it describe time window, aggregation granularity, or response shape — all of which matter for a statistics endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the resource first and the concrete contents in a compact parenthetical. There is no filler, hedging, or restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description is the only place a caller can learn what comes back, and it gives only two examples ('call counts, recent calls') without structure, time window, or granularity. It is adequate for a zero-parameter low-risk call but leaves meaningful gaps about the return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case per the rubric. The description's parenthetical does confirm that the metrics are implicitly scoped (call counts, recent calls) rather than requiring arguments, which is consistent with the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('usage statistics') and enumerates the concrete data returned (call counts, recent calls), so the agent knows exactly what resource this surfaces. It offers no differentiation from sibling tools, but the siblings (generate_itinerary, get_knowledge) are unrelated, so the cost of that omission is low.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to reach for get_stats versus the sibling tools, no prerequisites, and no exclusions. The agent must infer entirely from the name that this is a diagnostics/introspection call rather than, say, content retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
generate_itinerary2 fields changed- changed
Input schema / properties / month / descriptionPrevious value: -"Month of travel, e.g. 'July' or 7. Ask the traveller if unknown; do not guess. Changes activity picks, hostel prices and whale-watching."New value: +"Month of travel, e.g. 'July' or 7. Ask the traveller; do not guess. If omitted, the current month is assumed and flagged in warnings. Changes activity picks, hostel prices and whale-watching." - changed
Input schema / requiredPrevious value: -[ - "towns", - "days", - "month" -]New value: +[ + "towns", + "days" +]
1 tool update
- Changed
generate_itinerary4 fields changed- changed
Input schema / properties / budget_max / descriptionPrevious value: -"Maximum spend per day in rand, all-in (dorm + food allowance + activities), excluding transport."New value: +"Maximum spend per day in rand, all-in (dorm + food allowance + activities), excluding inter-town transport." - added
Input schema / properties / monthAdded value: +{ + "description": "Month of travel, e.g. 'July' or 7. Ask the traveller if unknown; do not guess. Changes activity picks, hostel prices and whale-watching.", + "type": "string" +} - added
Input schema / properties / rainy_daysAdded value: +{ + "description": "Optional. Day numbers (1-based) the traveller wants rain-proofed with indoor/covered options or a hub trip, e.g. [2, 3].", + "items": { + "type": "integer" + }, + "type": "array" +} - changed
Input schema / requiredPrevious value: -[ - "towns", - "days" -]New value: +[ + "towns", + "days", + "month" +]
3 tool updates
- First observed
generate_itinerary - First observed
get_knowledge - First observed
get_stats
Related MCP Connectors
Cape Winelands wine farm finder and day-route planner
Bespoke cricket and golf travel. Tour operator and package organiser — you contract with us and we take payment. ABTOT bonded (5718). Not a broker. Darren Gough MBE ambassador & shareholder. Public MCP: list tours (incl. holding), destinations, golf trips, Cape Town experiences, financial protection. Expanding into wider sports travel. No authentication required
Aggregated travel MCP — flights, tours, activities, price checks, visas, and more.
Read-only MCP for Sparkling Tracks European tours: packages, itineraries, pricing, contacts.
Related MCP Servers
- MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for travel program search, comparison, and booking via Yourttoo API, optimized for LLMs with token-saving responses.ISC
- FlicenseNot gradedqualityDmaintenanceAI commerce platform — WooCommerce store products, flights, tours, activities and local transport via MCP. Search, availability and booking tools. No auth for public endpoint.-
- AlicenseAqualityDmaintenanceMCP server for planning routes (hiking, biking, driving, etc.) using the OpenRouteService API. Provides tools to find coordinates, create routes with GPX/PNG/HTML output, search POIs, and compute reachable areas.643 PyPI2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.