Skip to main content
Glama

Nearby places by category

bl_nearby
Read-onlyIdempotent

Find nearby pharmacies, restaurants, or gas stations around a latitude/longitude, returning addresses, phone numbers, ratings, and distance with filters for open status, price, and rating.

Instructions

List places of one kind (pharmacy, restaurant, gas station...) around a point, with address, phone and rating.

Results are in Balad's own order (as on balad.ir, filters included), each with its straight-line distance from the point. Text that names a category (پیتزا -> fast-food-restaurant) lists that whole category, as the site does; category then says which. Get the point from bl_search (a city or landmark) or from the user. For the closest by driving time use bl_nearest_by_drive; for places on the way between two points use bl_along_route; for hours, photos and reviews of one place call bl_place with its id. Empty: widen radius_km, drop filters or use another word; bl_categories lists valid slugs.

Input Schema

NameRequiredDescriptionDefault
latYesLatitude in degrees, e.g. 35.7448.
lngYesLongitude in degrees, e.g. 51.3753.
sortNorelevance (Balad's default), rating (best rated first) or popular (most visited).relevance
whatYesA category slug from bl_categories (e.g. pharmacy, restaurant, gas-station, atm) or free text (e.g. پیتزا, کافه).
limitNoMax places to return with details (1-40).
priceNoPrice level; restaurants and cafes only.
open_nowNoOnly places Balad marks as open right now.
radius_kmNoSearch box half-width in km, e.g. 1 (0.2-20).
min_ratingNoOnly places rated above this, e.g. 4.
with_phoneNoOnly places with a phone number.
with_photosNoOnly places with photos.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this a read-only, idempotent, open-world read, and the description adds non-obvious behavior the schema cannot: results follow Balad's own ordering with site filters applied, each carries a straight-line (not driving) distance, and a free-text category word expands to an entire category with a `category` field disambiguating it. That category-expansion rule is the kind of surprise that would otherwise distort a naive result count.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with what it returns, then ordering semantics, then sibling routing, then empty-result recovery — no sentence is filler. It is dense and the multi-line layout is longer than strictly needed, but every clause carries information an agent would otherwise have to guess.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter, no-output-schema tool it covers returned fields, ordering, distance semantics, category expansion, and empty results. The one omission is what happens past `limit`'s 40 cap (no pagination/offset path is mentioned), which leaves an agent unsure how to retrieve more results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns above baseline by explaining that `what` accepts either a slug from bl_categories or free text whose category is then reported back, and by tying `radius_km` to the empty-result remediation. It offers no extra detail on sort, price, min_rating, or limit, relying on the schema for those.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource ("List places of one kind ... around a point") plus the returned fields, and the category examples (pharmacy, restaurant, gas station) plus the Persian text mapping (پیتزا -> fast-food-restaurant) make the scope unmistakable. An agent can distinguish this from bl_search or bl_place without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes to four siblings with the condition that selects each: bl_nearest_by_drive for driving time, bl_along_route for points on the way, bl_place for hours/photos/reviews, bl_categories for slugs, and bl_search for the origin point. It also prescribes recovery on an empty result (widen radius_km, drop filters, try another word).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.