MCP Server

navmds

io.github.mattlsmith/navmds
Healthcare Search & Research Public & reachable MCP 2025-11-25

What this MCP does

Searches a US doctor directory and patient community, returning physician profiles, reviews, procedure pricing, local specialist guides, and discussion threads.

fetch
Fetch document (connector-compatible)
Retrieve a full doctor profile by id (the slug returned from `search`). Returns {id, title, text, url, metadata}. (OpenAI connector-compatible.)
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Doctor slug returned by the search tool.'}}, 'additionalProperties': False}
find_local_specialists
Curated 'best {procedure} doctors in {city}' guide
Return 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.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['procedure', 'state', 'city'], 'properties': {'city': {'type': 'string', 'description': "City name, e.g. 'Beverly Hills', 'Miami'."}, 'state': {'type': 'string', 'description': "US state name, e.g. 'California', 'Florida'."}, 'procedure': {'type': 'string', 'description': "Procedure/specialty, e.g. 'rhinoplasty', 'breast augmentation', 'botox'."}}, 'additionalProperties': False}
get_community_thread
Get a full community discussion
Fetch 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.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'integer', 'description': 'Community topic id, e.g. 117.', 'exclusiveMinimum': 0}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Max posts to return (default 30).'}}, 'additionalProperties': False}
get_doctor
Get full doctor profile
Fetch 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.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': "Doctor slug, e.g. 'dr-jane-smith-md'."}}, 'additionalProperties': False}
get_doctor_reviews
Get patient reviews for a doctor
Return published (moderation-approved) patient reviews for a doctor by slug.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Doctor slug.'}, 'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Max reviews (default 20).'}}, 'additionalProperties': False}
get_procedure_costs
Get pricing for a procedure
Aggregate 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.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['procedure'], 'properties': {'city': {'type': 'string', 'description': 'City filter.'}, 'state': {'type': 'string', 'description': 'US state filter.'}, 'procedure': {'type': 'string', 'description': "Procedure name, e.g. 'rhinoplasty'."}}, 'additionalProperties': False}
list_locations
List covered locations
List states/cities where NavMDs has doctors, with doctor counts. Useful for grounding a location filter.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 1000, 'minimum': 1, 'description': 'Max locations (default 150, ordered by doctor count).'}, 'state': {'type': 'string', 'description': 'Filter to a single state name.'}}, 'additionalProperties': False}
list_procedures
List available procedures
List the procedures/specialties covered by NavMDs, with the number of doctors for each. Useful for grounding a search.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Max procedures (default 100, ordered by doctor count).'}}, 'additionalProperties': False}
search
Search (connector-compatible)
Search 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.)
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Free-text search query.'}}, 'additionalProperties': False}
search_community
Search NavMDs community discussions
Search 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.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 25, 'minimum': 1, 'description': 'Max threads (default 10).'}, 'query': {'type': 'string', 'description': "Free-text search, e.g. 'rhinoplasty recovery swelling' or 'tummy tuck cost'."}}, 'additionalProperties': False}
search_doctors
Search doctors by procedure & location
Find 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.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['procedure'], 'properties': {'city': {'type': 'string', 'description': "City name, e.g. 'Miami'."}, 'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Max results (default 20).'}, 'state': {'type': 'string', 'description': "US state name, e.g. 'California' or 'Florida'."}, 'procedure': {'type': 'string', 'description': "Procedure or specialty, e.g. 'rhinoplasty', 'breast augmentation', 'botox'."}}, 'additionalProperties': False}
semantic_search_doctors
Natural-language doctor search
Search 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.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Max results (default 15).'}, 'query': {'type': 'string', 'description': "Natural-language description of the doctor you're looking for."}}, 'additionalProperties': False}
Added
fetch
Sept. 17, 2026, 12:43 p.m.
Added
search
Sept. 17, 2026, 12:43 p.m.
Added
get_community_thread
Sept. 17, 2026, 12:43 p.m.
Added
search_community
Sept. 17, 2026, 12:43 p.m.
Added
list_locations
Sept. 17, 2026, 12:43 p.m.
Added
list_procedures
Sept. 17, 2026, 12:43 p.m.
Added
get_procedure_costs
Sept. 17, 2026, 12:43 p.m.
Added
get_doctor_reviews
Sept. 17, 2026, 12:43 p.m.
Added
get_doctor
Sept. 17, 2026, 12:43 p.m.
Added
semantic_search_doctors
Sept. 17, 2026, 12:43 p.m.
Added
find_local_specialists
Sept. 17, 2026, 12:43 p.m.
Added
search_doctors
Sept. 17, 2026, 12:43 p.m.