Koskamo

NavMDs MCP

NavMDs provides an MCP server that allows AI agents to research over 7,400 US healthcare providers, including plastic surgeons, dermatologists, and medspas. It supports searching doctors, retrieving profiles and reviews, finding local specialists, and accessing procedure pricing data and patient discussion threads.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

NavMDs MCP logo, by NavMDsCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-06Published by NavMDs
MCP endpoint (Streamable HTTP)
https://www.navmds.com/api/mcp
Vendor documentation

What its tools do

12 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

12 of 12 have a description · 12 of 12 declare behavior hints · 12 of 12 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Search for doctors by procedure, state, or city
  • Retrieve detailed doctor profiles and patient reviews
  • Find local specialists with pricing and ratings
  • Search community discussion threads for patient experiences

Source and maintenance

Community listingRegistry 1.0.0
Maintenance checked

Protocol and capabilities

Server
navmds 1.0.0
MCP protocol negotiated in check
2025-11-25
Tools
12 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
3 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "prompts": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

NavMDs is a directory of 7,400+ US doctors and specialists (heavy on plastic surgery / aesthetics). Use it to research providers: search by procedure & location, natural-language search, full profiles, patient reviews, procedure pricing, and coverage taxonomy. All tools are read-only. Every result includes a canonical navmds.com profile URL — cite it as the source. To research one doctor, find the slug via a search tool, then call get_doctor / get_doctor_reviews.

Tools

12 advertised

search_doctors — Search doctors by procedure & location
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

search_doctors input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "procedure"
  ],
  "properties": {
    "city": {
      "type": "string",
      "description": "City name, e.g. 'Miami'. This is the area the user asked about, not the user's own location."
    },
    "limit": {
      "type": "integer",
      "maximum": 50,
      "minimum": 1,
      "description": "Max results (default 20)."
    },
    "state": {
      "type": "string",
      "description": "US state name, e.g. 'California' or 'Florida'. This is the area the user asked about, not the user's own location."
    },
    "procedure": {
      "type": "string",
      "description": "Procedure or specialty, e.g. 'rhinoplasty', 'breast augmentation', 'botox'."
    }
  },
  "additionalProperties": false
}
search_doctors annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
find_local_specialists — Curated 'best {procedure} doctors in {city}' guide
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

find_local_specialists 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'. This is the area the user asked about, not the user's own location."
    },
    "state": {
      "type": "string",
      "description": "US state name, e.g. 'California', 'Florida'. This is the area the user asked about, not the user's own location."
    },
    "procedure": {
      "type": "string",
      "description": "Procedure/specialty, e.g. 'rhinoplasty', 'breast augmentation', 'botox'."
    }
  },
  "additionalProperties": false
}
find_local_specialists annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
semantic_search_doctors — Natural-language doctor search
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

semantic_search_doctors 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
}
semantic_search_doctors annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
get_doctor — Get full doctor profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

get_doctor 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 annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
get_doctor_reviews — Get patient reviews for a doctor
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Return published (moderation-approved) patient reviews for a doctor by slug.

get_doctor_reviews 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_doctor_reviews annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
get_procedure_costs — Get pricing for a procedure
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

get_procedure_costs input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "procedure"
  ],
  "properties": {
    "city": {
      "type": "string",
      "description": "City filter. This is the area the user asked about, not the user's own location."
    },
    "state": {
      "type": "string",
      "description": "US state filter. This is the area the user asked about, not the user's own location."
    },
    "procedure": {
      "type": "string",
      "description": "Procedure name, e.g. 'rhinoplasty'."
    }
  },
  "additionalProperties": false
}
get_procedure_costs annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
list_procedures — List available procedures
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

List the procedures/specialties covered by NavMDs, with the number of doctors for each. Useful for grounding a search.

list_procedures 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
}
list_procedures annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
list_locations — List covered locations
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

List states/cities where NavMDs has doctors, with doctor counts. Useful for grounding a location filter.

list_locations 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_locations annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
search_community — Search NavMDs community discussions
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

search_community 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_community annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
get_community_thread — Get a full community discussion
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

get_community_thread 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_community_thread annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
search — Search (connector-compatible)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.)

search 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 annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
fetch — Fetch document (connector-compatible)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Retrieve a full doctor profile by id (the slug returned from `search`). Returns {id, title, text, url, metadata}. (OpenAI connector-compatible.)

fetch 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
}
fetch annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}

Prompts

3 advertised

research_doctor — Research a doctor

Advertised by the server during the last successful anonymous check.

Pull a doctor's profile, reviews and pricing and summarize for a prospective patient.

name_or_slug
Doctor name or slug to research. (required)
patient_experience — What a procedure is actually like

Advertised by the server during the last successful anonymous check.

Answer a lived-experience question from real NavMDs community discussion, grounded with directory pricing.

question
e.g. 'what is rhinoplasty recovery like' or 'what did people pay for a tummy tuck'. (required)
compare_doctors_for_procedure — Compare doctors for a procedure

Advertised by the server during the last successful anonymous check.

Find and compare the best doctors for a procedure in a location.

procedure
Procedure, e.g. 'rhinoplasty'. (required)
location
City and/or state.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (2 of 2 answered).

  1. 2026-11-06: 1 of 1 checks answered
  2. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
554 ms
95th percentile latency
554 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 554 ms · metadata changed · 12 tool(s), 3 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http navmds-mcp https://www.navmds.com/api/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add navmds-mcp --url https://www.navmds.com/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable navmds-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "navmds-mcp": {
      "url": "https://www.navmds.com/api/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "navmds-mcp": {
      "type": "streamableHttp",
      "url": "https://www.navmds.com/api/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start navmds-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "navmds-mcp": {
      "type": "http",
      "url": "https://www.navmds.com/api/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http navmds-mcp https://www.navmds.com/api/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://www.navmds.com/api/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "navmds-mcp": {
      "serverUrl": "https://www.navmds.com/api/mcp"
    }
  }
}

Let your agent find its tools

Find servers like NavMDs MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.