placeguide
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
placeguide
placeguide is a small local bridge to the hosted itsnum places MCP server, a verified directory of places across 119 travel destinations. Ask it where to eat in Phuket, which places in Los Angeles are open right now, what a venue's own published menu looks like, or how its verified guests rated it, and the answers come from listings the directory itself maintains — a place the directory does not hold is never invented to fill a gap.
The package keeps no directory of its own. It answers
the tool list locally, exactly as captured from the
live endpoint, and forwards each tool call upstream,
returning whatever comes back untouched. Several of
the upstream responses carry an attribution string;
wherever you show those results, display it as the
captured tool descriptions require.
Three of the nine tools are described upstream as
free, in a no-fee free tier: get_menu,
get_reviews, and directory_feed. Nothing in this
surface makes a reservation, charges anyone, or opens
an account. booking_link returns a booking page on
the venue's own platform with party size, date and
time already filled in — the traveller completes the
booking there, and the response always says
booked: false.
Tools
search_places— find real, currently-operating places in a destination: restaurants, bars, beaches, spas, viewpoints, temples. Required:destination(slug or city name). Optional:category,near(a"lat,lng"pair for distance-ranked results within about 5 km, or a neighbourhood name to filter by area),query(free text), andlimit(1–20, default 8). Ranked by quality — rating weighted by review count — or by a blend of quality and distance when coordinates are given. Returns name, category, area, rating, review count, phone, address and opening hours where known.concierge_answer— ask a travel question the way a traveller would ("where should we eat tonight near Kata?") and get a short answer grounded in the verified directory, plus the named places as structured data. Required:question. Optional:destination,near, andlanguage(a BCP-47 tag; defaults to the language of the question). It answers about the place asked, never substitutes a different city, and says so when there is no coverage rather than guessing.list_destinations— the destinations the directory covers, with the number of verified places in each. No arguments. Call it first when you do not know whether a city is supported.place_details— everything held on one place, byplace_idfromsearch_places. Required:place_id. Returns the venue's published contact details from its own listing, hours, rating, review count, area, category, cuisine, its own short description, coordinates,open_nowcomputed in the destination's timezone (null means the hours are not verified, not that it is closed), the booking platform and — only where a verified owner chose one — the venue's own booking page, a recently-read published price line where held, and photos, each with its own attribution.open_places— places open right now in a destination, computed in the destination's own timezone. Required:destination. Optional:category,near,bookable_only, andlimit(1–50, default 20). Only venues with verified hours can appear, so a short list means thin hours coverage, not an empty city.booking_link— a booking page for one place with party size, date and time already filled in. Required:place_id. Optional:party(1–20),date(YYYY-MM-DD), andtime(HH:MM, 24-hour, local to the venue). This does not make a reservation and does not hold a table; the response always carriesbooked: falseandmode: "deeplink". If the venue has no booking platform, the response says so and returns the phone number instead.get_menu— a venue's own published menu or list of offerings, grouped by the venue's sections in the venue's order. Required:place_id. Prices are exactly as the venue set them, in its own currency; an item with no price hasprice: null. If no menu is published,sectionsis empty andnotesays so. Free.get_reviews— a rating summary for one place. Required:place_id. Returnsexternal(the public rating and count the listing carries, with its source) andnum_verified(average, count and 1–5 star distribution from verified guests). No review text and no reviewer identities, ever; below five verified ratings every verified number is null andnotesays why. Free.directory_feed— a bulk, paged sync of every place listed in one destination, up to 200 places per call, ordered by place_id. Required:destination. Optional:cursor(pass back the returnednext_cursoruntil it is null) andlimit(1–200 with a partner key, default 100; at most 50 without a key). Each item carries thesearch_placesfields plus cuisine, coordinates and booking platform; it contains no menus, reviews or photos. Free.
Related MCP server: Duffel MCP Server
Configuration
ITSNUM_MCP_URL(optional) — override the upstream endpoint. Defaults tohttps://app.itsnum.com/api/partner/mcp. (The override hook is this rebuild's own labelled reconstruction.)ITSNUM_PARTNER_KEY(optional) — when set, every upstream request carries anX-Partner-Key: <value>header with the caller's own partner key. When it is not set, no key header is sent, and the surface still answers — the tool list was captured keyless, and several tools are described as free with no key needed. (The header name is pinned by the original's registry record, which declares a secretX-Partner-Keyheader; the record pins no package env name, so forwarding the key from this env var is a labelled reconstruction.) A key raises thedirectory_feedpage-size ceiling from 50 to 200, per the captured description.
Forwarding mechanics
On the first tool call the client opens a streamable
HTTP session upstream: a JSON-RPC initialize
request (protocolVersion 2025-03-26, clientInfo
name placeguide), then a
notifications/initialized notification, then the
tools/call request carrying the caller's arguments
unchanged. When the upstream answers initialize
with an Mcp-Session-Id header, that value rides on
every later request of the session, which is reused
for the life of the process. Replies may arrive as
plain JSON or as server-sent events; both are read.
Successful upstream results pass through verbatim,
including any isError flag the upstream sets.
Failures — a JSON-RPC error, a non-2xx status, an
unreadable response, or a request that cannot be
completed — come back as an isError result whose
text starts with placeguide error: (this rendering
is this rebuild's own labelled reconstruction).
CLI
Each tool is also a subcommand taking one JSON argument string:
npx @reneturcios/placeguide search_places '{"destination":"phuket","category":"restaurant"}'
npx @reneturcios/placeguide list_destinations '{}'
npx @reneturcios/placeguide get_menu '{"place_id":"..."}'
npx @reneturcios/placeguide --versionExit codes: 0 on success, 1 on an isError
result, 2 on a usage error.
MCP server
npx -y @reneturcios/placeguide mcpMCP client config:
{
"mcpServers": {
"placeguide": {
"command": "npx",
"args": ["-y", "@reneturcios/placeguide", "mcp"]
}
}
}Docker
docker run -i ghcr.io/cloudcorprecords/placeguide
docker run --rm ghcr.io/cloudcorprecords/placeguide --versionThe container's default command is mcp, so the first
form is a stdio MCP server; any other arguments reach
the CLI normally.
Development
npm install
npm run build
npm test
npm run devThe test suite runs entirely against a stubbed JSON-RPC upstream — no live network calls.
License
MIT — see LICENSE.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Open places, menus, ratings and booking routes in 119 travel destinations. Read-only, no key needed.
Live Google Maps business search, review, and photo data for AI agents over MCP.
One MCP endpoint to search and book every establishment in the Adaga direct-booking network (hotels today, salons & restaurants soon). Real-time availability, exact direct prices, and real booking creation with secure card payment hand-off. No OTA commission: the traveler always pays the establishment's exact direct price, and the establishment keeps the customer relationship (OTAs take 15-25% AND own the customer). Tools: network_directory (browse all establishments), network_search (fan-out live availability + prices, sorted), network_book (create the booking). No authentication required for directory/search. Ideal for AI travel agents, concierges and booking assistants.
Real places for your agent: search 2.5M+ travel places, list businesses, license place photos.
Related MCP Servers
- AlicenseAqualityBmaintenanceCountry-agnostic MCP-callable directory for AI agents to find local SMBs — realtors, insurance agents, medical practitioners — by category, location, or natural-language query. Returns business catalog data and UTM-tagged booking URLs (zero PII).5MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search live travel inventory for flights, stays, and car hire through typed tools, with place resolution and price details while deliberately exposing no booking or payment surface.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to search for businesses, check availability and pricing, and book appointments after user confirmation through trusted WebMCP tools.3 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients to access 21 read-only tools for local travel planning, including trip and itinerary validation, budget calculation, booking requirements, integration provider status, flight/train/accommodation/activity searches, route/weather/currency lookups, and travel source search.MIT