Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DOCTORETO_MCP_PROXYNoHTTP proxy for every request, e.g. `http://user:pass@host:port`

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
dt_suggestA

Search-box suggestions: doctors (hash id), speciality slugs, service tags and centers for a free phrase.

E.g. 'قلب' -> speciality 'cardiologist'. Doctors match by name, so for a speciality use the slug. Next: dt_search_doctors, dt_doctor or dt_center.

dt_search_doctorsA

Search doctors by city, speciality, neighborhood, service tag, name, gender, insurance and visit type.

Cards carry the hash id for dt_doctor; online prices are not in cards (use dt_doctor). Next: dt_doctor -> dt_free_slots.

dt_specialitiesA

List specialities with the slug dt_search_doctors needs; total counts all matches.

level is specialist, subspecialist, fellowship or general; parent is the broader speciality (interventional cardiology -> cardiologist). Prefer query. Next: dt_search_doctors(speciality=slug).

dt_citiesA

Find a city's slug (for search filters) and numeric id (for dt_suggest); main cities first.

With speciality: only main cities that have such doctors, with counts (a search may find more elsewhere). Next: dt_search_doctors(city=slug) or dt_neighborhoods.

dt_neighborhoodsA

Neighborhoods of a city (most doctors first) and nearby cities, each with a doctor count.

District groupings (منطقه 3, غرب) are filters too. Next: dt_search_doctors(city=..., neighborhood=slug).

dt_insurancesA

List basic and supplementary insurers with the ids dt_search_doctors(insurance_ids=...) takes.

total counts all matches. Few doctors list insurances, so the filter narrows a search a lot; centers list theirs in dt_center.

dt_doctorA

A doctor's profile with every bookable service, its price in Toman and its next free time.

services[] lists each office and online visit with consultation_id (input of dt_free_slots), fee (office visit: paid at the office; online: the online price), pay_online_now (charged when booking), the office address and coordinates, and next_free. Also about text, review summary (count, recommend percent, 1-5 category averages), office waiting time, treated conditions and photo. Long texts are cut (about 800 chars); full_text returns them whole. Next: dt_free_slots, dt_reviews.

dt_free_slotsA

Free appointment times of one service (office visit, phone/video call, clinic offer, lab admission).

Returns only days with free times: date, weekday, Jalali date and free start times (HH:MM, Tehran local). Past times today are dropped. bookable_until is the last day opened (often ~30 days ahead). Text consultations usually have no slots.

dt_reviewsA

Patient reviews (doctors and centers newest first, offers oldest first): stars 1-5, recommends, text (cut at 400 chars unless full_text), labels, visit type, reason, office waiting time, date (Gregorian + Jalali) and reply.

No sort or filter upstream: to find low ratings, page through (pages = total / limit). The summary (count, recommend percent, category averages) is in dt_doctor.

dt_search_centersA

Find hospitals, clinics, infirmaries, laboratories, imaging centers and pharmacies with filters.

Cards carry the hash id for dt_center. With near_lat and near_lon it searches a square around the point sorted by distance; dense areas return only part of the centers and count the rest in more_in_area. Without them limit cuts the upstream page (on_page items). No insurance filter: see dt_center. Next: dt_center, dt_reviews(of='center').

dt_centerA

A center's page: address, coordinates, departments, services, accepted insurances, attributes, opening hours, lab admission rules, bookable services with consultation_id (for dt_free_slots) and its doctors (hash ids for dt_doctor, with each doctor's earliest free slot).

Doctor private offices (type office) have no center page: use dt_doctor. Next: dt_free_slots, dt_doctor, dt_reviews(of='center').

dt_health_articlesA

Search Doctoreto's health magazine (about 5,000 articles) for background on a condition, test or treatment.

Returns title, link, publish date and a summary; set text_chars to read the articles. General information only, not medical advice: for a diagnosis book a doctor (dt_search_doctors).

dt_search_offersA

Search clinic offers: fixed-price procedures and packages (ultrasound, laser, dental, check-ups).

Cards give price and discounted price (Toman), pay_online (the deposit when payment is deposit_online, the rest at the place) and the default consultation_id for dt_free_slots. No sort. limit cuts the upstream page (on_page items): raise it to see the rest, page jumps a whole page. Next: dt_offer, dt_free_slots, dt_reviews(of='offer').

dt_offerA

One clinic offer in full: price, discount, deposit, who performs it and where, description, terms, capacity, expiry, rating, and bookable variants with consultation_id for dt_free_slots.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.2/5.0

Scored across 14 tools

Disambiguation5/5

Tools are cleanly partitioned into search (dt_search_doctors/centers/offers), detail lookups (dt_doctor/center/offer), reference data (dt_specialities/cities/neighborhoods/insurances), and single-purpose helpers (dt_suggest, dt_reviews, dt_free_slots, dt_health_articles). Descriptions explicitly state the 'Next:' chaining, so overlapping-sounding pairs like dt_suggest vs dt_search_doctors are clearly distinguished. No two tools appear to do the same thing.

Naming Consistency5/5

Every tool uses the dt_ snake_case prefix with a predictable split: dt_search_* for searches and dt_<noun> for detail/listing endpoints (dt_doctor, dt_center, dt_offer, dt_reviews, dt_free_slots). The convention is applied uniformly across all 14 tools.

Tool Count5/5

14 tools is well-scoped for a doctor/center discovery domain, with each tool earning its place across search, detail, reference, and content functions. Nothing feels redundant or padded.

Completeness4/5

The discovery-to-availability funnel (search -> detail -> free slots -> reviews, plus offers and articles) is fully covered with no dead ends for information gathering. The only notable gap is the absence of an actual booking tool despite consultation_id/free-slot data being surfaced, so agents can inform but not complete a booking.

Maintenance

ActivityMaintained
ResponsivenessNo issues