Tools
recommend
AI-powered natural-language dining recommendations
recommend
Get personalized restaurant recommendations from a natural-language query. The AI considers occasion, preferences, location, and dimensional data to rank results.
Tier: Concierge ($80/1K calls)
Use cases
- Power conversational dining recommendations in AI assistants
- Match restaurants to specific occasions ("quiet anniversary dinner", "quick lunch near the office")
- Replace multi-step search-and-filter workflows with a single natural-language query
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | Yes | -- | Natural-language dining request (e.g., "A quiet dinner for two in Mayfair, nice wine list") |
location | string | No | -- | City or area to bias the search toward |
latitude | number | No | -- | Latitude of search center (use with longitude) |
longitude | number | No | -- | Longitude of search center (use with latitude) |
limit | number | No | 5 | Number of results (1-10) |
Response
| Field | Type | Possible values | Description |
|---|---|---|---|
status | string | "ok", "error", "no_coverage" | Response status |
query_understood | string | -- | The AI's rephrasing of your query (confirms interpretation) |
location_used | string | -- | Resolved location used for the search |
total_candidates | number | -- | How many restaurants were considered |
results | array | -- | Ranked recommendations (see fields below) |
Result fields
All basic lookup fields (seemor_id, name, address, coordinates, cuisine_tags, price_level, grade, grade_label, tldr, neighborhood, city, seemor_url, coverage_level, analysis_date), plus:
| Field | Type | Possible values | Description |
|---|---|---|---|
relevance | string | "strong_match" (fit score >= 75), "good_match" (>= 55), "match" (< 55) | How well this restaurant fits the query |
match_reasons | string[] | -- | Why this restaurant fits (e.g., "Low noise level", "Strong wine list") |
distance_km | number | null | -- | Distance from search coordinates. Null if no coordinates provided. |
Example request
curl -X POST https://api.seemor.ai/api/mcp \
-H "Authorization: Bearer sk_seemor_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "recommend",
"arguments": {
"query": "A quiet dinner for two in Mayfair, nice wine list",
"location": "London",
"limit": 3
}
}
}'Example response
{
"status": "ok",
"query_understood": "Quiet, intimate dinner for two in Mayfair with a strong wine selection",
"location_used": "Mayfair, London",
"total_candidates": 127,
"results": [
{
"seemor_id": "...",
"name": "The Square",
"grade": "A",
"grade_label": "Excellent",
"price_level": "very_expensive",
"tldr": "Refined modern European dining with an extensive wine program...",
"relevance": "strong_match",
"match_reasons": [
"Low noise level - ideal for conversation",
"Extensive, award-winning wine list",
"Located in the heart of Mayfair"
],
"distance_km": 0.2
}
]
}Notes
- Response time is 3-8 seconds (AI-powered matching and ranking).
- Location can be specified in the query text, as a separate
locationparameter, or via coordinates. If both query text andlocationparameter include a location, thelocationparameter takes priority. - Returns
status: "no_coverage"if the requested area has insufficient restaurant data. This is not billed. - Requires a paid API key. Free keys receive a blocking error.