Doctolib MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DOCTOLIB_MCP_DATA | No | Dossier des surveillances (watches.json) et de la configuration des alertes (config.json) | ~/.doctolib-mcp |
| DOCTOLIB_MCP_USER_AGENT | No | User-Agent envoyé (obligatoire pour les créneaux) | Chrome récent |
| DOCTOLIB_MCP_MIN_INTERVAL | No | Délai minimal entre deux requêtes vers Doctolib (secondes) | 0.35 |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_specialitiesA | Liste des 123 spécialités Doctolib (slug à utiliser dans les autres outils, nom, id). query filtre sans tenir compte des accents (ex. 'derma', 'kiné', 'ophtal'). |
| autocompleteA | Autocomplétion Doctolib : spécialités / actes (searchEntries) et praticiens ou centres par nom (profiles). Astuce : le moteur préfère les préfixes courts ('derma' plutôt que 'dermatologue'). |
| search_filtersB | Filtres de recherche proposés par Doctolib pour une spécialité (délais, secteurs, langues, vidéo). |
| search_cityB | Communes françaises par nom ou code postal, avec coordonnées (geo.api.gouv.fr). |
| geocode_addressB | Adresse précise → coordonnées (api-adresse.data.gouv.fr), pour centrer une recherche sur un domicile. |
| place_autocompleteA | Autocomplétion de lieux côté Doctolib (villes, codes postaux, adresses). Ne renvoie pas de coordonnées. |
| search_practitionersA | Praticiens d'une spécialité autour d'un lieu (ville/code postal/adresse ou lat+lng), triés par distance. Chaque résultat donne : distance, adresse, motif principal (id, nom, nouveaux patients acceptés ?), agendas, secteur de conventionnement, moyens de paiement, langues, profile_id (→ practitioner_practical_info), slug (→ practitioner_booking_info) et booking_url.
|
| find_slotsB | TOUS les créneaux libres d'une spécialité autour d'un lieu, sur N jours, en un appel. Renvoie la liste chronologique des créneaux (heure, praticien, distance, motif, remplaçant, lien de réservation) et l'état de chaque praticien (nb de créneaux, premier créneau, prochain créneau hors période, agenda fermé…). Peut prendre 10 à 60 s selon le nombre de praticiens (≈ 3 requêtes/s vers Doctolib). |
| practitioner_booking_infoB | Données du tunnel de réservation d'un praticien : lieux (adresse, GPS, téléphone), agendas (fermés ?), tous les motifs (vidéo, réservés aux patients déjà suivis sur tel agenda, restrictions d'âge, où ils sont réservables). |
| practitioner_practical_infoA | Infos pratiques : horaires d'ouverture, accepte les nouveaux patients, téléconsultation, secteur, carte Vitale, moyens de paiement, langues, adresses. profile_id vient de search_practitioners ; sinon fournir url_or_slug (résolu via le tunnel de réservation). |
| practitioner_messagingB | Catégories de demandes par messagerie Doctolib (renouvellement, résultats…) si le praticien l'a activée. |
| get_availabilitiesA | Créneaux d'un praticien pour un motif, sur N jours (Doctolib limite à 15 j par appel : l'outil enchaîne). Deux usages :
|
| search_availabilitiesC | Variante « vue liste » de Doctolib (7 jours max) avec filtre de régime d'assurance. Réponse brute. |
| booking_linkB | Lien vers le tunnel de réservation Doctolib avec lieu et motif pré-sélectionnés (le créneau ne peut pas l'être). |
| sitemapB | Sitemaps publics Doctolib : 'sitemap' (index), 'sitemap_specialities/1', 'sitemap_skills/1' (1604 actes), 'sitemap_practitioner_doctors/1'… (≈ 295 000 fiches au total). Renvoie les URL. |
| watch_practitionerB | Surveille un praticien : notification dès qu'un nouveau créneau s'ouvre (via doctolib-mcp-watch, à planifier). Sans motive_id : motif de l'URL, sinon le premier motif réservable. before = AAAA-MM-JJ ignore les créneaux plus tardifs. |
| watch_areaC | Surveille TOUTE une zone : notification dès qu'un nouveau créneau apparaît chez n'importe quel praticien de la spécialité dans le rayon (via doctolib-mcp-watch, à planifier). |
| list_watchesB | Surveillances et leur état (dernière vérification, nb de créneaux, dernière alerte, erreur). |
| stop_watchA | Met en pause (ou supprime avec delete=True) une surveillance. |
| run_watches_nowA | Lance immédiatement une passe de surveillance (notifie les nouveaux créneaux). |
| configure_notificationsC | Canaux d'alerte : notification macOS, push téléphone via ntfy.sh (app gratuite, s'abonner au topic), webhook JSON (POST {title, message, url}) vers n8n, Slack, Discord… Envoie une notification de test. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| specialities | Les 123 spécialités Doctolib (slug, nom, id) |
TDQS
Scored across 21 tools
Most tools are distinguishable, but availability retrieval is split across search_practitioners, find_slots, get_availabilities, and search_availabilities, which an agent could easily confuse. Location resolution also overlaps across autocomplete, place_autocomplete, search_city, and geocode_address, though the descriptions provide useful distinctions.
Tool names are consistently snake_case and mostly readable. However, the set mixes verb-led names (list_specialities, search_practitioners, get_availabilities) with noun-led names (practitioner_booking_info, sitemap), so it is not a perfect verb_noun pattern throughout.
With 21 tools, the surface is on the heavy side for a Doctolib search and booking assistant. Many functions are justified, but some availability and location tools could potentially be consolidated or nested.
The server covers specialty lookup, location resolution, practitioner search, practical details, availability retrieval, booking links, watches, and notifications. The main gap is that it does not actually create, modify, or cancel appointments, but this may be intentional because booking is handled through the external Doctolib tunnel.