Read-only planner for walkable 2-4 stop nights out between validated, licensed venues. No sign-in.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
How to use the night-out planner: some places with validated venues (not a ranking and not a coverage claim), supported vibes, route styles, and the rules to follow when relaying a plan (validated venues only, no invented details, legal drinking age where they are). Read-only and free.
This tool takes no arguments.
Tool list last changed Oct 25, 2026.
How to use the night-out planner: some places with validated venues (not a ranking and not a coverage claim), supported vibes, route styles, and the rules to follow when relaying a plan (validated venues only, no invented details, legal drinking age where they are). Read-only and free.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Plan a walkable 2-4 stop night out around a place using only venues DrinkedIn has validated against the venue's own site or an official register. Read-only and free. The most reliable input is a point: give latitude and longitude. Choose it from the user's context, never from a default: 'near me' is the user's current location; an area the user names (a neighbourhood or district) is the centre of that area; for a trip the user is planning, look up the destination they name (use its country to pick the right place) and give its coordinates. If the context holds no location, ask the user. With no coordinates, a free-text address or landmark in address also works: it is geocoded to one point and planned like coordinates (coordinates win if both are given). The text is sent to a public geocoding service (OpenStreetMap Nominatim), which ranks matches and does not confirm them: the reply's geocoded_as says what it matched, so confirm that with the person when the text was ambiguous. A place name also works when it identifies one place, so give it with its country or region; a name several places share returns needs_input with labelled choices: pick the one that fits the user's context and call again with its place_key or coordinates. Never guess between choices. Walking times are estimates (straight line x 1.3). Hours and prices are never asserted: tell the user to check with the venue (its own site when the stop has own_site). Say the plan is for adults of legal drinking age where they are; never state an age as a number. If the user says they are under the legal drinking age, do not call this tool. Show only the stops returned and add no venues, details or place names of your own.
| Argument | Type | Description |
|---|---|---|
| city | string | City name. Add the country or state when several places share the name. |
| near | string | What the point stands for, e.g. 'near me' or the area the user named. Echoed back as the route's 'near_as_given'; it is your label, not ours, and never changes the plan. |
| stops | integer | |
| style | string | Optional route shape, from the styles in drinkedin_get_guide. It limits which kinds of place the route uses and sets the default stops and walking limit; your own stops and max_walk_m win. It says nothing about hours, prices or atmosphere. Too few matching venues gives partial or no_coverage, never other kinds of place. The reply echoes style_applied. |
| vibes | array | From drinkedin_get_guide. Vibes we cannot verify yet are noted, not applied. |
| budget | object | Accepted but ignored: never used to filter or sort the route; prices are not known. The reply adds the notice budget_not_verifiable. |
| region | string | State or province, a name or a code such as a two-letter US state code; narrows a name several places share. |
| address | string | Optional free text: a street address, a landmark or the name of an area, used only when no latitude and longitude are given. It is geocoded to one point and planned like coordinates. The address is sent to a public geocoding service (OpenStreetMap Nominatim) to find the point. The reply echoes geocoded_as and geocoded_point with the notice address_geocoded: a match is a ranking, not a confirmation, so confirm it with the person when the text was ambiguous. No match is needs_input. |
| country | string | Country name or code; narrows a name several places share. |
| language | string |
| latitude | number |
| longitude | number |
| place_key | string | From a needs_input answer: names exactly one of its choices. |
| max_walk_m | integer |
| party_size | integer | Informational only: does not change the route. |
| start_time | string | Local HH:MM. Informational only: does not change the route. |
| exclude_ids | array | venue_id values to leave out, to swap a stop. |
{
"type": "object",
"properties": {
"city": {
"type": "string",
"maxLength": 80,
"description": "City name. Add the country or state when several places share the name."
},
"near": {
"type": "string",
"maxLength": 80,
"description": "What the point stands for, e.g. 'near me' or the area the user named. Echoed back as the route's 'near_as_given'; it is your label, not ours, and never changes the plan."
},
"stops": {
"type": "integer",
"default": 3,
"maximum": 4,
"minimum": 2
},
"style": {
"enum": [
"bar_crawl",
"craft_beer_crawl",
"dinner_and_drinks",
"club_night"
],
"type": "string",
"description": "Optional route shape, from the styles in drinkedin_get_guide. It limits which kinds of place the route uses and sets the default stops and walking limit; your own stops and max_walk_m win. It says nothing about hours, prices or atmosphere. Too few matching venues gives partial or no_coverage, never other kinds of place. The reply echoes style_applied."
},
"vibes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40
},
"maxItems": 10,
"description": "From drinkedin_get_guide. Vibes we cannot verify yet are noted, not applied."
},
"budget": {
"type": "object",
"description": "Accepted but ignored: never used to filter or sort the route; prices are not known. The reply adds the notice budget_not_verifiable."
},
"region": {
"type": "string",
"maxLength": 40,
"description": "State or province, a name or a code such as a two-letter US state code; narrows a name several places share."
},
"address": {
"type": "string",
"maxLength": 200,
"description": "Optional free text: a street address, a landmark or the name of an area, used only when no latitude and longitude are given. It is geocoded to one point and planned like coordinates. The address is sent to a public geocoding service (OpenStreetMap Nominatim) to find the point. The reply echoes geocoded_as and geocoded_point with the notice address_geocoded: a match is a ranking, not a confirmation, so confirm it with the person when the text was ambiguous. No match is needs_input."
},
"country": {
"type": "string",
"maxLength": 40,
"description": "Country name or code; narrows a name several places share."
},
"language": {
"type": "string",
"default": "en",
"maxLength": 10
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"place_key": {
"type": "string",
"maxLength": 120,
"description": "From a needs_input answer: names exactly one of its choices."
},
"max_walk_m": {
"type": "integer",
"default": 900,
"maximum": 2000,
"minimum": 200
},
"party_size": {
"type": "integer",
"minimum": 1,
"description": "Informational only: does not change the route."
},
"start_time": {
"type": "string",
"maxLength": 10,
"description": "Local HH:MM. Informational only: does not change the route."
},
"exclude_ids": {
"type": "array",
"items": {
"type": "integer"
},
"maxItems": 50,
"description": "venue_id values to leave out, to swap a stop."
}
},
"additionalProperties": false
}