DrinkedIn Night Out

Read-only, free planner for walkable 2–4 stop nights out using only venues validated against the venue's own site or an official register. No sign-in. Two tools: drinkedin_get_guide and drinkedin_plan_night_out. Hours and prices are never asserted. For adults of legal drinking age where they are. Endpoint: https://ai.drinkedin.net/mcp/night-out

Hosted MCP Server

npx add-mcp 'https://ai.drinkedin.net/mcp/night-out'

Installs into Claude Code, Codex, Cursor and more

Documentation

DrinkedIn Night Out: documentation.

A read-only MCP server that plans a walkable night out from real, licensed venues. No sign-in. This page covers that server and nothing else.

For adults of legal drinking age where they are.

What it does

Night Out plans a walkable route of 2 to 4 stops between real, licensed venues: bars, restaurants, breweries and nightclubs. Each venue on a route has been validated against the venue’s own site or an official licence register. The planner uses no other venues, and it adds no details of its own.

Coverage varies by place. When there are not enough validated venues close together, the tool says so (status no_coverage or partial) instead of padding the route.

It never states opening hours or prices: each stop is marked unverified and the assistant is told to point to the venue. Walking times are estimates (straight-line distance × 1.3). Routes are chosen from validated venues by walking distance and kind of place.

It is for adults of legal drinking age where they are. Every reply carries a legal drinking age notice. DrinkedIn does not sell or serve alcohol.

Connect

Endpoint

https://ai.drinkedin.net/mcp/night-out

Transport

Streamable HTTP. Requests are POSTed as JSON-RPC; the server offers no server-sent-event stream.

Sign-in

None. No account, key or token.

Access

Read-only. Neither tool writes anything.

MCP Registry

io.github.haim-barad/drinkedin-night-out

Server card

https://ai.drinkedin.net/mcp/night-out/server-card

Agent skill

SKILL.md, also in the skills index

Claude

Open Settings > Connectors and choose Add custom connector. Paste the endpoint and add it. There is nothing to authorize. Menu names differ by app and version.

https://ai.drinkedin.net/mcp/night-out

Claude Code

From a terminal:

claude mcp add --transport http drinkedin-night-out https://ai.drinkedin.net/mcp/night-out

Any MCP client

Add this remote MCP server (Streamable HTTP, no authentication) wherever your client adds MCP servers, connectors or tools:

https://ai.drinkedin.net/mcp/night-out

The client should then list two tools: drinkedin_plan_night_out and drinkedin_get_guide. If it shows neither, the server was not added; check the address.

Tools

drinkedin_plan_night_out

Plans a walkable route of 2 to 4 stops around a point. Read-only. Every input is optional in the schema, but a call needs a place: a point, an address or a place name.

Where to start

latitude, longitude

Numbers, −90 to 90 and −180 to 180. Preferred: send both. The assistant takes the point from the person’s context: their current location for “near me”, the centre of an area they name, or the destination of a trip they are planning. If the context holds no location, the assistant asks; it does not pick a default.

address

Text, up to 200 characters. A street address, a landmark or the name of an area, used only when no latitude and longitude are given (coordinates win). It is geocoded to one point by OpenStreetMap Nominatim, then planned like coordinates. The reply echoes geocoded_as and geocoded_point with the notice address_geocoded. A geocoder ranks matches and does not confirm them, so the assistant tells the person what it matched and confirms when the text was ambiguous. No match, or a lookup service that does not answer, returns needs_input.

near

Text, up to 80 characters. A label for what the point stands for, such as “near me” or the area the person named. It is echoed back as near_as_given and never changes the plan.

city, region, country

Text, up to 80, 40 and 40 characters. A place name instead of a point. It plans only when the name identifies one place, so give it with its region or country. A name several places share returns needs_input with labelled choices; the tool never picks between them.

place_key

Text, up to 120 characters. Taken from a needs_input answer: it names exactly one of the choices. Send it back to choose that place.

Shape of the route

style

One of the ids below. 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. If too few venues fit, the status is partial or no_coverage, never other kinds of place. The reply echoes style_applied. An unknown style returns needs_input.

  • bar_crawl: Bars and hotel bars only, one after another, with short walks between stops.
  • craft_beer_crawl: Brewpubs and breweries only, one after another.
  • dinner_and_drinks: A restaurant first, then bars and hotel bars.
  • club_night: Bars and hotel bars first, then a nightclub as the last stop.

stops

Integer, 2 to 4. Default 3; a style may set another default.

max_walk_m

Integer, 200 to 2000 metres. Default 900; a style may set another default. The first stop is within this walking distance of the start and every later stop within it of the one before.

vibes

List of up to 10 strings, taken from drinkedin_get_guide. A vibe that cannot be verified is noted in the reply and not applied. An unknown vibe returns needs_input.

Other inputs

exclude_ids

List of up to 50 integers: venue_id values from an earlier reply to leave out, to swap a stop.

budget

Object. A soft hint only: prices are not verified, so the reply just notes that (budget_not_verifiable).

start_time

Text, up to 10 characters, local HH:MM. Informational only.

party_size

Integer, 1 or more. Accepted; it does not change the route.

language

Text, up to 10 characters, default en. Replies are in English; any other value adds the notice language_fallback_en.

What comes back

Every reply carries status, meaning (what happened), say_to_owner (a sentence the assistant can use) and notices (always including legal_drinking_age). A route lists its stops in order. Each stop has a name, address, category, the walk in minutes and metres, a DrinkedIn page link, the venue’s own site when known, map links, and hours and prices marked unverified. After a route, next holds a ready call that swaps the last stop.

planned

A route with the number of stops asked for. The assistant shows the stops as returned and adds no venue or detail of its own. It says walking times are estimates, tells the person to check hours and prices with the venue, and includes the legal drinking age notice.

partial

Fewer stops than asked for: the longest walkable route the validated venues allow. The assistant says so and shows the route. If a style was used, it offers to try without it. It does not fill the gap with other places.

needs_input

The tool needs something from the person: a location, a choice between places that share a name, a more specific address, valid coordinates, or a vibe or style it knows. The assistant asks for what meaning says is missing, then calls again. It never guesses between choices.

no_coverage

Not enough validated venues close together, or no venue records for that place. The assistant says so plainly and, where the reply lists them, may offer some places with validated venues (not a ranking). It does not suggest venues of its own.

error

A fault on our side; the result is flagged isError. The assistant tells the person it failed and tries again in a moment.

drinkedin_get_guide

Takes no input. Returns how to use the planner: some places with validated venues, the vibes that can be applied, the route styles, and the rules for relaying a plan (validated venues only, nothing invented, legal drinking age). Clients should call it first. Read-only.

Annotations

drinkedin_get_guide

Read-only, not destructive, idempotent, closed world.

drinkedin_plan_night_out

Read-only, not destructive, idempotent. Open world, because a typed address is sent to an outside geocoder (OpenStreetMap Nominatim).

Example prompts

These show how to ask. They do not say that any place is covered: the tool answers from its own data and says when it has too little.

“Plan me a bar crawl near Kennedy Plaza, Providence.”

The assistant calls drinkedin_plan_night_out with style bar_crawl and the place, as coordinates if it can look them up, otherwise as address. It relays whatever status comes back.

“Dinner and drinks near 41.8249, -71.4116.”

The assistant sends latitude 41.8249, longitude -71.4116 and style dinner_and_drinks: a restaurant first, then bars.

“A craft beer crawl near me.”

If the assistant has no location for the person it asks for one instead of guessing. Called without a place, the tool answers needs_input.

Limits

  • Rate limit. Anonymous callers get 120 tool calls a minute per client address. Over that, the server answers HTTP 429 with a Retry-After header.
  • Address lookups. The geocoding service is shared, so a lookup that is not already cached is limited to 6 a minute per client. Over that, the tool answers needs_input and asks for latitude and longitude, which need no lookup.
  • Coverage varies. Some places have many validated venues and some have few. The tool says when it is thin.
  • Read-only. Nothing is booked, bought or charged, and nothing is written. The tool plans a route and stops there.