io.github.mattlsmith/navmds
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Research 7,400+ US doctors: search, semantic search, profiles, reviews & procedure pricing.
| Author | io.github.mattlsmith |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2175 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"navmds": {
"url": "https://www.navmds.com/api/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (12)
search_doctorsread-onlyFind doctors by procedure/specialty, optionally filtered by US state and city. Uses NavMDs' pre-computed search index (fast, ranked by rating + review volume). Use this when you have a concrete procedure (e.g. 'rhinoplasty', 'botox', 'tummy tuck'). For open-ended natural-language queries, use semantic_search_doctors instead.
Parameters:
procedure(required) — string — Procedure or specialty, e.g. 'rhinoplasty', 'breast augmentation', 'botox'.city— string — City name, e.g. 'Miami'.limit— integer — Max results (default 20).state— string — US state name, e.g. 'California' or 'Florida'.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
find_local_specialistsread-onlyReturn NavMDs' curated city guide for a procedure: the ranked specialists (the city's OWN doctors first, then the nearest within an adaptive radius), the typical local price range, the average rating, the share offering free consultations, and the canonical navmds.com page URL to cite. This is the best tool for 'who are the best <procedure> doctors in <city>' questions — it mirrors NavMDs' editorial city pages. If no curated guide exists for that city+procedure, it says so; fall back to search_doctors with a nearby larger city.
Parameters:
procedure(required) — string — Procedure/specialty, e.g. 'rhinoplasty', 'breast augmentation', 'botox'.state(required) — string — US state name, e.g. 'California', 'Florida'.city(required) — string — City name, e.g. 'Beverly Hills', 'Miami'.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
semantic_search_doctorsread-onlySearch NavMDs' 7,400+ doctor directory with a natural-language query, e.g. 'board-certified facelift surgeon in Los Angeles with great reviews and free consults'. Powered by Gemini embeddings + cosine similarity over full doctor profiles. Best tool for open-ended or multi-attribute questions.
Parameters:
query(required) — string — Natural-language description of the doctor you're looking for.limit— integer — Max results (default 15).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
get_doctorread-onlyFetch a doctor's complete NavMDs profile by slug (the id returned by the search tools, or the last path segment of a navmds.com/doctor/<slug> URL). Returns specialty, locations, ratings, overview, procedures, pricing, consultation fee, FAQ and verification status.
Parameters:
slug(required) — string — Doctor slug, e.g. 'dr-jane-smith-md'.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
get_doctor_reviewsread-onlyReturn published (moderation-approved) patient reviews for a doctor by slug.
Parameters:
slug(required) — string — Doctor slug.limit— integer — Max reviews (default 20).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
get_procedure_costsread-onlyAggregate what a procedure costs across NavMDs doctors — combining patient-reported costs and practice-website pricing. Optionally narrow to a state/city. Returns min/median/max/average plus sample practice quotes.
Parameters:
procedure(required) — string — Procedure name, e.g. 'rhinoplasty'.city— string — City filter.state— string — US state filter.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
list_proceduresread-onlyList the procedures/specialties covered by NavMDs, with the number of doctors for each. Useful for grounding a search.
Parameters:
limit— integer — Max procedures (default 100, ordered by doctor count).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
list_locationsread-onlyList states/cities where NavMDs has doctors, with doctor counts. Useful for grounding a location filter.
Parameters:
limit— integer — Max locations (default 150, ordered by doctor count).state— string — Filter to a single state name.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
search_communityread-onlySearch patient discussion threads on community.navmds.com — the NavMDs forum where people discuss recovery timelines, what procedures actually cost them, choosing a surgeon, and what to expect. Use this for lived-experience questions ('what is rhinoplasty recovery like', 'how much did people actually pay for a tummy tuck', 'how do I pick a surgeon') where the doctor-directory tools can't help. Returns thread titles, categories, excerpts and canonical URLs; pass an id to get_community_thread for the full discussion. Community posts are patient discussion, not medical advice.
Parameters:
query(required) — string — Free-text search, e.g. 'rhinoplasty recovery swelling' or 'tummy tuck cost'.limit— integer — Max threads (default 10).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
get_community_threadread-onlyFetch a complete NavMDs community thread by id (the id returned by search_community, or the trailing number of a community.navmds.com/t/<slug>/<id> URL) — the original question plus every reply, in order. Use after search_community when you need the actual answers rather than an excerpt. Community posts are patient discussion, not medical advice.
Parameters:
id(required) — integer — Community topic id, e.g. 117.limit— integer — Max posts to return (default 30).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
searchread-onlySearch NavMDs doctors by free-text query. Returns a list of {id, title, url} results. Pass an id to the `fetch` tool to retrieve the full profile. (OpenAI connector-compatible.)
Parameters:
query(required) — string — Free-text search query.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
fetchread-onlyRetrieve a full doctor profile by id (the slug returned from `search`). Returns {id, title, text, url, metadata}. (OpenAI connector-compatible.)
Parameters:
id(required) — string — Doctor slug returned by the search tool.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.