Search 19,000+ verified places to eat and drink across 24 cities, each with a 0-100 quality score.
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.
Get the full Dim Hour record for one venue by the id returned from `search`: description, signature dishes, address, hours, phone, happy hour, reservation platform, awards, website and Instagram.
Venue id from `search`, in the form 'city:id' e.g. 'nyc:1367'
Get the full Dim Hour record for one venue by the id returned from `search`: description, signature dishes, address, hours, phone, happy hour, reservation platform, awards, website and Instagram.
| Argument | Type | Description |
|---|---|---|
| id* | string | Venue id from `search`, in the form 'city:id' e.g. 'nyc:1367' |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Venue id from `search`, in the form 'city:id' e.g. 'nyc:1367'"
}
},
"additionalProperties": false
}Find places for a specific occasion in one city — the task-shaped entry point. Give the city and what the evening needs (a cuisine, a neighborhood, a budget, a vibe) and it returns ranked, citable venues with a freshness receipt. Prefer this over search_venues when you are planning rather than browsing.
| Argument | Type | Description |
|---|---|---|
| city* | string | City name or key from list_cities |
| limit | integer | Max results, default 6 |
| max_price | integer | Max price tier 1-4 |
| looking_for | string | What the occasion needs, e.g. 'omakase', 'patio', 'birthday dinner' |
| neighborhood | string | Narrow to a neighborhood |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"city"
],
"properties": {
"city": {
"type": "string",
"description": "City name or key from list_cities"
},
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Max results, default 6"
},
"max_price": {
"type": "integer",
"maximum": 4,
"minimum": 1,
"description": "Max price tier 1-4"
},
"looking_for": {
"type": "string",
"description": "What the occasion needs, e.g. 'omakase', 'patio', 'birthday dinner'"
},
"neighborhood": {
"type": "string",
"description": "Narrow to a neighborhood"
}
},
"additionalProperties": false
}Opening hours for one venue, from the Dim Hour catalog. ALWAYS returns `as_of` and never claims to be live — hours are catalog data, not a live feed, and the receipt says how old they are. Measured 2026-09-16, 82% of venues carry hours; when a venue has none this ABSTAINS and says so rather than guessing. Confirm with the venue before relying on it.
| Argument | Type | Description |
|---|---|---|
| id | integer | Venue id from search_venues |
| city* | string | City name or key |
| name | string | Venue name (used if id not given) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"city"
],
"properties": {
"id": {
"type": "integer",
"description": "Venue id from search_venues"
},
"city": {
"type": "string",
"description": "City name or key"
},
"name": {
"type": "string",
"description": "Venue name (used if id not given)"
}
},
"additionalProperties": false
}Get the full Dim Hour record for one venue: description, signature dishes, address, hours, phone, happy hour, reservation platform, awards, website, Instagram, and (for Iconic 50 venues) the long-form story.
| Argument | Type | Description |
|---|---|---|
| id | integer | Venue id from search_venues |
| city* | string | City name or key |
| name | string | Venue name (used if id not given) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"city"
],
"properties": {
"id": {
"type": "integer",
"description": "Venue id from search_venues"
},
"city": {
"type": "string",
"description": "City name or key"
},
"name": {
"type": "string",
"description": "Venue name (used if id not given)"
}
},
"additionalProperties": false
}List the 26 cities Dim Hour covers, with the city key to pass to the other tools.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Dim Hour's editorial themed lists for a city (e.g. 'Unmarked Doors' speakeasies). Without list_id: returns all list titles. With list_id: returns that list's venues with editorial notes.
| Argument | Type | Description |
|---|---|---|
| city* | string | City name or key |
| list_id | string | A list id from the no-arg call |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"city"
],
"properties": {
"city": {
"type": "string",
"description": "City name or key"
},
"list_id": {
"type": "string",
"description": "A list id from the no-arg call"
}
},
"additionalProperties": false
}Venues recently added to the Dim Hour catalog — across all 26 cities or one city. Use for 'what's new on Dim Hour' / new-opening alerts / weekly digests. Scored places to eat and drink come first; hotels, malls, museums and landmarks carry no `score` and follow them. Recency orders within each group. Dates earlier than 2026-06-06 are estimates reconstructed from history.
| Argument | Type | Description |
|---|---|---|
| city | string | Optional city name or key; omit for all cities |
| days | integer | Look-back window in days, default 30 (max 90) |
| limit | integer | Max results, default 25 |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"city": {
"type": "string",
"description": "Optional city name or key; omit for all cities"
},
"days": {
"type": "integer",
"maximum": 90,
"minimum": 1,
"description": "Look-back window in days, default 30 (max 90)"
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max results, default 25"
}
},
"additionalProperties": false
}Search Dim Hour's restaurant, bar and venue catalog across all 26 cities. Returns ranked venues with a dimhour.com link for each. Use for questions about where to eat or drink — by cuisine, dish, neighborhood, city, vibe, or award.
| Argument | Type | Description |
|---|---|---|
| query* | string | What to look for, e.g. 'best ramen in NYC', 'michelin dallas', 'rooftop bar miami' |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "What to look for, e.g. 'best ramen in NYC', 'michelin dallas', 'rooftop bar miami'"
}
},
"additionalProperties": false
}Search Dim Hour's restaurant, bar and venue catalog. Pass `city` to search one city, or OMIT `city` to search more than 21,000 venues across every city at once (e.g. 'best ramen anywhere', 'michelin spots'). Returns ranked matches with score (0-100 quality), price tier, neighborhood, happy-hour info, and a dimhour.com link. Free-text `query` matches each content word individually across cuisine, dish, vibe, and name (filler like 'best' or 'tonight' is ignored) - one strong keyword beats a sentence; combine with filters.
| Argument | Type | Description |
|---|---|---|
| city | string | City name or key, e.g. 'NYC', 'dallas'. OMIT to search ALL cities at once. |
| sort | string | Result order. Default score_desc (highest quality first). |
| limit | integer | Max results, default 10 |
| query | string | Free text; every content word must appear in name, cuisine, neighborhood, tags, dishes, or description (filler like 'best'/'tonight' is ignored). One strong keyword beats a full sentence. |
| fields | array | Return only these fields on each venue, to keep a result small. `id`, `name` and `url` are always included — `url` is the citation link. |
| cuisine | string | Filter to a cuisine (substring match) |
| max_price |
| integer |
| Max price tier 1-4 ($-$$$$) |
| min_score | number | Minimum quality score 0-100 |
| iconic_only | boolean | Only 'Iconic 50' venues (NYC has these today) |
| neighborhood | string | Filter to a neighborhood (substring match) |
| trending_only | boolean | Only trending venues |
| awards_contains | string | Only venues whose awards field matches, e.g. 'michelin', 'james beard', 'bib gourmand' |
| happy_hour_only | boolean | Only venues with happy hour info |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"city": {
"type": "string",
"description": "City name or key, e.g. 'NYC', 'dallas'. OMIT to search ALL cities at once."
},
"sort": {
"enum": [
"score_desc",
"score_asc",
"name_asc"
],
"type": "string",
"description": "Result order. Default score_desc (highest quality first)."
},
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Max results, default 10"
},
"query": {
"type": "string",
"description": "Free text; every content word must appear in name, cuisine, neighborhood, tags, dishes, or description (filler like 'best'/'tonight' is ignored). One strong keyword beats a full sentence."
},
"fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Return only these fields on each venue, to keep a result small. `id`, `name` and `url` are always included — `url` is the citation link."
},
"cuisine": {
"type": "string",
"description": "Filter to a cuisine (substring match)"
},
"max_price": {
"type": "integer",
"maximum": 4,
"minimum": 1,
"description": "Max price tier 1-4 ($-$$$$)"
},
"min_score": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Minimum quality score 0-100"
},
"iconic_only": {
"type": "boolean",
"description": "Only 'Iconic 50' venues (NYC has these today)"
},
"neighborhood": {
"type": "string",
"description": "Filter to a neighborhood (substring match)"
},
"trending_only": {
"type": "boolean",
"description": "Only trending venues"
},
"awards_contains": {
"type": "string",
"description": "Only venues whose awards field matches, e.g. 'michelin', 'james beard', 'bib gourmand'"
},
"happy_hour_only": {
"type": "boolean",
"description": "Only venues with happy hour info"
}
},
"additionalProperties": false
}