MCP Server
Model Context Protocol · last updated July 2026
Dim Hour runs a public MCP server so AI assistants can query the catalog directly instead of scraping the site. Five read tools need no API key. Ask for the best omakase in New York under $$$, Michelin-starred Mexican in Chicago, or what opened in Austin recently, and get structured JSON back.
Connect
- Streamable HTTP
- https://dimhour-mcp.jakeoborn.workers.dev/mcp
- SSE
- https://dimhour-mcp.jakeoborn.workers.dev/sse
Claude
Settings → Connectors → Add custom connector, and paste the Streamable HTTP URL above. No key, no account.
Claude Code
claude mcp add --transport http dimhour \
https://dimhour-mcp.jakeoborn.workers.dev/mcp
Cursor, VS Code, Cline, Continue
Any client that speaks Streamable HTTP works with the same URL. A typical config entry:
{
"mcpServers": {
"dimhour": {
"url": "https://dimhour-mcp.jakeoborn.workers.dev/mcp"
}
}
}
The server is stateless per MCP revision 2026-07-28 — a
POST with no Mcp-Session-Id is answered
directly, so serverless and edge clients work without a handshake. The
SSE endpoint remains available for older clients.
Tools
The five read tools are open. The rest act on a Dim Hour account and need a personal API key.
| Tool | Auth | What it does |
|---|---|---|
list_cities | none | The 20 covered cities and the key to pass to other tools. |
search_venues | none | Free-text plus filters: cuisine, neighborhood, price, min score, awards, happy hour, trending. Omit city to search all cities at once. |
get_venue | none | The full record for one venue. |
list_curated | none | Editorial lists for a city. |
list_new_venues | none | Recently added venues. |
list_my_trips | API key | Your saved trips. |
save_venue | API key | Save a venue to your account. |
add_to_trip | API key | Add a venue to a trip. |
Every tool is annotated with a title and a readOnlyHint, so a
client can tell a read from a write before calling it. The three write
tools are additive — they never delete or overwrite.
What a venue record carries
- score — 0–100 quality score
- name, cuisine, neighborhood, price — price is a 1–4 tier
- address, lat, lng — verified, never guessed from a neighborhood centroid
- dishes — signature items from the venue's real menu
- awards — Michelin, James Beard and similar, quoted from the awarding body
- reservation — Resy, OpenTable, Tock, SevenRooms or walk-in
- hh — happy hour details where they exist
- url — a link to the venue's page on dimhour.com
Example
curl -s -X POST https://dimhour-mcp.jakeoborn.workers.dev/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"search_venues",
"arguments":{"city":"nyc","query":"omakase","limit":3}}}'
Rate limits and fair use
Anonymous read access is capped per minute and search_venues
returns at most 25 results per call. An API key lifts the per-minute cap.
The limits exist to stop bulk extraction, not to make normal assistant use
awkward — if you are building something real and hitting them, get in
touch.
API keys
Generate one in the Dim Hour app under Profile. The server stores only a
SHA-256 hash of the key, never the key itself. Send it as
Authorization: Bearer <key> or x-api-key.
A key is tied to your account and only ever reads or writes your own data.
Data, accuracy and terms
The catalog is editorial. Venue data is verified against the venue's own site or a named source, and fields we cannot verify are left empty rather than filled with plausible guesses. Even so, restaurants close, move and change menus — treat hours and reservation links as best-effort and check the venue directly before relying on them.
The read tools are free for assistant use. Bulk extraction, redistribution of the catalog, or reselling it as a dataset is not permitted. See the privacy policy for how account data is handled.
Support
Issues, questions, or a use case you would like supported — support@dimhour.com or open an issue. Machine-readable discovery lives at /llms.txt.