Skip to main content
Glama
omidgharib
by omidgharib

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DIVAR_PROVIDERNoProvider mode: public for real public access, fixture for offline sample data, or kenar for the official Kenar adapter.
DIVAR_STATE_DIRNoDirectory used for local state such as SQLite data. Set in the process environment or the MCP client env section.
DIVAR_HTTP_TOKENSNoJSON mapping of random tokens of at least 24 characters to account IDs for multi-account HTTP usage. Each request is bound to the identity from its Bearer token.
DIVAR_ALLOWED_HOSTSNoAllowed Host values for HTTP transport when using a custom domain.
DIVAR_KENAR_API_KEYNoApproved Kenar app key. Required when DIVAR_PROVIDER=kenar.
DIVAR_ALLOWED_ORIGINSNoAllowed Origin values for HTTP transport when using a custom domain.
DIVAR_ALLOW_LOCAL_HTTPNoSet to 1 to explicitly allow local HTTP transport without authentication.
DIVAR_NOTIFICATION_URLNoHTTPS destination URL for worker event notifications. If set, the worker delivers events with an Idempotency key.
DIVAR_NOTIFICATION_TOKENNoOptional token for the configured notification URL.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
dv_resolve_entitiesB

Resolve city/district/category names or canonical model keys. Options depend on the configured provider.

dv_filter_schemaC

Discover category filter types and units. Schema presence is not proof that the source enforces a filter.

dv_parse_searchB

Parse Persian amounts, simple category intent and required/preferred amenities. Review assumptions and unresolved text.

dv_searchC

Search with evidence, explicit unknowns and bounded coverage. Pass next_cursor with the same query to drain buffered results.

dv_get_listingA

Read public details of a token or HTTPS divar.ir listing URL; preserve missing/false/zero and separate rent/deposit.

dv_get_listingsB

Read 1-10 listings with an independent result or actionable error for each member.

dv_similarC

Find like-for-like items; reject unknown/different critical specs and explain exclusions. Optional request narrows the sample.

dv_compareB

Compare supplied ads and unresolved facts. For rentals, show a deposit/rent Pareto frontier without inventing a conversion rate.

dv_rankC

Rank the scanned sample by explicit preferences and supported price evidence. Optional monthly deposit opportunity-cost rate is an assumption, not a market fact.

dv_market_snapshotB

Describe asking-price samples by category/transaction. Filter sale/rent/deposit independently and report coverage.

dv_assess_priceB

Compare asking price against like-for-like ads or abstain. Evidence quality is a heuristic, never a probability or certified valuation.

dv_statusA

Show provider capabilities, local budget and scheduler configuration. Does not claim live connectivity.

dv_countC

Public upstream approximate count or an explicitly labelled returned-sample count. Local constraints are not a source-wide count.

dv_market_historyB

Record one asking-price sample per UTC day or read saved points. History starts when first recorded; composition changes are not item-price changes.

dv_nearbyB

Public map listings near a point. Coordinates/distances may be approximate; unsupported providers fail explicitly.

dv_geocodeB

Find a public landmark/place near a map centre; not an exact personal address lookup.

dv_locateB

Resolve a point's city/district using the public place endpoint; location accuracy is source-dependent.

dv_boundariesB

Get published public neighbourhood outlines, simplified by the source helper; not cadastral boundaries.

dv_neighboursC

List adjacent and nearby neighbourhoods with the helper's distinct bases preserved.

dv_place_mappingB

Map old public place identifiers to current IDs; unresolved identifiers remain unverified.

dv_seller_summaryA

Read public seller summary where available. No login, phone lookup or fallback on access denial.

dv_dealer_summaryC

Read the publicly accessible first batch of a dealer page; permission failures remain explicit.

dv_watch_createB

Persist an owner-scoped watch. A worker must run checks. Existing results form a baseline unless explicitly included.

dv_watch_listA

List only this owner's saved watches, their continuation, coverage and last error.

dv_watch_updateA

Change a watch interval without discarding its pending scan or seen versions.

dv_watch_deleteA

Delete this owner's watch and its seen set; already-enqueued events remain available for audit/delivery.

dv_watch_checkB

Scan a bounded watch chunk and atomically enqueue events before advancing the scan continuation.

dv_watch_eventsA

Read durable events using an independent delivery cursor. Reading does not acknowledge or remove events.

dv_watch_ackC

Acknowledge only this owner's received events; retries are idempotent.

dv_price_historyB

Return this owner's observations of this listing, starting at first observation. It is not a retroactive market index.

dv_export_resultsB

Create a bounded, owner-scoped one-hour export resource; CSV cells are protected against formula execution.

Prompts

Interactive templates invoked by user choice

NameDescription
best_under_budget
compare_ads
appraise_listing
watch_market

Resources

Contextual data attached and managed by the client

NameDescription
cities_resource
categories_resource

TDQS

C2.9/5.0

Scored across 31 tools

Disambiguation4/5

Most tools have clearly distinct roles, especially the watch suite and search-pipeline tools. However, the market-analysis cluster (similar, compare, rank, assess_price, market_snapshot, market_history) could still be confused by an agent without careful reading, even though the descriptions explicitly differentiate them.

Naming Consistency4/5

All names use a consistent dv_ snake_case prefix and are readable. The main deviation is that many names are noun phrases (dv_status, dv_boundaries, dv_market_snapshot) rather than strict verb_noun patterns, but they remain predictable.

Tool Count2/5

31 tools is well above the typical 3-15 range and exceeds the 25+ threshold for 'too many'. While the domain is broad, the large surface increases selection burden and likely includes marginal additions.

Completeness4/5

The surface covers search, listing retrieval, market analytics, geospatial lookup, seller/dealer summaries, watch lifecycle, and export, which is broad and mostly complete. Minor gaps exist, such as no full pagination for dealer/seller listings and no contact or direct user-interaction tools, but these are likely domain-limited.

Maintenance

ActivityMaintained
ResponsivenessNo issues