Doctoreto

السجل الرسمي الصحة

Unofficial read-only Doctoreto: Iranian doctors, visit fees, free appointment times, clinics, labs.

ماذا يمكنك أن تفعل مع Doctoreto؟

  • Find doctors by speciality, city, neighborhood, name, gender, insurance and visit type (office, phone, text, video, instant)
  • Soonest first: sort by the earliest free slot, by popularity or by number of bookings; search near a point
  • Real prices: office visit fee (also when the site hides it), online consultation prices, deposits
  • Free times: free appointment times per day for any office or online service, up to a month ahead
  • Reviews: stars, recommend rate, waiting time, per-category averages; reviewer names are never returned
  • Centers: hospitals, clinics, laboratories, imaging, pharmacies (24h, state/private, map search), hours and insurances
  • Clinic offers: fixed-price procedures (ultrasound, echo, laser, check-ups) with deposits and free times
  • Health magazine: background articles on conditions and tests

التثبيت

أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: ‏.cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).

PYPI package doctoreto-mcp
Claude Code
claude mcp add doctoreto -e 'DOCTORETO_MCP_PROXY=<DOCTORETO_MCP_PROXY>' -- uvx doctoreto-mcp==0.4.2
إعداد JSON (Claude Desktop وCursor وVS Code)
{
    "mcpServers": {
        "doctoreto": {
            "command": "uvx",
            "args": [
                "doctoreto-mcp==0.4.2"
            ],
            "env": {
                "DOCTORETO_MCP_PROXY": "<DOCTORETO_MCP_PROXY>"
            }
        }
    }
}

متغيرات البيئة

  • DOCTORETO_MCP_PROXY Optional HTTP proxy URL for every request, or a comma-separated list tried one at a time (next one after a block or connect error). System proxy settings are ignored.

التوثيق

مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.

المحتويات
  1. doctoreto-mcp: Doctoreto MCP server for AI agents
  2. For AI agents
  3. Why
  4. What it can do
  5. Quick start
  6. Tools
  7. How it works
  8. Good to know
  9. FAQ
  10. Configuration
  11. فارسی: سرور MCP دکترتو (نوبت‌دهی پزشک)
  12. Development
  13. Related servers
  14. Disclaimer
  15. Author
  16. License

doctoreto-mcp: Doctoreto MCP server for AI agents

Let your AI agent find the right Iranian doctor on Doctoreto (دکترتو).

An unofficial, read-only MCP server for Doctoreto, the Iranian doctor appointment and online consultation site:

search doctors by speciality, city and visit type, compare visit fees, see free appointment times, read reviews, and find hospitals, labs and clinic offers, from Claude, Cursor or Copilot.

For AI agents · Quick start · What it can do · Tools · FAQ · فارسی


For AI agents

  • What: unofficial MCP server (model context protocol) for Doctoreto (دکترتو, doctoreto.com), the Iranian doctor appointment and online consultation site. Queries work in Persian or English; prices are in Toman.
  • Install: uvx doctoreto-mcp or claude mcp add doctoreto -- uvx doctoreto-mcp. Transport: stdio. Needs uv (Python 3.10+).
  • Auth: none, no API key or account. Optional DOCTORETO_MCP_PROXY (HTTP proxy URL, or a comma-separated list tried one at a time); system proxy settings are ignored.
  • Access: read-only. It cannot log in, book, pay or post a review, so no confirmation is needed before calling any tool. Give the user the doctor's page link to book.
  • Tools: 14, all prefixed dt_. Start with dt_suggest (free phrase to doctors and slugs), dt_search_doctors, dt_doctor, dt_free_slots; dt_search_centers and dt_search_offers for hospitals, labs and clinic offers.
  • Typical sequence: dt_search_doctors -> dt_doctor -> dt_free_slots -> dt_reviews.
  • Use when: the user wants to find a doctor in Iran, compare visit fees (office, phone, text, video), see free appointment times, or look up centers, labs and fixed-price clinic offers.
  • Do not use when: the user wants to actually book or pay, or needs medical advice.
  • Output: compact JSON. Prices in Toman, dates Gregorian (YYYY-MM-DD, Jalali given next to them), times Tehran local. Doctors, centers and offers use a 6-character id (or the page URL); a name slug alone cannot be resolved. Use dt_doctor for online prices.
  • Privacy: no phone numbers and no reviewer names are returned.
  • Machine-readable: server.json and the iran-mcp catalog (TOOLS.md, servers.json, llms.txt).

Why

On Doctoreto (doctoreto.com) a doctor card shows a name and a rating, but the things you decide on are a few clicks deeper: which offices the doctor has, what the visit costs at the office (often hidden on the page), what a phone or video consultation costs, and when the next free time actually is. An agent with doctoreto-mcp reads the search, the doctor's services and the slot picker, and hands you the booking link:

You: A cardiologist in Pasdaran, Tehran, as soon as possible. What does the visit cost?

Agent: calls dt_search_doctors(city="tehran", speciality="cardiologist", neighborhood="pasdaran", has_free_slot=True) → dt_doctor(doctor="xqbEWZ") → dt_free_slots(consultation_id=1943, days=7)

ServiceFeePaid when bookingNext free
Office visit, Pasdaran250,0000Tue 6 Oct, 10:00 (25 free times that day)
Phone call, 15 minutes750,000750,000Tue 6 Oct, 10:00

دکتر کامبیز پرآذران, subspecialist in cardiology: 408 reviews, 92% recommend, about 36 minutes wait at the office. The office fee is paid at the office. Book here: https://doctoreto.com/doctor/dr-kambiz-parazaran/xqbEWZ

Real tool output from 2026-10-06; prices and free times change all the time. Prices are in Toman.

Every reply is compact JSON with empty values left out, so it does not flood the agent's context.

What it can do

  • Find doctors by speciality, city, neighborhood, name, gender, insurance and visit type (office, phone, text, video, instant)
  • Soonest first: sort by the earliest free slot, by popularity or by number of bookings; search near a point
  • Real prices: office visit fee (also when the site hides it), online consultation prices, deposits
  • Free times: free appointment times per day for any office or online service, up to a month ahead
  • Reviews: stars, recommend rate, waiting time, per-category averages; reviewer names are never returned
  • Centers: hospitals, clinics, laboratories, imaging, pharmacies (24h, state/private, map search), hours and insurances
  • Clinic offers: fixed-price procedures (ultrasound, echo, laser, check-ups) with deposits and free times
  • Health magazine: background articles on conditions and tests
  • Read-only by design: no login, no booking, no payment; the agent gives you the link to book

Example prompts:

  • "A female dermatologist in Shiraz with a free slot this week, and her visit fee?"
  • "Which pediatricians offer a video call today, and how much is it?"
  • "A 24-hour pharmacy near Vanak Square."
  • "How much is an echocardiography at a Doctoreto clinic in Tehran, and when is the next free time?"
  • "Compare the phone consultation prices of cardiologists in Isfahan who accept Tamin Ejtemaei insurance."
  • یک متخصص گوش و حلق و بینی در محدوده سعادت‌آباد با بیمه تامین اجتماعی
  • نزدیک‌ترین نوبت خالی متخصص زنان در شیراز و هزینه ویزیت او چقدر است؟
  • آزمایشگاه‌های شبانه‌روزی در تهران را پیدا کن.

Quick start

You need uv. No API key or account.

Claude Code

claude mcp add doctoreto -- uvx doctoreto-mcp

Claude Desktop

Settings → Developer → Edit Config, then add:

{
  "mcpServers": {
    "doctoreto": { "command": "uvx", "args": ["doctoreto-mcp"] }
  }
}

Cursor

Click Install in Cursor above, or add the Claude Desktop block to ~/.cursor/mcp.json (or .cursor/mcp.json in a project).

VS Code (Copilot agent mode)

Click Install in VS Code above, or add to .vscode/mcp.json:

{
  "servers": {
    "doctoreto": { "type": "stdio", "command": "uvx", "args": ["doctoreto-mcp"] }
  }
}

Codex CLI

codex mcp add doctoreto -- uvx doctoreto-mcp

Or in ~/.codex/config.toml:

[mcp_servers.doctoreto]
command = "uvx"
args = ["doctoreto-mcp"]

Gemini CLI

Add to ~/.gemini/settings.json:

{
  "mcpServers": {
    "doctoreto": { "command": "uvx", "args": ["doctoreto-mcp"] }
  }
}

Windsurf

Add the Claude Desktop block to ~/.codeium/windsurf/mcp_config.json.

Anything else

It's a standard stdio MCP server: run uvx doctoreto-mcp, or pip install doctoreto-mcp and run doctoreto-mcp.

Tools

Doctors, centers and offers are identified by a 6-character id (xqbEWZ, the last part of doctoreto.com/doctor/dr-kambiz-parazaran/xqbEWZ); every tool also accepts the page URL itself.

Find a doctor (6)

ToolWhat it does
dt_suggestFree phrase → matching doctors, speciality slugs, service tags and centers
dt_search_doctorsDoctors by city, speciality, neighborhood, name, gender, insurance, visit type, free slot; sorting
dt_specialitiesSpeciality list with the slugs the search needs
dt_citiesCity slug and id; cities that have a speciality, with doctor counts
dt_neighborhoodsNeighborhoods of a city and nearby cities, with doctor counts
dt_insurancesBasic and supplementary insurers with their ids

One doctor (3)

ToolWhat it does
dt_doctorProfile, every office and online service with fee, deposit, address and next free time, review summary
dt_free_slotsFree appointment times per day for one service (office, phone, video, offer, lab), up to 31 days
dt_reviewsReviews of a doctor, center or offer: stars, text, labels, waiting time, replies (no names)

Centers (2)

ToolWhat it does
dt_search_centersHospitals, clinics, labs, imaging, pharmacies by city, type, 24h, state/private, or near a point
dt_centerOne center: hours, departments, insurances, lab rules, bookable services, doctors

Clinic offers and reading (3)

ToolWhat it does
dt_search_offersFixed-price procedures and packages by text, city, speciality, price range, doctor or place
dt_offerOne offer: price, deposit, provider, terms, variants with their free times
dt_health_articlesDoctoreto health magazine articles on a condition, test or treatment

All 14 tools are annotated readOnlyHint: true and return compact structured JSON, so they don't flood the agent's context.

How it works

  AI agent  (Claude, Cursor, Copilot, ...)
      │
      │  MCP over stdio
      ▼
  doctoreto-mcp  (runs on your machine)
      │
      │  HTTPS (JSON)
      ├──────▶  api.doctoreto.com   (doctors, slots, reviews, centers, offers)
      └──────▶  doctoreto.com/blog   (health magazine)

doctoreto-mcp runs locally and calls the same public endpoints the Doctoreto website uses. There's no hosted server in between, no API key, and nothing about you is sent anywhere else. Requests use a Chrome-like TLS fingerprint and headers, go out at most 2 at a time with a short random pause, and retry twice on timeouts, 5xx and 429. Only GET requests are ever made.

Good to know

  • Prices are in Toman. For an office visit fee is what you pay at the office and pay_online_now what is charged when booking (usually 0). For phone, text and video fee is the online price. A missing fee means the doctor lists none (null and empty values are left out of results; false and 0 are kept).
  • Use dt_doctor for online prices. The search list and the profile show a phone price three times the one on the booking page; dt_doctor reads the booking box, which matches the page.
  • Dates are Gregorian YYYY-MM-DD (1405-07-22 = 2026-10-14); times are Tehran local. Jalali dates are given next to them.
  • Booking happens on the site. It needs an SMS code, so the agent finds the doctor and time and gives you the page link.
  • Insurance: few doctors list insurances, so insurance_ids narrows a search a lot. Centers list theirs in dt_center; the center search ignores insurance filters.
  • Reviews: doctor and center reviews come newest first, offer reviews oldest first; each review date is the Tehran day, as on the page.
  • Search pages hold exactly limit doctors, also when the site mixes sponsored doctors in. dt_search_offers and the non-map dt_search_centers cut the site's page (about 40 / 20 items) to limit and report on_page.
  • Lists: dt_specialities and dt_insurances return up to limit entries (defaults cover the whole list) plus total, and are cached for an hour together with dt_cities. Long review, about, description and terms texts are cut (400 to 800 characters); full_text=true on dt_doctor, dt_reviews, dt_center and dt_offer returns them whole.
  • Photos and offices: search cards and dt_doctor carry the doctor's photo URL (image). In a search card, earliest_free.place_id matches an offices[].id, so you can tell which office has the first free slot.
  • Privacy: no phone numbers and no reviewer names are returned.
  • What it does not do: no login, booking, payment, reviews or chat, and no medical advice. Please keep request rates reasonable.
  • Checked against the website: on 2026-10-06 every tool's output was compared with the live doctoreto.com pages (names, fees, free times per day, review order, search totals and order, centers, offers).

FAQ

Is there a Doctoreto API or MCP server for AI agents?

This unofficial MCP server wraps the public endpoints the Doctoreto website itself uses, so Claude, Cursor or Copilot can search doctors, compare visit fees and read free times.

How do I use Doctoreto with Claude, Cursor or Copilot?

Add the server with claude mcp add doctoreto -- uvx doctoreto-mcp (or use the Cursor and VS Code buttons above, or the config for your client in Quick start), then ask in Persian or English, for example "a cardiologist in Pasdaran, Tehran, as soon as possible".

Is it official, safe and free?

It is unofficial, open source (MIT) and free. It is read-only, needs no account or API key, and runs on your machine without sending data to any other server.

Can it book an appointment for me?

No, and that's deliberate. It has no login and never calls the booking, payment, review or chat endpoints. The agent finds the doctor, the service and a free time; you book on doctoreto.com with your own phone number.

"slug alone cannot be resolved"

Doctoreto's API needs the 6-character id, not the name slug. Paste the whole page URL (https://doctoreto.com/doctor/<slug>/<id>), or let the agent search by the doctor's Persian name.

Do I need an Iranian IP?

No geo block was seen: direct calls and calls through a proxy in Turkey both worked (2026-10-06). Cloud servers were not tested; if Doctoreto blocks one, set DOCTORETO_MCP_PROXY.

A search returns 0 doctors

The filters may be too narrow (an insurance plus a neighborhood often is). Drop a filter, or check the slugs with dt_suggest, dt_specialities or dt_neighborhoods. An unknown city or speciality slug returns an error.

Why does the phone price differ from the website?

The site's search list and doctor profile show a phone consultation price three times the one on the booking page. dt_doctor reads the booking box, so its prices match what you pay.

Claude Desktop says uvx is not found

Use the full path to uvx (where uvx on Windows, which uvx on macOS/Linux) as command.

How do I debug what the agent sees?

npx @modelcontextprotocol/inspector uvx doctoreto-mcp

Configuration

VariableDefaultMeaning
DOCTORETO_MCP_PROXYunsetOptional HTTP proxy URL for every request, e.g. http://user:pass@host:port; system proxy settings are ignored. A comma-separated list is used one at a time: the next proxy takes over when one is blocked or cannot connect

If Doctoreto ever serves a bot-check page, install doctoreto-mcp[browser] and run patchright install chromium; a headless browser then clears it once and the cookies are reused.

فارسی: سرور MCP دکترتو (نوبت‌دهی پزشک)

doctoreto-mcp یک سرور MCP غیررسمی برای دکترتو (سایت نوبت‌دهی اینترنتی پزشک و مشاوره آنلاین) است که به دستیار هوش مصنوعی شما (Claude، Cursor، Copilot و ...) اجازه می‌دهد در میان پزشکان ایران، پزشک مناسب را بر اساس تخصص، شهر، محله، بیمه و نوع ویزیت (حضوری، تلفنی، متنی، تصویری) پیدا کند، هزینه ویزیت و زمان‌های خالی نوبت را ببیند، نظرات بیماران را بخواند و بیمارستان، آزمایشگاه و خدمات دکترتو کلینیک را هم جست‌وجو کند.

چه کارهایی می‌کند

  • جستجوی پزشک بر اساس تخصص، شهر، محله، نام، جنسیت، بیمه و نوع ویزیت، با مرتب‌سازی بر اساس نزدیک‌ترین نوبت.
  • هزینه ویزیت حضوری (حتی وقتی سایت آن را نشان نمی‌دهد) و قیمت مشاوره تلفنی، متنی و تصویری.
  • نوبت خالی هر پزشک یا خدمت، تا یک ماه جلوتر.
  • نظرات بیماران: امتیاز، درصد توصیه، زمان انتظار (بدون نام نظردهنده).
  • مراکز درمانی: بیمارستان، کلینیک، آزمایشگاه، مرکز تصویربرداری و داروخانه (از جمله شبانه‌روزی)، با ساعت کاری و بیمه‌های پذیرفته‌شده.
  • خدمات دکترتو کلینیک با قیمت ثابت (سونوگرافی، اکو، لیزر، چک‌آپ) و مجله سلامت.

نکته‌ها

  • فقط خواندنی است: وارد حساب نمی‌شود، نوبت رزرو نمی‌کند و پرداخت نمی‌کند؛ لینک صفحه پزشک را برای رزرو می‌دهد. توصیه پزشکی نیست.
  • همه قیمت‌ها به تومان است. تاریخ‌ها میلادی هستند و کنارشان تاریخ شمسی هم آمده؛ ساعت‌ها به وقت تهران است.
  • شماره تلفن و نام نظردهندگان را برنمی‌گرداند.
  • کلید API لازم نیست و روی سیستم خود شما اجرا می‌شود و به هیچ سرور واسطی داده نمی‌فرستد.

نصب (اول uv را نصب کنید). در Claude Code:

claude mcp add doctoreto -- uvx doctoreto-mcp

در Claude Desktop، Cursor و بقیه برنامه‌ها همان تنظیم بخش Quick start را بگذارید.

نمونه پرسش‌ها

  • «یک متخصص قلب در پاسداران تهران با نزدیک‌ترین نوبت خالی، با هزینه ویزیت»
  • «متخصص گوش و حلق و بینی در سعادت‌آباد با بیمه تامین اجتماعی»
  • «ویزیت تصویری کدام متخصص کودکان امروز نوبت دارد و قیمتش چقدر است؟»

Development

git clone https://github.com/sepehr071/doctoreto-mcp && cd doctoreto-mcp
uv sync
uv run ruff check . && uv run ruff format --check .
uv run python -m pytest -q          # offline, against recorded responses
uv run python -m pytest -m live -q  # real APIs
uv build

Tools live in src/doctoreto_mcp/search.py, doctor.py, centers.py, offers.py and info.py; each is a typed async function with a docstring that tells the agent when to use it. Issues and PRs are welcome, especially new tools and fixes for API changes.

Releases: bump the version in pyproject.toml and server.json, then push a v* tag. GitHub Actions tests, publishes to PyPI and the MCP Registry, and creates the GitHub Release.

  • iran-mcp: catalog of all Iranian-service MCP servers
  • paziresh24-mcp for Iranian doctors, profiles and free appointment slots on Paziresh24
  • jabama-mcp for Iranian stays and villa rentals on Jabama
  • iran-news-mcp for Iranian news

Disclaimer

Unofficial and not affiliated with or endorsed by Doctoreto. It is read-only and uses the public endpoints of the doctoreto.com website, which can change without notice. It gives information, not medical advice. Please keep request rates reasonable.

If this saves you clicks, a star helps others find it.

Author

Built and maintained by Sepehr Radmard (سپهر رادمرد). Connect on LinkedIn or follow @sepehr071 on GitHub for more MCP servers for Iranian websites, all listed in iran-mcp. If this saves you time, a star on the repo helps other people find it.

License

MIT

الأسئلة الشائعة

ما هو Doctoreto؟

Unofficial read-only Doctoreto: Iranian doctors, visit fees, free appointment times, clinics, labs.

كيف أثبّت Doctoreto؟

يعمل على جهازك. في Claude Code: claude mcp add doctoreto -e 'DOCTORETO_MCP_PROXY=<DOCTORETO_MCP_PROXY>' -- uvx doctoreto-mcp==0.4.2. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.

هل يحتاج Doctoreto إلى مفتاح API؟

لا يذكر إدراجه في السجل أي مفتاح أو سر إلزامي. قد تتطلب بعض الميزات حسابًا لدى الخدمة التي يتصل بها.

هل Doctoreto مفتوح المصدر؟

نعم. شيفرته متاحة على GitHub بترخيص MIT.

من يصون Doctoreto؟

ينشره sepehr071. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.

من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.