Num places
Server Details
Open places, menus, ratings and booking routes in 119 travel destinations. Read-only, no key needed.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2024-11-05
- URL
TDQS
Scored across 9 tools
Each tool targets a fairly distinct need: ranked search (search_places), real-time open filter (open_places), bulk sync (directory_feed), coverage check (list_destinations), detail lookup (place_details), menus, reviews and booking deep links. The one soft boundary is concierge_answer, which is explicitly pitched as 'the whole product in one tool' and therefore overlaps search_places + place_details for natural-language queries. Descriptions do enough work to steer an agent, so overlap is manageable rather than confusing.
All names are snake_case and readable, but the verb convention is inconsistent: get_menu/get_reviews use get_, list_destinations uses list_, while place_details, open_places, search_places, directory_feed, booking_link and concierge_answer are bare noun phrases with no verb. The result is a mixed but not chaotic scheme — an agent can still predict names, but there is no single predictable pattern.
Nine tools is well-scoped for a curated places directory: coverage, search, open-now, detail, menu, reviews, booking link, bulk feed and Q&A each map to a real traveller or integrator workflow. Nothing appears redundant enough to cut, and nothing essential is padded in.
The read-only lifecycle is well covered: discover destinations, search, filter by open status, drill into details, pull menus, ratings and booking links, plus bulk sync for mirroring. Minor gaps remain — no lookup by name/phone or id without a prior search, no multi-place comparison, and booking is deliberately a hand-off rather than a reservation — but no obvious dead ends for the stated purpose.
Available Tools
9 toolsbooking_linkHow to book a placeARead-onlyIdempotentInspect
A booking page for one place with the party size, date and time ALREADY FILLED IN. This does NOT make a reservation and NUM does not hold a table — the traveller completes it on the venue's own platform (OpenTable, Resy, Tock, SevenRooms, Square and others). The response always carries booked: false and mode: "deeplink". You MUST NOT render this as a confirmation, and you MUST NOT tell a traveller a table is held. If the venue has no booking platform the response says so and returns the phone number instead — offer that rather than implying it cannot be visited.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | YYYY-MM-DD. | |
| time | No | HH:MM, 24-hour, local to the venue. | |
| party | No | Number of covers, 1–20. | |
| place_id | Yes | From search_places or open_places. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds context annotations cannot: the response always includes booked=false and mode="deeplink", no inventory is held, and a fallback phone number appears for venues without a platform. Nothing contradicts the readOnlyHint.
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 warning is front-loaded and every sentence is functional, though the platform enumeration (OpenTable, Resy, Tock, SevenRooms, Square and others) and heavy all-caps emphasis add minor noise to an otherwise tight definition.
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 naming the exact response fields (booked: false, mode: "deeplink") plus the no-platform fallback. An agent has everything needed to call it and to interpret the result safely.
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 date/time/party/place_id formats are already documented in the schema. The description only restates that these values are pre-filled into the link, adding no format or constraint detail beyond structured data — the baseline 3 for full coverage.
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 precisely what the tool produces — a pre-filled booking page (deeplink) for one place — and immediately distinguishes it from a reservation-making tool. An agent can tell exactly what it gets back versus what it would get from a real booking action.
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 gives explicit when-to-use framing, explicit when-not-to (do not present as a confirmation, do not claim a table is held), and an alternative path when no booking platform exists (offer the returned phone number instead of implying the venue can't be visited).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
concierge_answerAsk NUM a travel questionARead-onlyInspect
Ask NUM the way a traveller would — "where should we eat tonight near Kata?", "which beach for sunset?" — and get a short concierge answer grounded in NUM's verified directory, plus the places it names as structured data so you can render your own cards. This is the whole product in one tool. It answers about the place asked and NEVER substitutes a different city. If NUM has no coverage there it says so rather than guessing. It does not book, charge, or take personal details — send none. You MUST display the returned attribution.
| Name | Required | Description | Default |
|---|---|---|---|
| near | No | Neighbourhood or hotel area, if known. | |
| language | No | BCP-47 tag for the reply, e.g. "th", "ru". Defaults to the language of the question. | |
| question | Yes | The traveller's question, in their own words. Any language. | |
| destination | No | Where they are, if you know it. Improves grounding. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses important behavior: answers are grounded in a verified directory, the tool never substitutes a different city, it reports lack of coverage rather than guessing, it does not book/charge/collect personal details, and the returned attribution must be displayed. These are concrete behavioral and compliance traits the agent would not know from annotations alone.
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 concrete examples and then layers scope, grounding, and compliance constraints. Despite its length, each sentence carries useful selection or invocation information.
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, but the description explains the return shape: a short concierge answer plus structured data for named places. It also covers attribution requirements and safety constraints, making it complete enough for correct invocation.
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 all four parameters are already documented. The description reinforces that questions should be in the traveller's own words and gives an example of the `near` area, but it does not add substantial semantic detail beyond 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?
The description states a specific verb and resource: ask a natural-language travel question and receive a short concierge answer grounded in NUM's verified directory, including structured place data. It also clarifies scope boundaries (answers about the asked place, never substitutes another city) that make it distinguishable from sibling lookup tools.
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 gives clear usage context: use it for traveller-style questions such as where to eat or which beach to visit, and it explicitly excludes bookings, charges, and personal details. It does not explicitly name alternatives like search_places or place_details, so the when-to-use guidance is strong but not fully comparative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
directory_feedPage through the directoryARead-onlyIdempotentInspect
Bulk, paged sync of every place NUM lists in one destination — free (included in the no-fee free tier; one call returns up to 200 places), for keeping your own copy of the directory current instead of searching it call by call. Ordered by place_id; pass the returned next_cursor back as cursor until it is null. Each item has the search_places fields plus cuisine, lat, lng and booking_platform. Places NUM has positive evidence have closed are excluded; trading: null means not yet checked, NOT closed. Contains no menus, reviews or photos — call get_menu, get_reviews or place_details for those. You MUST display the returned attribution wherever the data is shown.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Places per page: 1–200 with an X-Partner-Key (default 100); without a key, at most 50. | |
| cursor | No | The `next_cursor` from the previous page. Omit for the first page. | |
| destination | Yes | Destination slug from list_destinations, e.g. "los-angeles". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the safety profile (readOnly, idempotent, non-destructive); the description adds substantial context beyond them: closed places are excluded, `trading: null` means unchecked rather than closed, page size caps with and without a partner key, and a mandatory `attribution` display obligation. These are exactly the behavioral and legal traits an agent cannot infer 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?
Front-loaded with the core purpose and every sentence carries information (scope, exclusions, omissions, attribution requirement). It is dense and long-ish, with several clauses chained per sentence, which slightly hurts scannability, but nothing is filler.
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, yet the description compensates fully: it describes the item shape (search_places fields plus cuisine, lat, lng, booking_platform), the `attribution` field and the `next_cursor` field. Combined with the safety annotations, an agent has everything needed to call and consume this tool 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% and the parameter descriptions already explain limit tiers, cursor provenance and destination slugs, so baseline would be 3. The description adds genuine value on top: results are ordered by place_id and the cursor loop terminates when next_cursor is null, which clarifies how `cursor` is actually driven.
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 — "Bulk, paged sync of every place NUM lists in one destination" — and explicitly contrasts it with the sibling search_places ("instead of searching it call by call"). An agent can distinguish it from search_places and place_details without opening any 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?
Gives an explicit when-to-use (keeping your own copy of the directory current), a named alternative it replaces (call-by-call searching), and out-of-scope siblings to route elsewhere (get_menu, get_reviews, place_details for menus/reviews/photos). Pagination is spelled out procedurally: pass next_cursor back as cursor until null.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reviewsRead reviews of a placeARead-onlyIdempotentInspect
A rating SUMMARY for one place, free (included in the no-fee free tier) — no review text and no reviewer identities, ever. Returns external (the public rating and review count the listing carries, with source, the site it was read from) and num_verified: the average, count and 1–5 star distribution of ratings from verified guests — people who booked through NUM and checked in at the venue by scanning its own code. Guests the venue comped or worked with are excluded, and NUM publishes no verified average until a place has 5 such ratings (below that every number is null and note says why). Keep the two numbers separate; do not average them together. You MUST display the returned attribution.
| Name | Required | Description | Default |
|---|---|---|---|
| place_id | Yes | From search_places, place_details or directory_feed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, closed-world, non-destructive, so the bar is lower, yet the description still adds substantial behavior: the free-tier cost model, the exact verification criterion (booked through NUM and scanned the venue's own code), exclusion of comped/partner guests, and the 5-rating publishing threshold below which all numbers are null with an explanatory `note`. That is context an agent could not infer from 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?
The core limitation and return shape are front-loaded in one dense paragraph with no filler topics. Minor waste in the redundant parenthetical 'free (included in the no-fee free tier)', but overall every clause carries real information.
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, so the description correctly documents the return surface: `external` with its `source`, `num_verified` with average/count/star distribution, the `note` on suppression, and the required `attribution`. Combined with the tier and eligibility rules, an agent has everything needed to call and correctly interpret the result.
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% and the single `place_id` parameter already documents its own provenance ('From search_places, place_details or directory_feed'), so the schema does the heavy lifting. The description adds no additional meaning about the parameter itself.
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 resource and verb-equivalent ('a rating SUMMARY for one place') and immediately scopes what it is NOT: no review text, no reviewer identities. This distinguishes it from the review-like expectations set by its name 'get_reviews', though it never explicitly contrasts with sibling tools like place_details or open_places.
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: you fetch ratings for a known place. There is real guidance on how to use the output ('Keep the two numbers separate; do not average them together') and a hard requirement ('You MUST display the returned attribution'), but nothing says when to pick this over place_details or directory_feed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_destinationsList the destinations NUM coversARead-onlyIdempotentInspect
Which destinations NUM covers, with the number of verified places in each. Call this FIRST when you do not know whether a city is supported — it is cheaper than a failed search and stops you promising a traveller coverage that does not exist. Coverage is honest: a destination appears here only when it has a real, maintained directory.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds genuinely new behavioural context — that the list is a curated, maintained directory rather than a bulk dump — though it says nothing about ordering or size limits of the response.
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?
Three short sentences, front-loaded with what you get, then when to call it, then the trust caveat. No sentence is redundant, and the rationale for the caveat earns its space.
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 zero-param, no-output-schema tool, the description supplies exactly what the schema cannot: the shape of the return (destination + verified place count), the intended call timing, and the data-quality guarantee. Nothing an agent needs in order 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?
Zero parameters, so there is nothing to disambiguate and the baseline of 4 applies. The description correctly implies no filtering arguments are needed.
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 exactly what is returned: the destinations covered plus the count of verified places in each. The second sentence implicitly separates it from search_places/open_places by framing it as a coverage lookup rather than a place lookup.
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?
'Call this FIRST when you do not know whether a city is supported' gives an explicit trigger condition, and 'cheaper than a failed search' names the alternative behaviour it replaces. The agent knows when to reach for it and when not to bother.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_placesFind places open at a timeARead-onlyIdempotentInspect
Places that are OPEN RIGHT NOW in a destination, computed in the destination's own timezone. Businesses whose own website is a dead domain or a 404 are excluded entirely — they have closed down. IMPORTANT: only venues whose opening hours NUM has verified can appear here, so a short list means thin hours coverage, NOT an empty city. Never tell a traveller "nothing is open" on the strength of this tool; say that these are the ones NUM can confirm are open. Use search_places for the full directory.
| Name | Required | Description | Default |
|---|---|---|---|
| near | No | Neighbourhood, e.g. "Silver Lake". | |
| limit | No | Max results, 1–50. Default 20. | |
| category | No | Exact category, e.g. "Restaurant". Omit for all. | |
| destination | Yes | Destination slug, e.g. "los-angeles". | |
| bookable_only | No | Only venues NUM can hand off a booking page for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds genuinely non-derivable behavior: businesses with dead domains/404s are excluded entirely, results are timezone-local to the destination, and only venues with verified hours appear so a short list signals thin coverage rather than an empty city. That last point directly prevents a downstream hallucination.
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 definition and the sibling routing up front, and every sentence carries information. It loses a point for redundancy: 'a short list means thin hours coverage, NOT an empty city' and 'Never tell a traveller nothing is open' make the same point twice, and the all-caps emphasis is doing work that tighter wording could.
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 annotations covering data shape, the description compensates well on the caveats that matter most (coverage thinness, exclusion of defunct businesses). It does not describe result ordering or whether distance from 'near' is reflected, which an agent might want when picking a limit, but nothing critical to correct invocation 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 all five parameters (near, limit, category, destination, bookable_only) are already documented in the schema. The description adds only indirect meaning — that 'destination' drives the timezone used for the open-now computation — and says nothing about limit, category, or bookable_only semantics. Baseline 3 applies when the schema does the heavy lifting.
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+resource+scope: places that are open right now in a destination, with the computation basis (destination's own timezone). It also explicitly names the sibling it is not — 'Use search_places for the full directory' — so an agent can distinguish it from search_places 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?
Explicit routing: use this for what's confirmed open now, use search_places for the full directory. It also gives a hard usage constraint — never tell a traveller 'nothing is open' based on this tool — which is a when-not-to-use rule an agent could not infer from the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
place_detailsGet one place in fullARead-onlyIdempotentInspect
Everything NUM holds on one place, by place_id from search_places: contact details, hours, rating, review count, area, category, cuisine, the venue's own short description (about), coordinates, open_now computed in the destination's timezone (true / false / null — null means NUM has not verified the hours, NOT that it is closed), the booking platform and — only where a verified owner chose it — the venue's own booking page, a recently-read published price line where NUM holds one, and up to 8 approved member photos plus the listing photo, each with its own attribution you MUST show alongside it. Use before showing a detail page or handing a traveller a phone number. Returns only what is verified — absent fields are absent because NUM does not know them, never because they were omitted for brevity. Do not fill gaps from memory; an invented phone number is worse than a missing one.
| Name | Required | Description | Default |
|---|---|---|---|
| place_id | Yes | From search_places. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Though annotations already declare readOnly/idempotent/closedWorld, the description adds substantial behavior beyond them: the meaning of `open_now` null ("NOT that it is closed"), the strict verified-only return policy, the mandatory `attribution` display requirement for photos, and the 8-photo cap. These are the kind of traps that cause agent errors, and each is disclosed.
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 critical scoping and provenance arrive first, and nearly every clause carries actionable information (null semantics, attribution, verification policy). The cost is a single very long run-on sentence that is 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?
There is no output schema, so the description must describe return values — it does so field by field, including edge cases (null hours, missing fields meaning unknown). For a one-parameter read tool this leaves no meaningful gap for an agent to fill by guessing.
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?
With 100% schema coverage on a single parameter, the baseline is 3. The description repeats provenance ("by place_id from search_places") which is already in the schema's parameter description, and adds no format or constraint detail beyond it.
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 opens with a specific verb+resource+scope ("Everything NUM holds on one place, by place_id from search_places") and then enumerates the returned fields, making it clearly distinguishable from siblings like get_reviews or booking_link, which cover subsets of this data.
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 gives an explicit trigger ("Use before showing a detail page or handing a traveller a phone number") and routes the agent to search_places for the id. It doesn't explicitly name a when-not or a direct alternative, so it falls short of a 5, but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_placesSearch real places in a destinationARead-onlyIdempotentInspect
Find real, currently-operating places in a destination — restaurants, bars, beaches, spas, viewpoints, temples. Ranked by quality (rating weighted by how many reviews stand behind it). When near is a "lat,lng" coordinate pair, results are limited to about 5 km of that point, ranked by a blend of quality and distance — so a 4.8★ institution two streets away beats an unrated snack bar next door — and each carries distance_m. When near is a neighbourhood name it filters by area and NO distance is returned. Returns name, category, area, rating, review count, phone, address and opening hours where known. NEVER invents a place: if NUM does not hold it, it is not returned. You MUST display the returned attribution string wherever you show these results.
| Name | Required | Description | Default |
|---|---|---|---|
| near | No | A "lat,lng" pair (e.g. "7.8208,98.2976") for distance-ranked results, or a neighbourhood name to filter by area, e.g. "Kata Beach". | |
| limit | No | Max results, 1–20. Default 8. | |
| query | No | Free text, e.g. "thai seafood", "rooftop". | |
| category | No | restaurant | bar | beach | spa | viewpoint | temple | waterfall | cafe (any case). Omit for all. | |
| destination | Yes | Destination slug or city name, e.g. "phuket", "bangkok". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive/closed-world, and the description adds genuinely new behavioral facts: the ranking formula (rating weighted by review volume, distance blend), the exact field set returned, the guarantee that it never invents a place, and a hard obligation to display the `attribution` string. These are obligations an agent could not infer 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?
Front-loaded with purpose, then the two `near` modes, then the return contract and the attribution mandate — a logical order with no filler. The 4.8★/'unrated snack bar' illustration is slightly verbose, though it does convey the ranking blend efficiently.
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 contract and does so explicitly (name, category, area, rating, review count, phone, address, hours) plus the conditional `distance_m`. Combined with annotations covering safety and a fully documented schema, nothing an agent needs 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 baseline is 3; the description earns above that by explaining the consequence of each `near` form (radius cap, distance_m presence/absence) and by clarifying the quality-vs-distance ranking tradeoff. `query` and `category` are left to the schema, but that is acceptable given full coverage.
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 real, currently-operating places in a destination') and enumerates the categories covered. It is clearly distinct from siblings like place_details or open_places, which are not described as destination-scoped search.
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 concrete context for the two modes of `near` (coordinate → ~5 km, distance-blended ranking with `distance_m`; neighbourhood → area filter, no distance) so an agent knows which form to supply. It never names the sibling alternatives (place_details, get_reviews, open_places) or states when not to use this tool, so it stops short of a 5.
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
open_places1 field changed- changed
Input schema / properties / bookable_only / descriptionPrevious value: -"Only venues Num can hand off a booking page for."New value: +"Only venues NUM can hand off a booking page for."
9 tool updates
- First observed
booking_link - First observed
concierge_answer - First observed
directory_feed - First observed
get_menu - First observed
get_reviews - First observed
list_destinations - First observed
open_places - First observed
place_details - First observed
search_places
Related MCP Connectors
Find travel places (sights, museums, parks, beaches) and read place cards. Read-only, no auth.
Live hotel prices worldwide, sourced destination guides, prebooking. No key needed for reads.
Real places for your agent: search 2.5M+ travel places, list businesses, license place photos.
Search and explore a global travel points-of-interest catalog (cities, countries, POIs).
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to access verified city food trails, ranked dish recommendations, GPS stops, and mobile navigation deep links across 17 global culinary capitals. Supports listing cities, retrieving curated 5-stop walking itineraries, finding top dishes, and generating iOS or web trail links.MIT
- FlicenseBqualityCmaintenanceEnables comprehensive travel and hospitality operations including parallel hotel price comparison, restaurant discovery and reservations, multi-modal transit directions, and cross-platform place reviews.201-
- AlicenseAqualityAmaintenanceA read-only MCP server for OpenStreetMap offering geocoding, routing, route optimization, isochrones, and POI search—requiring no API key and built for AI travel planning.11476 npm5MIT

PosDO MCP Serverofficial
AlicenseNot gradedqualityDmaintenanceDiscovers over 356,000 restaurants across 20 countries, providing search, reviews, time-based offers, and cultural context via the Model Context Protocol.Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.