TravelCharika
Server Details
When to go and where to book: 87 places scored month by month from measured weather.
- Status
- Healthy
- Uptime
- 100.0% over 29 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 9 tools
Most tools target clearly different questions: search_places for lookup, best_months for one place's year, where_to_go for a month's shortlist, things_to_do for sights, how_to_get_there for transport, country_facts for practicalities. The main overlap is between activities and where_to_go (both filter places by activity and month) and, to a lesser degree, booking_links vs how_to_get_there's airline booking pages. The descriptions explicitly cross-reference each other (e.g. 'For one place's twelve months, use best_months'), which resolves most confusion.
All names are lowercase snake_case, so the surface looks uniform. However the style mixes noun phrases (activities, events, country_facts, booking_links) with verb/query phrases (search_places, where_to_go, how_to_get_there), which is a minor inconsistency rather than a readability problem.
Nine tools for a travel-guide domain is well-scoped: discovery, month verdicts, activities, events, sights, transport, booking, country facts, and search each earn a slot. No tool appears redundant enough to drop.
The surface covers the full trip-planning lifecycle from search through verdicts, activities, events, sights, transport, booking and country practicalities, with sensible CRUD-free read semantics. Gaps remain: there is no accommodation/hotel search or comparison tool, and no generic place-overview tool beyond what best_months and things_to_do incidentally return.
Available Tools
9 toolsactivitiesActivities by monthARead-onlyIdempotentInspect
Which places are good, or fair, for an activity in a month, as the site's activity pages say it: hiking (dry days of 10–27 °C), the beach and sea (warm dry days, a warm and calm sea), skiing (deep snow on the ski area's own slopes while its lifts run) or the northern lights (long dark nights under the auroral oval; cloud is not counted, so a good month is no forecast). The most visited first, each with the figure its month was decided on, and the activity's rules and sources in the site's own words. Without a month, how many places are good and fair in each month of the year. A place under travel advice is never listed.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | At most this many places, the most visited first. | |
| month | No | A month: 1 to 12, or its name ("December", "dec"). Optional: without it, each month's count. | |
| activity | Yes | hiking, beach (the beach and sea), skiing or northern-lights. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world. The description adds genuine behavioral context beyond them: ranking is by visitation, each result carries the figure its month was decided on, cloud is deliberately excluded for northern-lights, and places under travel advice are never listed. That last constraint is a real inclusion rule not present in structured data.
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?
The content is dense and largely earned, but it is delivered as one sprawling sentence-chain with parentheticals that is hard to parse. Front-loading is weak; the core behavior (month vs no-month) is buried mid-paragraph rather than stated up front.
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 does the work of explaining what is returned (ranked places with the deciding figure, plus rules and sources). Combined with the annotations covering safety, this is nearly complete; only explicit sibling routing is missing.
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% so the baseline is 3, and the description exceeds it: it elaborates what each activity enum value means (dry days of 10–27 °C, warm calm sea, deep snow with running lifts), clarifies that an absent month yields per-month counts, and confirms limit selects the most-visited first.
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 states a specific function: ranking places by whether a given activity's month is good or fair, with rankings by visitation. It defines the four activities and their criteria clearly. It does not name or contrast with siblings like best_months or where_to_go, so it is clear but not sibling-differentiated.
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 rather than stated: with a month you get ranked places, without it you get per-month counts. There is no explicit when-to-use or when-not-to-use guidance versus alternatives such as best_months or where_to_go, which an agent would need to disambiguate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
best_monthsWhen to goARead-onlyIdempotentInspect
When to go to one place: TravelCharika's verdict for each of the twelve months (sweet spot, good, ok or avoid) with its reason, scored from ten years of measured climate and the public holidays that crowd it; the typical daytime high, rainy days (what counts as one is in the answer's rainy_days_are: days with at least 1 mm of rain, as a weather station counts them), humidity and sunshine of each month; the sweet spot; and the verdict in one sentence, as the place's page says it. A busy month is a crowded one, not a bad one; crowds gives the busiest and quietest months as the page's graph of how busy it gets shows them, and how that is measured. Given a month, that month alone, as its own page has it: the verdict and its reason, the high and the low, the afternoon's feels-like high, rainy days, sunshine, daylight, the crowd score, the public holidays that fall in it with their dates, what to pack, and the month's page. Given a departure city, how far the place is from it. A place under travel advice is answered with the advice first, as its page shows it. Not a forecast: every figure is a ten-year average.
| Name | Required | Description | Default |
|---|---|---|---|
| month | No | A month: 1 to 12, or its name ("December", "dec"). Optional: that month alone, in more detail. | |
| place | Yes | A place TravelCharika covers: its id from search_places ("bali") or its name ("Bali", "Da Nang", "Ubud"). | |
| from_city | No | One of TravelCharika's departure cities, by its airport code ("DEL", "LON") or its name ("Delhi", "London", "Bombay"). Optional: the answer then says how far the place is from it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare read-only, idempotent, closed-world behavior, and the description adds genuinely non-obvious context: every figure is a ten-year average, not a forecast, and a busy month is crowded rather than bad, with crowds measured per the page's graph. It doesn't cover latency, coverage limits, or error behavior for unknown places, which is why it stops short of 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?
The core purpose is front-loaded, but the body is a long semicolon-chained run-on that mixes return-value inventory, definitions, and mode switching into single sentences. Every clause carries information, yet the packaging makes it harder to parse than it needs to be.
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 carries the return-shape burden and does so thoroughly, enumerating what each mode returns and even defining rainy_days_are. It omits failure behavior for unsupported places and the relationship to sibling tools, leaving minor gaps for a three-parameter tool.
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%, so the baseline is 3, but the description adds real semantics: month produces a distinct expanded response (high/low, feels-like, daylight, crowd score, holidays with dates, what to pack), and from_city adds a distance dimension. That goes beyond restating the schema's own one-liners.
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?
It states a specific verb and resource – TravelCharika's month-by-month verdict on when to visit one place – and spells out what the verdict contains (sweet spot, good, ok, avoid, reasons, climate figures). It never names a sibling, so an agent can't tell from the text alone whether where_to_go or events is the better fit for a broader or date-specific query.
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?
It explains the modifier-driven modes clearly: 'Given a month, that month alone' and 'Given a departure city, how far the place is from it'. What's missing is any exclusion guidance about when to prefer where_to_go or events instead of this tool, so the routing logic against siblings is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
booking_linksWhere to bookARead-onlyIdempotentInspect
Where to book a trip to one place, as the place's page shows it to that reader: the booking sites people in the reader's own country use, in the order they know them (flights, a room, things to do, car hire, travel insurance, an eSIM for data), and the brands to book with directly (the airlines Wikipedia's airport articles show flying the route, hotel groups and luxury houses with a hotel there, car renters with a counter in its country), each address filled in for the place and the route. No address carries dates: each site opens on its own search. Some sites pay TravelCharika a commission, which never decides whether or where one is listed; show the result's disclosure with the links, and mark the ones that pay (paid) as "Ad".
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Only this kind of row: flights, airline, stay, direct (hotel groups), luxury, do (things to do), car, rental (car renters), insurance or esim. Every kind if left out. | |
| place | Yes | A place TravelCharika covers: its id from search_places ("bali") or its name ("Bali", "Da Nang", "Ubud"). | |
| from_city | No | One of TravelCharika's departure cities, by its airport code ("DEL", "LON") or its name ("Delhi", "London", "Bombay"). Where the reader flies from: needed for flights and airlines, and gives their country and currency. | |
| reader_country | No | Where the reader lives, as a two-letter ISO 3166 code ("GB", "IN") or an English name: whose sites to list. Taken from from_city when left out. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses substantive behavior: no address carries dates (each site opens its own search), sites pay commission that never affects listing, the disclosure must be shown, and paying entries must be marked `paid` as 'Ad'. That is exactly the kind of monetization and output-handling context an agent cannot get from structured fields.
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?
The purpose is front-loaded, which is good, but the body is a single dense run-on sentence packing categories, direct-booking brands, and monetization rules together. Information density is high but readability suffers; a few sentences would have been clearer without losing content.
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 carries the return-content burden and does so well, specifying categories, ordering, per-link filling for place and route, and the paid/Ad marking. It stops short of describing result structure or any pagination/limit behavior, but for a read-only link-list tool this is nearly complete.
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 description coverage is 100%, so every parameter is already documented in the schema, setting a baseline of 3. The description adds only marginal semantics (from_city yields the reader's country and currency, reader_country defaults from it) and largely restates the category ordering already covered by the `kind` enum.
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 states a specific resource (booking links for one place, ordered by category and tailored to the reader's country) and a clear scope, which distinguishes it from siblings like how_to_get_there or activities. The framing 'as the place's page shows it to that reader' is slightly indirect, but an agent can still tell what it returns without opening the schema.
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 rather than stated: the tool is for getting where-to-book links once you have a place, and from_city is noted as needed for flights/airlines. There is no explicit when-not-to-use or named alternative among the siblings, so the routing guidance is only inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
country_factsBefore you goARead-onlyIdempotentInspect
What to know about a country before going, as TravelCharika prints it: the currency, plug types and voltage, which side of the road they drive on, how expensive it is against the United States, the UK Foreign Office's travel advice with its link -- and beside it the US State Department's and Global Affairs Canada's, each in its own words with its level and link, for a reader from those countries -- and the places the site lists there with their best months. Then on arrival, put together by hand with its sources and the day it was checked: the ride-hailing, map and messaging apps people there use, how people pay (and whether India's UPI works for a visitor from India), each place's transit card, tipping, and the emergency numbers; and the UK Foreign Office's health page for it. Given the reader's passport, the visa line the site's pages show for it: from official lists only, with the list, its address and the day it was read, or plainly no answer where those lists say nothing for that passport. A guide, not advice: the official pages decide.
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | A two-letter ISO 3166 code ("ID"), an English name ("Indonesia") or a place TravelCharika covers ("Bali"), which answers for its country. | |
| passport | No | Optional: the reader's passport, as a two-letter ISO 3166 code ("IN", "GB"), the country's English name or its people's ("Indian", "British"): the answer then gives the visa line for it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since there is no output schema, the description performs a crucial behavioral role by detailing the *nature* of the returned data (e.g., currency, plug types, visa status, and local app recommendations). This transparency is essential for an AI to manage user expectations.
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?
The description is extremely long and dense. While every sentence is packed with information, the massive volume makes it poor in terms of conciseness and readability, requiring significant cognitive effort from the AI to parse.
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?
Given the lack of an output schema for a highly complex, multi-faceted data retrieval tool, this description is exceptionally complete. It anticipates nearly every question a user might have about the data's breadth and depth.
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 description adds value by clarifying the utility of the optional 'passport' parameter—that it is specifically used to pull visa lines. It also provides valuable semantic examples, such as using 'Bali' as a valid input for the 'country' parameter.
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 purpose is clearly to provide comprehensive travel and lifestyle facts about a country, aligning with the 'TravelCharika' brand. While verbose, it is unambiguous regarding the scope of information provided to the user.
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?
The description implicitly defines this as a foundational 'before you go' tool, which correctly sets it apart from the action-oriented siblings listed (e.g., booking or activities). It establishes a clear context for pre-trip research.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eventsBig eventsBRead-onlyIdempotentInspect
The big events that fill a town -- festivals, carnivals, Christmas markets, races -- at the places TravelCharika lists, from this month on for a year: in one month, at one place, or all of them. Each with its dates as the site states them (confirmed by its own site; "expected" where they follow a rule its site has not yet confirmed; or when it usually falls), what it is, any closures its organiser names, its own site, and, given a departure city, how far it is from there in the site's words ("about 2h 05m by air from London"). A place under travel advice has none listed.
| Name | Required | Description | Default |
|---|---|---|---|
| month | No | A month: 1 to 12, or its name ("December", "dec"). Optional: only that month's events. | |
| place | No | A place TravelCharika covers: its id from search_places ("bali") or its name ("Bali", "Da Nang", "Ubud"). Optional: only that place's events. | |
| from_city | No | One of TravelCharika's departure cities, by its airport code ("DEL", "LON") or its name ("Delhi", "London", "Bombay"). Optional: how far each event is from there. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), so the bar is lower, and the description adds real context on top: the date-confidence vocabulary ('confirmed by its own site', 'expected', 'when it usually falls'), the travel-advice coverage gap, and the distance computation when from_city is supplied. It stops short of describing result ordering or pagination, but the freshness/confidence semantics are genuinely valuable.
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?
The information is dense and non-redundant, and the core purpose does lead the (single, sprawling) sentence. But the run-on structure with nested em-dashes, quoted fragments, and semicolon lists is hard to parse, and return-value details are bundled into the same breath as the scope statement rather than separated. It is information-rich but poorly structured.
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 and no nested objects, the description must convey what comes back, and it largely does: dates with confidence labels, what the event is, organiser-named closures, the event's own site, and distance from a departure city. The remaining gap is operational detail such as result limits or ordering, but for a read-only three-optional-filter tool this is close to complete.
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 description coverage is 100%, so the schema already documents month, place, and from_city as optional filters, and the description's 'in one month, at one place, or all of them' largely restates that. It does add one useful nuance for from_city, that the distance is returned 'in the site's words', but overall it does not extend much beyond the schema. Baseline 3 is correct.
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 opening clause names a concrete resource and its scope: 'The big events that fill a town -- festivals, carnivals, Christmas markets, races -- at the places TravelCharika lists, from this month on for a year.' An agent can tell this returns events, not general activities. However, it never differentiates itself from siblings like activities, where_to_go, or best_months, which a reader must infer from the resource alone.
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?
The description explains the three filtering shapes ('in one month, at one place, or all of them') but gives no when-to-use guidance relative to alternatives, no when-not guidance, and no mention of sibling tools. The only exclusions are coverage facts ('A place under travel advice has none listed'), not usage instructions. An agent has to guess whether this or activities is the right call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
how_to_get_thereHow to get thereARead-onlyIdempotentInspect
How to get from one of TravelCharika's departure cities to a place: the airlines that fly the route all year by Wikipedia's airport articles, nonstop or with the hub they change at and between which airports, each with its own booking page (the ones that pay marked, with the disclosure); the ways a record has (a year-round nonstop and its airlines, a road's distance and driving time); the distance and an estimated flight time; the airports that serve the place; and Wikivoyage's "Get in" for it where the site quotes one. Then arriving and getting around, as the place's page has them: the rail lines that stop at its airport, as OpenStreetMap maps them; the city's transit card or contactless line and the ride-hailing, map and messaging apps people there use, put together by hand with its sources and the day it was checked; Wikivoyage's "Get around"; the ferry crossings near it; and the place in the map apps. No timetable and no prices: the flight searches in booking_links find the day's flights. From a city that is not one of the departure cities, the place's own side and the departure cities nearest it; for a country, its most visited place, the others named.
| Name | Required | Description | Default |
|---|---|---|---|
| place | Yes | A place TravelCharika covers: its id from search_places ("bali") or its name ("Bali", "Da Nang", "Ubud"). | |
| from_city | Yes | One of TravelCharika's departure cities, by its airport code ("DEL", "LON") or its name ("Delhi", "London", "Bombay"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower. The description adds genuinely useful provenance: Wikipedia airport articles, OpenStreetMap rail lines, Wikivoyage 'Get in/Get around', hand-assembled transit data 'with its sources and the day it was checked', and affiliate marking with disclosure. That freshness and sourcing context is real value beyond annotations.
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?
Essentially one enormous semicolon-chained sentence with parenthetical nesting, far past the point of readability. Content is not front-loaded into scannable segments; the agent must wade through clauses to find the key constraints. The information is present but the structure actively impedes use.
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?
There is no output schema, and the description compensates by enumerating what comes back (routes, airlines, distances, flight time, airports, transit cards, apps, ferries, map links). Missing details like freshness guarantees or result shape are minor for a read-only lookup. Coverage is strong for a tool of this complexity.
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% with only two parameters, so the schema carries the semantics. The description adds only that a non-departure city still works and that country inputs resolve to the most-visited place — marginal but non-zero added meaning. Baseline 3 is appropriate.
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 opening clause gives a specific verb+resource ('How to get from one of TravelCharika's departure cities to a place') and then enumerates the concrete content types (airlines, flight time, airports, getting around). The purpose is discernible and clearly distinct from siblings, but the run-on structure forces the agent to parse a single sprawling sentence to extract it.
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?
It explicitly excludes the flight-search use case ('No timetable and no prices: the flight searches in booking_links find the day's flights'), routing that need to a named sibling. It also handles the edge case of a non-departure city ('the place's own side and the departure cities nearest it'). No guidance on use vs. activities or where_to_go, but the primary alternative is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_placesSearch TravelCharikaARead-onlyIdempotentInspect
Find what TravelCharika has a page for, by name: places, countries, regions, kinds of place ("beaches"), activities ("skiing"), seasons, routes, departure cities, months and holidays. Matches as the site's own search box does: accents ignored, a name a place is also known by ("Bombay"), one letter off ("Marrakesh"), and a month among the words ("bali in may") gives that month's page. Returns each match's kind, name, the id the other tools take, and its page. A place under travel advice is found by its name with the advice beside it (advice), and is in no list. Call it first whenever you have a name rather than an id; nothing matching gets the nearest names instead.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | At most this many matches. | |
| query | Yes | What to look for: a place, country, region, kind of place, activity, city to fly from, or a phrase such as "bali in may" or "beaches december". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, idempotent, non-destructive), and the description adds substantial behavior beyond them: accent-insensitive matching, alias support ('Bombay'), one-letter-off fuzziness ('Marrakesh'), month-phrase parsing ('bali in may'), the returned fields, and the special travel-advice case where a place is found by name but appears in no list. This is rich, non-obvious operational detail.
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?
The description is front-loaded with what it searches, followed by matching rules, return shape, edge cases, and usage guidance in a logical order. It is dense and somewhat run-on in the middle, but nearly every clause carries distinct information; nothing is padding.
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 steps in to specify the return fields (kind, name, id, page). It also covers matching behavior, the travel-advice special case, and the no-match fallback, so an agent has everything needed to invoke and interpret results correctly.
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%, so baseline is 3, but the description adds real query semantics: it explains that the query accepts not just names but activities, seasons, cities, and natural-language phrases, and that matching mirrors the site's own search box. It does not discuss the 'limit' parameter, leaving that to the 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?
States a specific verb (find/search) and resource (places) and enumerates the breadth of what is searchable: places, countries, regions, kinds of place, activities, seasons, routes, departure cities, months, holidays. It clearly distinguishes itself from siblings like country_facts, activities, and where_to_go by positioning itself as the name-based entry point.
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?
Explicitly routes the agent: 'Call it first whenever you have a name rather than an id,' and notes that the returned id is 'the id the other tools take,' implying the sibling tools consume ids. It also states the fallback behavior when nothing matches ('gets the nearest names instead'), so the agent knows how to react to an empty result.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
things_to_doThings to doARead-onlyIdempotentInspect
What to see and do at one place, as its page's "Things to do" says it: five to seven sights, the ones most read about first (how often each one's Wikipedia article is read), each with one line in Wikivoyage's words, or Wikidata's description, and the article it is quoted from. Then the page's one row of tours and tickets: the things-to-do sites people in the reader's own country use, each opened on the place, with no dates; some pay TravelCharika a commission, which never decides whether or where one is listed; show the result's disclosure with the links, and mark the ones that pay (paid) as "Ad". Given a month, that month's verdict and its page. A place under travel advice is answered with the advice first, as its page shows it. Not opening hours, prices or a day-by-day plan.
| Name | Required | Description | Default |
|---|---|---|---|
| month | No | A month: 1 to 12, or its name ("December", "dec"). Optional: that month's verdict, and its page. | |
| place | Yes | A place TravelCharika covers: its id from search_places ("bali") or its name ("Bali", "Da Nang", "Ubud"). | |
| from_city | No | One of TravelCharika's departure cities, by its airport code ("DEL", "LON") or its name ("Delhi", "London", "Bombay"). Optional: the city the trip starts from, which gives the reader's country where reader_country is left out. | |
| reader_country | No | Where the reader lives, as a two-letter ISO 3166 code ("GB", "IN") or an English name: whose sites to list. Taken from from_city when left out. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint, idempotentHint, openWorldHint=false), yet the description still adds real behavior: ranking by Wikipedia article readership, one-line quotes attributed to Wikivoyage/Wikidata, reader-country-based site selection, travel-advice precedence, and the requirement to surface the commission disclosure and label paid entries as 'Ad'. That is substantive context beyond the annotations, though it is buried in run-on prose.
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?
Nearly the entire definition is one sprawling sentence chain with the key return-shape facts (sights, tickets, month verdict, advice) scattered mid-stream. It is not front-loaded and requires re-reading to extract the contract; the disclosure/'Ad' labeling rule in particular is tacked on rather than structured.
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 does the necessary work of describing what comes back: ranked sights with one-line quotes and source articles, a tours/tickets row tied to reader country, and the month verdict plus page. It also states exclusions and the travel-advice override, leaving only minor gaps (ordering/format of the tours row).
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 description coverage is 100%, so the schema already documents month, place, from_city and reader_country, including the from_city→reader_country fallback. The description restates the same relationships (month gives verdict and page; reader country decides whose sites are listed) without adding new syntax or edge-case semantics. 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?
The description states the concrete resource and its parts: five to seven top sights ranked by Wikipedia readership, a row of tours/tickets, and a month verdict. It also carves out scope with 'Not opening hours, prices or a day-by-day plan,' which separates it from where_to_go/best_months somewhat. However, it never names the overlapping siblings (activities, booking_links), so the boundary must be inferred.
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 rather than stated: 'Given a month, that month's verdict and its page' and 'A place under travel advice is answered with the advice first' hint at when the optional month matters and how the advice case behaves. There is no explicit 'use X instead when...' routing against activities or booking_links, so the agent must guess which sibling to prefer for pure activity lists or raw booking links.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
where_to_goWhere to goARead-onlyIdempotentInspect
Where is good to go in a month, as the site's list of places answers it: every place open that month, the most visited first (how often travellers look it up; the weather never moves a place up or down), narrowed by the filters given -- a region, a kind of place, what to do (hiking, the sea, snow), the weather in words, quiet only, and from a departure city how far (close by, 3 to 6 hours' flying, long-haul). Each place comes with its month as its card shows it: the site's label (sweet spot, good or ok), the weather word, the typical daytime high, rainy days, busy or quiet, and how far from the city given; with how many places fit, and the same list on the site with its filters set. A place under travel advice is never listed. For one place's twelve months, use best_months.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Optional: a kind of place, by name or id ("Beaches", "mountains", "islands"); several separated by commas for any of them. | |
| limit | No | At most this many places, the most visited first. | |
| month | Yes | A month: 1 to 12, or its name ("December", "dec"). | |
| quiet | No | Optional: true for quiet places only, leaving out the ones busy that month. | |
| region | No | Optional: a region, by name or id ("Europe", "south-asia"); several separated by commas for any of them. | |
| how_far | No | Optional, with from_city: close (a road of up to four hours, or up to three hours' flying), medium (3 to 6 hours' flying) or far (long-haul). | |
| weather | No | Optional, any of them: the weather in words, each a band of the month's average daily high -- hot 30 °C or more, warm from 23, mild from 15, cool from 8, cold below 8. | |
| activity | No | Optional, any of them: hiking (a month good for walking all day), sea (the beach and sea good or fair) or snow (a ski place whose lifts run that month). | |
| from_city | No | One of TravelCharika's departure cities, by its airport code ("DEL", "LON") or its name ("Delhi", "London", "Bombay"). Optional: each place then says how far it is, and how_far can narrow the list by it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorldHint=false, so the safety profile is covered. The description adds genuinely non-obvious behavior: places with travel advice are never listed, and ranking is by traveller lookup frequency with weather explicitly not influencing order.
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?
It is front-loaded with purpose, but delivered as one long dash-and-parenthesis-laden run-on that is hard to parse, and portions (weather band values, distance definitions) repeat the schema verbatim. Every idea is relevant, yet the structure costs readability.
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 compensates by enumerating the returned card fields (label, weather word, daytime high, rainy days, busy/quiet, distance), the match count, and the site link. Combined with the exclusion rule and the sibling pointer, nothing needed to call it correctly is missing.
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 description coverage is 100%, so the schema already documents all nine parameters, including weather bands and how_far distances. The description largely restates those definitions ("hot 30 °C or more", "3 to 6 hours' flying") rather than adding syntax or defaults beyond the schema; 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 verb and resource (find places good to go in a given month), the ordering (most visited first), and the filter dimensions in one pass. It explicitly distinguishes itself from best_months, so an agent can tell the two apart without opening either schema.
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?
Clearly routes the agent for the main adjacent use case ("For one place's twelve months, use best_months") and describes when the result set applies (places open that month). It does not differentiate against other plausible siblings such as search_places or activities, so it stops short of full alternative coverage.
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.
3 tool updates
- Changed
best_months1 field changed- added
Input schema / properties / monthAdded value: +{ + "description": "A month: 1 to 12, or its name (\"December\", \"dec\"). Optional: that month alone, in more detail.", + "type": [ + "integer", + "string" + ] +}
- Changed
country_facts2 fields changed- changed
Input schema / properties / country / descriptionPrevious value: -"A two-letter ISO 3166 code (\"ID\") or an English name (\"Indonesia\")."New value: +"A two-letter ISO 3166 code (\"ID\"), an English name (\"Indonesia\") or a place TravelCharika covers (\"Bali\"), which answers for its country." - added
Input schema / properties / passportAdded value: +{ + "description": "Optional: the reader's passport, as a two-letter ISO 3166 code (\"IN\", \"GB\"), the country's English name or its people's (\"Indian\", \"British\"): the answer then gives the visa line for it.", + "maxLength": 60, + "minLength": 2, + "type": "string" +}
- Added
things_to_do
5 tool updates
- Added
activities - Changed
best_months1 field changed- changed
Input schema / properties / from_city / descriptionPrevious value: -"One of TravelCharika's departure cities, by its airport code (\"DEL\", \"LON\") or its name (\"Delhi\", \"London\", \"Bombay\"). Optional; fares are paused, so it changes nothing for now."New value: +"One of TravelCharika's departure cities, by its airport code (\"DEL\", \"LON\") or its name (\"Delhi\", \"London\", \"Bombay\"). Optional: the answer then says how far the place is from it."
- Added
events - Changed
search_places1 field changed- changed
Input schema / properties / query / descriptionPrevious value: -"What to look for: a place, country, region, kind of place, city to fly from, or a phrase such as \"bali in may\" or \"beaches december\"."New value: +"What to look for: a place, country, region, kind of place, activity, city to fly from, or a phrase such as \"bali in may\" or \"beaches december\"."
- Added
where_to_go
1 tool update
- Changed
best_months1 field changed- changed
Input schema / properties / from_city / descriptionPrevious value: -"One of TravelCharika's departure cities, by its airport code (\"DEL\", \"LON\") or its name (\"Delhi\", \"London\", \"Bombay\"). Optional: for that city's fares."New value: +"One of TravelCharika's departure cities, by its airport code (\"DEL\", \"LON\") or its name (\"Delhi\", \"London\", \"Bombay\"). Optional; fares are paused, so it changes nothing for now."
1 tool update
- Removed
compare_places
6 tool updates
- First observed
best_months - First observed
booking_links - First observed
compare_places - First observed
country_facts - First observed
how_to_get_there - First observed
search_places
Related MCP Connectors
Where is it sunny? Monthly sunshine scores, temps, rain, UV and sea temp for 3,833 destinations.
Best-time-to-book verdicts, live last-minute hotel deals, and city price calendars, from data.
Weather decisions for outdoor plans: should I go, when, what to wear, what you will meet en route.
Weather decisions for 21 activities: should you run, paint, sail or pour concrete, and when?
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides climate data for 3,833 destinations including sunshine scores, temperatures, rainfall, and sea temperature, enabling users to find sunny destinations and compare climates via three tools.3MIT
- AlicenseAqualityBmaintenanceProvides weather forecasts and climate history via Open-Meteo, including daily and hourly outlooks, typical past weather for future trip dates, location disambiguation, and ranked recommendations for pleasant outdoor days.5MIT
- AlicenseAqualityDmaintenanceReal-time weather, forecasts, astronomy, marine data for 200+ countries1113 npm1MIT
- AlicenseNot gradedqualityDmaintenanceProvides real-time weather information and multi-day forecasts for global locations using city names, coordinates, or ZIP codes. It includes tools for current conditions, forecasting, and weather summaries designed for activity planning.6 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.