@find-doc/finddoc-mcp
v0.4.1
Published
MCP server for finding doctors and specialists in the Greater Toronto Area through 10 structured Ontario health-navigation tools.
Maintainers
Readme
FindDoc MCP — GTA doctor, specialist, and clinic search
Search Greater Toronto Area doctors, specialists, and clinics by specialty, location, language, gender, and accepting-new-patients status, with CPSO profiles, review signals, and per-result freshness.
10 tools · stdio transport · Node.js 20+ · free Sandbox access · no account required
@find-doc/finddoc-mcp is the public Model Context Protocol (MCP) server for FindDoc. It gives Claude, Codex, Cursor, and other MCP clients structured access to Ontario health-navigation data through the FindDoc REST API.
Quick start
Run the server immediately with the published, rate-limited Sandbox key:
npx -y @find-doc/finddoc-mcpOr add it to an MCP client:
{
"mcpServers": {
"finddoc": {
"command": "npx",
"args": ["-y", "@find-doc/finddoc-mcp"]
}
}
}No environment variables are required. Set FINDDOC_API_KEY to a key from FindDoc API keys for full access.
What this server solves
Finding an Ontario doctor who matches a person's specialty, language, location, and intake needs usually means searching fragmented directories and then guessing whether the listings are current. FindDoc gives AI assistants one structured interface for GTA doctors, specialists, and clinics, including accepting-new-patients signals, contact details, review dimensions, and freshness timestamps.
Capabilities
- Find family doctors and specialists accepting new patients in the Greater Toronto Area.
- Filter doctors by specialty, location, language, gender, and acceptance status.
- Search clinics by GTA location and accepting-new-patients status.
- Look up an Ontario physician by CPSO registration number.
- Retrieve clinic reviews and structured doctor or clinic care signals for dimensions such as communication, wait times, and staff.
- Inspect supported specialties and languages with doctor counts.
- Surface each result's own availability timestamp so an agent can communicate uncertainty.
Example prompts:
- “Find French-speaking family doctors accepting new patients in Scarborough.”
- “Look up this doctor by CPSO number and tell me which clinic to call.”
- “Compare these clinics on wait-time and communication review signals.”
Tools
| Tool | What it does |
| ---------------------------- | ------------------------------------------------------------------------------------------------------ |
| search_doctors | Searches doctors by specialty, location, language, gender, and accepting-new-patients status. |
| get_doctor | Returns a doctor profile by CPSO number, including specialties, languages, clinic, and review summary. |
| search_clinics | Searches clinics by GTA location and accepting-new-patients status. |
| get_clinic | Returns a clinic by FindDoc clinic ID. |
| get_clinic_reviews | Returns a clinic's aggregate review data, per-dimension breakdown, and individual reviews. |
| get_doctor_signals | Returns per-dimension doctor care signals as band, strength, and derived score. |
| get_clinic_signals | Returns per-dimension clinic care signals as band, strength, and derived score. |
| get_availability_freshness | Explains the availability freshness contract and how to interpret availability_updated_at. |
| list_specialties | Lists normalized specialty names accepted by search_doctors, with doctor counts. |
| list_languages | Lists supported language names with doctor counts. |
For complete arguments and response shapes, see the FindDoc MCP documentation.
Client setup
The same npm package runs as a local stdio server in every client.
Claude Code
claude mcp add --transport stdio finddoc \
-- npx -y @find-doc/finddoc-mcpTo share the configuration with a team, commit the JSON from Quick start as .mcp.json in the project root.
Codex CLI
Add this to ~/.codex/config.toml:
[mcp_servers.finddoc]
command = "npx"
args = ["-y", "@find-doc/finddoc-mcp"]Claude Desktop and Cursor
Merge the JSON from Quick start into the client's MCP configuration. Claude Desktop uses ~/Library/Application Support/Claude/claude_desktop_config.json on macOS and %APPDATA%/Claude/claude_desktop_config.json on Windows.
Global install
npm install -g @find-doc/finddoc-mcp
finddoc-mcpData scope and safety
- Coverage: doctors, specialists, and clinics in the Greater Toronto Area, Ontario, Canada.
- Source boundary: this package is a thin adapter over FindDoc's public REST API; it does not connect directly to the database.
- Freshness: clinic availability results include a nullable
availability_updated_atfrom that clinic's record. Doctor results include source freshness where available. FindDoc does not claim a corpus-wide refresh timestamp or coverage percentage. - Confirmation: availability is best-effort. Every tool tells the calling agent to report the result's freshness and ask the user to phone the clinic before relying on it.
- Privacy: tool outputs contain public physician, clinic, and review information—not appointment records, clinical notes, or patient health information.
- Booking: FindDoc surfaces clinic contact information; it does not book appointments.
Environment variables
| Name | Required | Default | Description |
| ---------------------- | -------- | ------------------------ | -------------------------------------------------------------------------------- |
| FINDDOC_API_KEY | No | Published Sandbox key | Use a paid key for full access; Sandbox use is shared, capped, and rate-limited. |
| FINDDOC_API_BASE_URL | No | https://www.finddoc.ca | Override the API origin for local development or staging. |
When FINDDOC_API_KEY is absent, the server writes a Sandbox notice to stderr. MCP protocol output remains isolated on stdout.
Development
pnpm --filter @find-doc/finddoc-mcp run typecheck
pnpm --filter @find-doc/finddoc-mcp run test
pnpm --filter @find-doc/finddoc-mcp run buildThe package lives in the FindDoc monorepo.
