# Doctolib MCP

> Doctolib connects your AI agent to medical scheduling data. Use it to find doctors by specialty or city, check real-time availability slots, and book appointments directly from a conversation. It handles the full cycle of care coordination, letting you manage bookings and research practitioners without logging into the Doctolib website.

## Overview
- **Category:** productivity
- **Price:** Free
- **Tags:** medical-appointments, patient-management, practitioner-search, healthcare-scheduling, consultation-booking

## Description

Managing healthcare schedules used to mean clicking through dozens of web pages and copy-pasting details—a nightmare for both patients and administrative staff. Now, your agent can handle it all. You simply ask what you need: 'I need a dermatologist in downtown Chicago next week.' The system responds with local search results, shows available time slots across multiple doctors, and even books the visit if you confirm. All this happens through natural conversation, bypassing complex logins entirely. Vinkius hosts this MCP, giving your agent access to all of Doctolib's deep scheduling tools so you never have to switch context again.

## Tools

### rechercher_praticiens
Searches for doctors by specifying both the city boundaries and their required specialty.

### consulter_praticien
Retrieves the full profile information for a specific medical practitioner.

### lister_specialites
Lists every valid medical specialty category recognized by the system.

### disponibilites
Checks and reports all open time slots available for any given doctor.

### lister_rendez_vous
Shows all appointments that are currently booked or scheduled under your account.

### prendre_rendez_vous
Schedules and confirms a new medical appointment using an available time slot.

### lister_cabinets
Retrieves a list of physical medical office locations associated with the system.

### motifs_consultation
Displays a list of accepted reasons for consultation required by the doctor.

## Prompt Examples

**Prompt:** 
```
Search for general practitioners in Paris
```

**Response:** 
```
I found 5 general practitioners in Paris. Top results include 'Dr. Martin' (75001) and 'Dr. Lefebvre' (75008). Would you like to check their available slots for this week?
```

**Prompt:** 
```
What are the available slots for Dr. Martin (ID: 123) tomorrow?
```

**Response:** 
```
Dr. Martin has 3 slots available tomorrow: 10:00 AM, 11:30 AM, and 2:00 PM. Would you like to book one of these using your registered email?
```

**Prompt:** 
```
List my upcoming medical appointments
```

**Response:** 
```
Retrieving appointments... You have 1 upcoming consultation: 'Dr. Martin' on Wednesday at 10:00 AM. I can provide the practice address and motive for you.
```

## Capabilities

### Search for Doctors
Find specialists and doctors by specific location or medical field.

### Check Availability
Verify if a targeted doctor has open time slots on any given day.

### Book Appointments
Create and finalize an appointment booking, locking in the specific time slot to your account.

### Review Records
See a list of all appointments already scheduled under your profile.

### Identify Visit Details
Confirm what medical reason or motive is required for the appointment slot to be valid.

## Use Cases

### I need to see who practices near me.
An administrative assistant needs to quickly identify all available office locations in the region. They ask their agent, and it uses `lister_cabinets` to provide a structural list of physical practice sites.

### I can't find an open slot for my child.
A parent needs to book an urgent visit. The agent first checks the required specialties using `lister_specialites`, then uses `rechercher_praticiens` and `disponibilites` together until it finds a viable time.

### I need to confirm my next appointment's details.
A user asks, 'What did I book for next week?' The agent uses `lister_rendez_vous`, providing the doctor's name and date right away.

### I need to start a new booking flow.
The user simply says, 'Book me a visit.' The agent prompts for the necessary details and uses `motifs_consultation` first to validate that the reason is acceptable before proceeding.

## Benefits

- Find exactly who you need. Instead of browsing, use the `rechercher_praticiens` tool to narrow down searches by specialty and city, bypassing local or generalized lists.
- Save time checking slots. The `disponibilites` tool verifies live availability for a doctor instantly, eliminating manual checks across multiple days.
- Book in one go. With the `prendre_rendez_vous` tool, your agent locks in the booking and confirms it, all without you needing to click 'submit'.
- Get full context. Before booking, use `motifs_consultation` to ensure the appointment reason matches what the practitioner accepts.
- See everything at once. The system lets you review past bookings using `lister_rendez_vous`, giving a clean audit trail of your care.

## How It Works

The bottom line is that your AI client handles all the complex data retrieval and booking steps using only natural language prompts.

1. First, you subscribe to this MCP and enter your unique Doctolib Partner API Key and API URL into your AI client.
2. Next, you tell your agent exactly what you need—for example, 'Find me a cardiologist in Paris who is free Tuesday afternoon.'
3. Your agent uses the tools to search practitioners, check availability, identify the best slot, and book the appointment with one confirmation.

## Frequently Asked Questions

**How do I search for available doctors using `rechercher_praticiens`?**
You must provide both the specialty and the city name in your request. The tool uses this combination to filter results, ensuring you only see relevant practitioners.

**Can I list my appointments with `lister_rendez_vous`?**
Yes, running `lister_rendez_vous` retrieves all upcoming and past visits associated with your account. This is a quick way to see your full care history.

**Is there a tool for checking open time slots? Like `disponibilites`?**
Yes, the `disponibilites` tool lets you verify if any doctor has available openings. You just need to specify which practitioner and what date range you want to check.

**What is needed before I can book an appointment using `prendre_rendez_vous`?**
The system needs several pieces of information: a confirmed doctor, an open slot from `disponibilites`, and the valid reason for consultation (using `motifs_consultation`).

**How do I use `lister_specialites` to find out what medical fields are supported?**
It returns a comprehensive list of all valid medical specialties. You can use this output to ensure your search query for practitioners is accurate and uses recognized terminology.

**Before I book, how do I check required reasons using `motifs_consultation`?**
The tool lists the explicit reason categories supported by a specific practitioner. You must verify your consultation motive against this list before attempting to reserve an appointment time.

**What is the purpose of `lister_cabinets`? Does it help find offices?**
Yes, this tool gives you a structural listing of all active medical office locations. You can identify potential practice sites even if you don't know which specific doctor works there.

**I want to see general information about a doctor; how does `consulter_praticien` help?**
This tool fetches the complete profile for any given practitioner. It provides details beyond scheduling, including credentials and contact info you might need.

**Can my agent search for specific medical specialists in a city?**
Yes. Use the 'rechercher_praticiens' tool. Provide the specialty (e.g., 'médecin généraliste') and the city. The agent will retrieve matching practitioner profiles from Doctolib's active directory natively.

**How do I book a consultation slot through the agent?**
First, use 'disponibilites' to find free slots for a doctor. Then, provide the practitioner ID, the chosen slot ID, and your email to the 'prendre_rendez_vous' tool to confirm your reservation in the database.

**Can I see all medical practices connected to my account?**
Absolutely. Use the 'lister_cabinets' tool. Your agent will perform a structural extraction of localized entity bounds, showing you all physical office locations managed within your Doctolib partner environment.