Quickstart
Two calls: search for a short list, then open the evidence for the doctors you are seriously considering. For surgery or a procedure, a third tool shows which hospitals and clinics do it most. The MCP server and the HTTP API have the same tools and return the same JSON. This is the France service. The United States and New Zealand have their own, at /us/docs/ and /nz/docs/, and one MCP address serves all three.
No sign-up. Short lists and hospital procedure volumes are free; full evidence has a daily allowance.
1. Connect
| Address | |
|---|---|
MCP (Streamable HTTP), every country: pass country: "FR" | https://api.findadoctor.si/mcp |
| MCP (Streamable HTTP), France only | https://api-fr.findadoctor.si/mcp |
| HTTP API | https://api-fr.findadoctor.si/api/v1/… (GET, JSON) |
| OpenAPI 3.1 (parameters and response fields) | https://api-fr.findadoctor.si/openapi.json |
| MCP server card | https://api-fr.findadoctor.si/mcp/server-card |
| Guide for agents | https://api-fr.findadoctor.si/llms.txt |
MCP clients that support remote servers connect to either MCP URL above. No sign-in or key is needed. An optional account key (by invitation), sent as Authorization: Bearer, raises the daily allowance.
Decide the country first
With the address for every country, first work out where the person wants to see a doctor. Use the place they mention, or what you know about where they live.
- If nothing settles it (no place given, or a place name used in more than one country, with no other clue), ask the person before searching. Do not guess, and do not search every country.
- Tools that take
country: passcountry: "FR"tosearch_doctors,list_specialtiesandabout_database. Left out, they use the United States, for clients that connected before France was added. - Tools that don’t:
get_doctorreads the country from thefr_id.hospital_procedure_volumesis France only. - France-only connections: the France-only MCP address needs no
countryat all. Neither does the HTTP API below: it is France only, and sendingcountryis an error.
Add it to your client
In Claude (Free, Pro, Max, Team and Enterprise; the Free plan allows one custom connector):
- Go to Customize → Connectors → + Add → Add custom connector.
- Enter a name and the MCP URL, then click Continue. Under Authentication choose No sign in (or add an account key under Request headers as Authorization: Bearer), then Add.
- On Team and Enterprise, an Owner first adds it under Organization settings → Connectors; members then Connect it.
- Turn it on in a chat with + → Connectors.
See Claude’s guide.
In ChatGPT, where your plan and workspace allow custom MCP servers:
- Go to Plugins → + → Add custom MCP server.
- Enter a name and the MCP URL, and set authentication. Choose no authentication.
- Create it as a plugin and install it.
- In a chat, type @ and pick it.
See OpenAI’s guide.
In Claude Code, Codex CLI, Gemini CLI and other MCP clients: add a remote (Streamable HTTP) MCP server with the URL above.
2. Search
Give at least one of need, specialty, place, name or hospital_finess.
-
needis a condition, procedure or focus, in French or English. Common English words are also searched in French, soknee replacementfindsprothèse genou. -
placecan be:- a city (
Parisincludes every arrondissement); - a postcode (
75015); - an arrondissement (
Paris 15,Lyon 3e); - a département number (
69,2A); - or a practice or hospital name.
It is a text match on practice addresses, not a distance search.
- a city (
GET https://api-fr.findadoctor.si/api/v1/search?need=endom%C3%A9triose&place=Lyon
What each result has
-
Who:
doctor_id,name,gender,specialties(French, as registered) andspecialties_en. -
Where:
places, up to 3 practices, with those matchingplacefirst. -
Fees:
fee_sectors, the Assurance Maladie category:Secteur 1= standard fees;Secteur 2= may charge extra;Non conventionné= not contracted, little reimbursed.
optammeans the doctor has agreed to limit extra fees. -
match_basis, with a need, says how the doctor’s own data matches it:Value Meaning stated_expertisethe expertise or procedures the doctor states on a profile page official_competencean official competence or university diploma in the register hospital_department_or_traininga hospital department, role or training several_fieldsthe words are spread over several of these specialtythe specialty name specialty_usually_treatsthe need is a condition few doctors list, and the doctor’s specialty usually treats it partialsome of the words -
register:rpps= in the official register;ameli_only= only in the Assurance Maladie directory;website_only= a hospital page we could not match to either register.
-
Other fields:
warnings(for example barred from practising), when there are any, anddetail_has, which says whatget_doctoradds for this doctor.
A trimmed example (the doctors’ names and ids are made up; … marks shortened text):
{
"provider": { "name": "FindADoctor.si France", "url": "https://findadoctor.si/fr/", "data_version": "fr-public-2026-10-16.3" },
"before_you_answer": "This is the free short list: who the doctors are, not the evidence. Before recommending anyone, call get_doctor …",
"count": 10,
"more": true,
"offset": 0,
"doctors": [
{
"doctor_id": "fr_4k9m2x7qph3t",
"name": "Dr Example Doctor",
"gender": "female",
"specialties": ["Gynécologie-obstétrique"],
"specialties_en": ["Obstetrics and gynaecology"],
"places": ["Cabinet médical, 69006 Lyon", "Clinique Exemple, 69003 Lyon"],
"fee_sectors": ["Secteur 2"],
"optam": true,
"match_basis": "stated_expertise",
"register": "rpps",
"detail_has": ["stated_expertise", "procedures", "university_diplomas", "practices_with_phone_and_fee_category"]
}
],
"need_note": "…"
}
How results are ordered
With a need, results are ranked by how directly the doctor’s own data matches it, in the order of the match_basis table above: stated expertise first, down to some of the words. Without a need, doctors with more data (stated expertise, official competences, profile pages) come first, then the rest in a fixed shuffled order. Results are never ranked by quality, outcomes, fees or industry links.
Notes in the reply
need_notesays when no doctor lists all the words of the need, and which specialties were added for a condition few doctors list.place_notesays when a place matched several départements or was read as a practice name.filter_notesays when a filter only knows doctors with a profile page.hospital_noteexplains ahospital_finesssearch.
Paging
Up to 10 results per search; paging stops at 30. Narrow the need or the place instead of paging.
3. Open the evidence
GET https://api-fr.findadoctor.si/api/v1/doctors?ids=fr_4k9m2x7qph3t,fr_8w2c5n1kd7ra
Up to 10 doctor ids per call. Without an account, each network address can open 5 different doctors' evidence a day; with an account key (by invitation), 100. Opening the same doctor again the same day is free. Doctors that do not fit in one reply come back under not_returned_yet, already counted, so ask again for them at no extra cost.
What each doctor can have
-
From the register:
- the RPPS number (
rpps; check it on annuaire.sante.fr); - official specialties;
- official extra competences;
- university diplomas (DU/DIU);
- practice modes.
- the RPPS number (
-
Every practice (
practices), from the RPPS register and the Ameli directory:- address and phone;
- setting and role;
- fee category (Secteur 1 or 2, OPTAM);
- the hospital’s FINESS number.
-
From a Maiia or hospital page, when the doctor has one:
- stated expertise and the procedures offered;
- hospital department and role;
- qualifications and languages;
- consultation fees;
- online booking, video consultations, and whether online booking is open to new patients.
The source pages are listed with their read dates.
-
industry_links: Transparence Santé declarations by drug and device companies (agreements, benefits, payments), grouped by year, kind, company and purpose and shown as declared. They are not evidence of expertise or wrongdoing. Licence CC BY-NC-SA 4.0: if you pass them on, keep the source, date and licence, and do not use them commercially.
The doctor’s own profile text is not reproduced; give the person the source page link (sources).
Fees, phone numbers and availability change. Tell the person to confirm them with the practice, and to book on Doctolib or with the practice.
4. Hospital procedure volumes
GET https://api-fr.findadoctor.si/api/v1/procedure-volumes?procedure=cataract&place=Lyon
From Open CCAM (ATIH): which hospitals and private clinics performed the procedure most, per year, 2021–2025. Each hospital comes with its FINESS number, the acts counted by year and by CCAM code, and the share done as day cases.
- Check the codes. The reply lists the CCAM acts it added up (
acts_counted), so check they fit the need, or pass exactcodesover MCP to narrow it. For an aneurysm or a stent, say where (brain, aorta, heart or carotid). - What is counted. Only hospital stays and day cases. Procedures done in a doctor’s office or a hospital outpatient clinic are not counted, and a site with fewer than 11 stays for an act is not listed.
- Per hospital, not per surgeon. To find doctors there, search with
hospital_finessfor salaried hospital doctors. In private clinics, most surgeons are self-employed (libéral) and registered at their own office, so search the clinic’s postcode with the specialty instead.
Hospital volumes are free: they do not count toward the daily doctor allowance.
Tools
| MCP tool | HTTP | What it does |
|---|---|---|
search_doctors | GET /api/v1/search | Free short list for a need, specialty, place, name or hospital. |
get_doctor | GET /api/v1/doctors?ids=… or /api/v1/doctors/{doctor_id} | Evidence for up to 10 doctors. Counted per day. |
hospital_procedure_volumes | GET /api/v1/procedure-volumes | Which hospitals and clinics perform a procedure most (Open CCAM). Not counted. |
list_specialties | GET /api/v1/specialties | Specialty names (official French and English) with doctor counts. |
about_database | GET /api/v1/about | Sources, licences, read dates, coverage counts and known gaps. |
search_doctors parameters
| Parameter | Meaning |
|---|---|
need | Condition, procedure or focus, in French or English, e.g. endométriose, prothèse genou, knee replacement, cataract. Matched against the expertise and procedures doctors state, their official competences and university diplomas, hospital departments and roles, and specialty. |
specialty | French or English, e.g. cardiologie, dermatology, pédiatre, ORL, GP, généraliste (see list_specialties). |
place | City, postcode, arrondissement (Paris 15), département number (69, 2A) or a practice or hospital name. A text match, not a distance search. |
name | The doctor’s name or part of it, to check a named doctor. |
gender | female or male. Only when the person asks. From the register’s civil title; recorded for almost all doctors. |
language | A language other than French, e.g. English, Arabic. Only known for doctors with a profile page (about 1,840 list one); many others speak it too. |
fee_sector | any (default), secteur_1 (standard fees), secteur_1_or_optam (standard fees, or extra fees the doctor agreed to limit) or secteur_2 (may charge extra). A doctor is kept if any practice has it; check each practice in get_doctor. Most hospital-only doctors have no category. |
online_booking | true keeps doctors whose Maiia or hospital page shows online booking (Doctolib is not covered). |
teleconsultation | true keeps doctors offering video consultations on Maiia. |
hospital_finess | A hospital site’s FINESS number (from hospital_procedure_volumes): doctors whose register address is that site, mostly salaried hospital doctors. |
limit, offset | Up to 10 results per page; paging stops at 30 results. |
get_doctor parameters
| Parameter | Meaning |
|---|---|
doctor_ids | Up to 10 doctor_ids from search results (HTTP: ids, comma-separated). |
doctor_id | One doctor_id. |
A doctor keeps the same doctor_id when the database is rebuilt.
hospital_procedure_volumes parameters
| Parameter | Meaning |
|---|---|
procedure | The procedure in English or French (cataract, knee replacement, prothèse genou, coloscopie), or CCAM codes. |
codes | MCP only: exact CCAM codes to add up, instead of procedure, to narrow it (e.g. BFGA427). |
place | City, postcode, arrondissement, département number, or a hospital FINESS number. Without it, all of France is ranked. |
year | 2021–2025; default the latest year. |
limit, offset | Up to 20 hospitals per page; paging stops at 120. |
Errors
| Status | Meaning | What to do |
|---|---|---|
| 400 | A parameter is missing or invalid | The message names what to change. |
| 401 | The account key is not valid | Send a valid key, or none. |
| 403 | A web page on another site asked for doctor details from a visitor’s browser (cross_site) | Call from your agent or server, not from another site’s page. |
| 404 | No doctor with that id | Use a doctor_id from a search. |
| 429 | Rate limit or daily doctor allowance used up | Tell the person; the message says when it resets. |
| 503 | Busy or starting | Retry shortly. |
Limits per connection: Limits. What the data holds and where it comes from: Data.