finddoc
Try every endpoint against sandbox data, then a one-time $5 payment unlocks live access — no account needed. Get API access

Integrations · MCP

Connect FindDoc via MCP

Wire FindDoc into your agent as a Model Context Protocol server, so it can call FindDoc tools — clinic search, doctor lookup, review signals — directly inside a session. Setup below for Claude Code, Codex CLI, and Claude Desktop; the same @find-doc/finddoc-mcp server backs all three.

Use cases for your agent

FindDoc gives your agent structured, freshness-stamped access to Ontario health-navigation data. A few things that get unlocked — or get strictly better — once the MCP is connected:

  • Summarize doctor or clinic reviews by the criteria you care about

    get_clinic_reviews, get_clinic_signals, and get_doctor_signals return per-dimension review signals — a strength score and a strong/moderate/mixed/weak band for things like wait times, communication, and staff — alongside the raw reviews. Your agent reasons over structured signal, not just a star average.

  • Plan a visit to a family doctor, end to end

    search_doctors finds family doctors taking patients near you; get_doctor returns the clinic's address, phone, and accepting status — so your agent can tell you exactly who to call and where to go. (FindDoc surfaces how to reach the clinic; it doesn't book the appointment for you.)

  • Find a clinic near you that's accepting new patients

    search_clinics returns nearby clinics taking patients, each with the languages its doctors speak — so your agent can narrow to, say, a French-speaking clinic in Scarborough.

  • Check every week for clinics that have started accepting patients

    Point a scheduled agent at search_clinics and have it remember last week's list — it can tell you which clinics are newly accepting since the last run. FindDoc provides the live, freshness-stamped data; your agent owns the schedule and the diff.

Every availability answer carries a freshness timestamp, and each tool reminds the agent to surface how current the data is — so it can always tell you to confirm with a phone call before relying on it.

1. Install the CLI

The config blocks below run the server with npx, so a global install is optional — but installing it once makes startup faster.

Shell
npm install -g @find-doc/finddoc-mcp
# or run it on demand, no global install:
npx @find-doc/finddoc-mcp

2. Add FindDoc to your client

Pick your client below. Each snippet registers the same finddoc stdio server; you only need one.

Replace YOUR_API_KEY in each snippet with a key from API keys.

Claude Code (CLI)

Run claude mcp add from your project. The FINDDOC_API_KEY is passed to the server's environment with --env.

Shell
claude mcp add --env FINDDOC_API_KEY=YOUR_API_KEY --transport stdio finddoc \
  -- npx @find-doc/finddoc-mcp

Prefer to commit the config for your team? Add a project-scoped .mcp.json at the repo root instead:

JSON
{
  "mcpServers": {
    "finddoc": {
      "command": "npx",
      "args": ["@find-doc/finddoc-mcp"],
      "env": {
        "FINDDOC_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Codex CLI

Add an [mcp_servers.finddoc] table to ~/.codex/config.toml.

Text
[mcp_servers.finddoc]
command = "npx"
args = ["@find-doc/finddoc-mcp"]
env = { FINDDOC_API_KEY = "YOUR_API_KEY" }

Claude Desktop

On macOS, edit ~/Library/Application Support/Claude/claude_desktop_config.json (%APPDATA%\Claude\claude_desktop_config.json on Windows) and merge the snippet below into mcpServers.

JSON
{
  "mcpServers": {
    "finddoc": {
      "command": "npx",
      "args": ["@find-doc/finddoc-mcp"],
      "env": {
        "FINDDOC_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

3. Start using it

Restart the client (Claude Code and Codex pick up the server on the next session; quit and reopen Claude Desktop). The finddocserver should show up in the client's MCP list. Ask something like "find a family doctor in Scarborough accepting patients" — it will call FindDoc directly.

Tool reference

The server registers 10 tools. Your agent picks the right one on its own, but the required arguments are worth knowing — search_doctors requires a specialty, so call list_specialties if you are not sure a name is accepted.

ToolRequiredReturns
search_doctorsspecialtySearch doctors by specialty, with optional language, gender, location, and radius filters.
get_doctorcpso_numberFull profile for one doctor — specialties, languages, and their clinic's address, phone, and accepting status.
search_clinicsSearch clinics by location and acceptance status; each result lists the languages its doctors speak.
get_clinicclinic_idFull record for one clinic — doctor count, languages, hours, accessibility, and availability freshness.
get_clinic_reviewsclinic_idIndividual reviews for a clinic plus the aggregate rating and per-dimension breakdown.
get_doctor_signalscpso_numberPer-dimension care signals for a doctor. Dimensions with fewer than 3 reviews are omitted.
get_clinic_signalsclinic_idPer-dimension care signals for a clinic. Dimensions with fewer than 3 reviews are omitted.
list_specialtiesEvery specialty name search_doctors accepts, with doctor counts. Call this first if a specialty is rejected.
list_languagesEvery supported language name, with doctor counts.
get_availability_freshnessCoverage and last-refresh reporting for availability data across the corpus.

Looking for a different LLM?

Any OpenAI-compatible client can hit /api/v1 directly — see the Bring your own LLM guide.