Dim Hour

Search 19,000+ verified places to eat and drink across 24 cities, each with a 0-100 quality score.

Should I use this

Quality & Safety

A
Description quality
98%
Schema completeness
90%
Naming quality
100%
Poisoning risk
100%
Permission match
90%
Protocol compliance
100%

Findings (1)

  • LOWTool 'fetch' suggests web access but openWorldHint=falsein fetch

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~4,082Tokens (tool definitions)
~4.2 KBTypical response size
Significant attention impact (3.19% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "catalog": {
      "url": "https://dimhour-mcp.jakeoborn.workers.dev/mcp"
    }
  }
}

Remote endpoints

https://dimhour-mcp.jakeoborn.workers.dev/mcpstreamable-http
https://dimhour-mcp.jakeoborn.workers.dev/ssesse
https://mcp.dimhour.com/mcpstreamable-http
https://mcp.dimhour.com/ssesse

What it can do

Tool inventory

Tools (9)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_cities

List the 24 cities Dim Hour covers, with the city key to pass to the other tools.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "cities": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "city",
              "state"
            ]
          },
          "children": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "parent": {
            "type": "string"
          }
        },
        "required": [
          "key",
          "name",
          "state",
          "kind"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "cities"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_venues(city, query, neighborhood, cuisine, max_price, ...)

Search Dim Hour's restaurant, bar and venue catalog. Pass `city` to search one city, or OMIT `city` to search more than 20,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.

Input Schema

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "description": "City name or key, e.g. 'NYC', 'dallas'. OMIT to search ALL cities at once."
    },
    "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."
    },
    "neighborhood": {
      "type": "string",
      "description": "Filter to a neighborhood (substring match)"
    },
    "cuisine": {
      "type": "string",
      "description": "Filter to a cuisine (substring match)"
    },
    "max_price": {
      "type": "integer",
      "minimum": 1,
      "maximum": 4,
      "description": "Max price tier 1-4 ($-$$$$)"
    },
    "min_score": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "description": "Minimum quality score 0-100"
    },
    "happy_hour_only": {
      "type": "boolean",
      "description": "Only venues with happy hour info"
    },
    "awards_contains": {
      "type": "string",
      "description": "Only venues whose awards field matches, e.g. 'michelin', 'james beard', 'bib gourmand'"
    },
    "iconic_only": {
      "type": "boolean",
      "description": "Only 'Iconic 50' venues (NYC has these today)"
    },
    "trending_only": {
      "type": "boolean",
      "description": "Only trending venues"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25,
      "description": "Max results, default 10"
    },
    "sort": {
      "type": "string",
      "enum": [
        "score_desc",
        "score_asc",
        "name_asc"
      ],
      "description": "Result order. Default score_desc (highest quality first)."
    },
    "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."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "scope": {
      "type": "string"
    },
    "city": {
      "type": "string"
    },
    "total_matches": {
      "type": "number"
    },
    "total_exact": {
      "type": "boolean"
    },
    "showing": {
      "type": "number"
    },
    "note": {
      "type": "string"
    },
    "venues": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "cuisine": {
            "type": "string"
          },
          "neighborhood": {
            "type": "string"
          },
          "score": {
            "type": "number"
          },
          "price": {
            "type": "string"
          },
          "happy_hour": {
            "type": "string"
          },
          "reservation": {
            "type": "string"
          },
          "awards": {
            "type": "string"
          },
          "opened": {
            "type": "string"
          },
          "iconic": {
            "type": "boolean"
          },
          "trending": {
            "type": "boolean"
          },
          "description": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "cuisine",
          "neighborhood",
          "happy_hour",
          "reservation",
          "description",
          "url"
        ],
        "additionalProperties": false
      }
    },
    "receipt": {
      "type": "object",
      "properties": {
        "as_of": {
          "type": [
            "string",
            "null"
          ]
        },
        "as_of_scope": {
          "type": "string"
        },
        "source": {
          "type": "string"
        },
        "abstained": {
          "type": "boolean"
        },
        "stale": {
          "type": "boolean"
        },
        "reason": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "as_of",
        "as_of_scope",
        "source",
        "abstained",
        "stale",
        "reason"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "total_matches",
    "total_exact",
    "showing",
    "venues",
    "receipt"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_new_venues(city, days, limit)

Venues recently added to the Dim Hour catalog — across all 24 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.

Input Schema

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "description": "Optional city name or key; omit for all cities"
    },
    "days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 90,
      "description": "Look-back window in days, default 30 (max 90)"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Max results, default 25"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "window_days": {
      "type": "number"
    },
    "city": {
      "type": "string"
    },
    "total_new": {
      "type": "number"
    },
    "showing": {
      "type": "number"
    },
    "feed_generated": {
      "type": "string"
    },
    "receipt": {
      "type": "object",
      "properties": {
        "as_of": {
          "type": [
            "string",
            "null"
          ]
        },
        "as_of_scope": {
          "type": "string"
        },
        "source": {
          "type": "string"
        },
        "abstained": {
          "type": "boolean"
        },
        "stale": {
          "type": "boolean"
        },
        "reason": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "as_of",
        "as_of_scope",
        "source",
        "abstained",
        "stale",
        "reason"
      ],
      "additionalProperties": false
    },
    "venues": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string"
          },
          "city_name": {
            "type": "string"
          },
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "cuisine": {
            "type": "string"
          },
          "neighborhood": {
            "type": "string"
          },
          "score": {
            "type": "number"
          },
          "price": {
            "type": "string"
          },
          "awards": {
            "type": "string"
          },
          "happy_hour": {
            "type": "string"
          },
          "first_seen": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "estimated": {
            "type": "boolean"
          }
        },
        "required": [
          "city",
          "city_name",
          "id",
          "name",
          "cuisine",
          "neighborhood",
          "awards",
          "happy_hour",
          "first_seen",
          "url"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "window_days",
    "city",
    "total_new",
    "showing",
    "receipt",
    "venues"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_venue(city, id, name)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "description": "City name or key"
    },
    "id": {
      "type": "integer",
      "description": "Venue id from search_venues"
    },
    "name": {
      "type": "string",
      "description": "Venue name (used if id not given)"
    }
  },
  "required": [
    "city"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "number"
    },
    "name": {
      "type": "string"
    },
    "cuisine": {
      "type": "string"
    },
    "neighborhood": {
      "type": "string"
    },
    "score": {
      "type": "number"
    },
    "price": {
      "type": "string"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "description": {
      "type": "string"
    },
    "dishes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "highlights": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "happy_hour": {
      "type": "string"
    },
    "address": {
      "type": "string"
    },
    "hours": {
      "type": "string"
    },
    "phone": {
      "type": "string"
    },
    "reservation": {
      "type": "string"
    },
    "awards": {
      "type": "string"
    },
    "opened": {
      "type": "string"
    },
    "website": {
      "type": "string"
    },
    "instagram": {
      "type": "string"
    },
    "lat": {
      "type": "number"
    },
    "lng": {
      "type": "number"
    },
    "iconic": {
      "type": "boolean"
    },
    "trending": {
      "type": "boolean"
    },
    "story": {
      "type": "string"
    },
    "other_locations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "url": {
      "type": "string"
    },
    "city_name": {
      "type": "string"
    },
    "price_tier": {
      "type": "number"
    },
    "photoUrl": {
      "type": "string"
    },
    "receipt": {
      "type": "object",
      "properties": {
        "as_of": {
          "type": [
            "string",
            "null"
          ]
        },
        "as_of_scope": {
          "type": "string"
        },
        "source": {
          "type": "string"
        },
        "abstained": {
          "type": "boolean"
        },
        "stale": {
          "type": "boolean"
        },
        "reason": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "as_of",
        "as_of_scope",
        "source",
        "abstained",
        "stale",
        "reason"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "id",
    "name",
    "cuisine",
    "neighborhood",
    "tags",
    "description",
    "dishes",
    "happy_hour",
    "address",
    "hours",
    "phone",
    "reservation",
    "awards",
    "website",
    "instagram",
    "url",
    "city_name",
    "photoUrl",
    "receipt"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search(query)

Search Dim Hour's restaurant, bar and venue catalog across all 24 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.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "What to look for, e.g. 'best ramen in NYC', 'michelin dallas', 'rooftop bar miami'"
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "url"
        ],
        "additionalProperties": false
      }
    },
    "receipt": {
      "type": "object",
      "properties": {
        "as_of": {
          "type": [
            "string",
            "null"
          ]
        },
        "as_of_scope": {
          "type": "string"
        },
        "source": {
          "type": "string"
        },
        "abstained": {
          "type": "boolean"
        },
        "stale": {
          "type": "boolean"
        },
        "reason": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "as_of",
        "as_of_scope",
        "source",
        "abstained",
        "stale",
        "reason"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "results",
    "receipt"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢fetch(id)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Venue id from `search`, in the form 'city:id' e.g. 'nyc:1367'"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "metadata": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "receipt": {
      "type": "object",
      "properties": {
        "as_of": {
          "type": [
            "string",
            "null"
          ]
        },
        "as_of_scope": {
          "type": "string"
        },
        "source": {
          "type": "string"
        },
        "abstained": {
          "type": "boolean"
        },
        "stale": {
          "type": "boolean"
        },
        "reason": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "as_of",
        "as_of_scope",
        "source",
        "abstained",
        "stale",
        "reason"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "id",
    "title",
    "text",
    "url",
    "receipt"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_curated(city, list_id)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "description": "City name or key"
    },
    "list_id": {
      "type": "string",
      "description": "A list id from the no-arg call"
    }
  },
  "required": [
    "city"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string"
    },
    "note": {
      "type": "string"
    },
    "receipt": {
      "type": "object",
      "properties": {
        "as_of": {
          "type": [
            "string",
            "null"
          ]
        },
        "as_of_scope": {
          "type": "string"
        },
        "source": {
          "type": "string"
        },
        "abstained": {
          "type": "boolean"
        },
        "stale": {
          "type": "boolean"
        },
        "reason": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "as_of",
        "as_of_scope",
        "source",
        "abstained",
        "stale",
        "reason"
      ],
      "additionalProperties": false
    },
    "lists": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "subtitle": {
            "type": "string"
          },
          "venue_count": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "title",
          "subtitle",
          "venue_count"
        ],
        "additionalProperties": false
      }
    },
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "subtitle": {
      "type": "string"
    },
    "venues": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "neighborhood": {
            "type": "string"
          },
          "price": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "note",
          "url"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "city",
    "receipt"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢find_places(city, looking_for, neighborhood, max_price, limit)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "description": "City name or key from list_cities"
    },
    "looking_for": {
      "type": "string",
      "description": "What the occasion needs, e.g. 'omakase', 'patio', 'birthday dinner'"
    },
    "neighborhood": {
      "type": "string",
      "description": "Narrow to a neighborhood"
    },
    "max_price": {
      "type": "integer",
      "minimum": 1,
      "maximum": 4,
      "description": "Max price tier 1-4"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25,
      "description": "Max results, default 6"
    }
  },
  "required": [
    "city"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string"
    },
    "total_matches": {
      "type": "number"
    },
    "showing": {
      "type": "number"
    },
    "note": {
      "type": "string"
    },
    "venues": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "cuisine": {
            "type": "string"
          },
          "neighborhood": {
            "type": "string"
          },
          "score": {
            "type": "number"
          },
          "price": {
            "type": "string"
          },
          "happy_hour": {
            "type": "string"
          },
          "reservation": {
            "type": "string"
          },
          "awards": {
            "type": "string"
          },
          "opened": {
            "type": "string"
          },
          "iconic": {
            "type": "boolean"
          },
          "trending": {
            "type": "boolean"
          },
          "description": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "cuisine",
          "neighborhood",
          "happy_hour",
          "reservation",
          "description",
          "url"
        ],
        "additionalProperties": false
      }
    },
    "receipt": {
      "type": "object",
      "properties": {
        "as_of": {
          "type": [
            "string",
            "null"
          ]
        },
        "as_of_scope": {
          "type": "string"
        },
        "source": {
          "type": "string"
        },
        "abstained": {
          "type": "boolean"
        },
        "stale": {
          "type": "boolean"
        },
        "reason": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "as_of",
        "as_of_scope",
        "source",
        "abstained",
        "stale",
        "reason"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "city",
    "total_matches",
    "showing",
    "venues",
    "receipt"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_hours(city, id, name)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "description": "City name or key"
    },
    "id": {
      "type": "integer",
      "description": "Venue id from search_venues"
    },
    "name": {
      "type": "string",
      "description": "Venue name (used if id not given)"
    }
  },
  "required": [
    "city"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string"
    },
    "id": {
      "type": "number"
    },
    "name": {
      "type": "string"
    },
    "hours": {
      "type": [
        "string",
        "null"
      ]
    },
    "url": {
      "type": "string"
    },
    "receipt": {
      "type": "object",
      "properties": {
        "as_of": {
          "type": [
            "string",
            "null"
          ]
        },
        "as_of_scope": {
          "type": "string"
        },
        "source": {
          "type": "string"
        },
        "abstained": {
          "type": "boolean"
        },
        "stale": {
          "type": "boolean"
        },
        "reason": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "as_of",
        "as_of_scope",
        "source",
        "abstained",
        "stale",
        "reason"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "city",
    "id",
    "name",
    "hours",
    "url",
    "receipt"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools