search_concepts
Search for medical concepts by name or clinical term across all vocabularies.Parameters
Example
get_concept
Get detailed information about a specific OMOP concept by its numeric ID.Parameters
Example
get_concept_by_code
Look up a concept using a vocabulary-specific code (e.g., ICD-10E11.9, SNOMED 44054006).
Parameters
Example
map_concept
Map a concept to equivalent concepts in other vocabularies (e.g., SNOMED to ICD-10).Parameters
Example
get_hierarchy
Navigate concept hierarchy - ancestors, descendants, or both.Parameters
Example
list_vocabularies
List available medical vocabularies with statistics.Parameters
Example
semantic_search
Search for medical concepts using natural language with neural embeddings. Unlike keyword search, semantic search understands clinical meaning - “heart attack” finds “Myocardial infarction”, “high blood sugar” finds “Hyperglycemia”.Parameters
Example
find_similar_concepts
Find medical concepts similar to a reference concept, name, or natural language query. Supports three similarity algorithms. Provide exactly one of:concept_id, concept_name, or query.
Parameters
Pagination
The tool’s text output ends with the position in the ranking —Page 2 of 3 — more results available, request page 3. — and the JSON block carries the full
pagination object.
Page while has_next is true rather than comparing page to total_pages. Every
algorithm ranks a bounded candidate pool and total_candidates counts only
what cleared the threshold inside it, so the totals can be lower bounds;
search_metadata.totals_are_lower_bound says when. Reachable depth is bounded at
roughly 500 / page_size pages — the pool is a constant 500 candidates, so a
score never changes with page_size — and a page past the end comes back empty with
has_next: false rather than as an error.
hybrid fuses both signals as 0.7 x semantic + 0.3 x lexical. Every candidate
is scored by that rule, with a signal neither retrieval established counting as
0. So a concept sharing no words with the query keeps only 0.7 x its semantic
score, and one the embedding search did not return keeps only 0.3 x its lexical
score — capping it at 0.3. The same similarity_threshold is therefore
stricter for hybrid than for either single-signal algorithm. Lower it, use
semantic for conceptual matches that share no vocabulary, or use lexical for
exact name and code matches: hybrid is not a superset of the other two.
When hybrid is requested but the embedding service is unavailable, the tool
serves the lexical half and says so, reporting algorithm_used: "lexical" with
degraded_from: "hybrid".
Example
explore_concept
Get a comprehensive view of a medical concept in one call: detailed info, ancestors/descendants hierarchy, and cross-vocabulary mappings. Use this instead of callingget_concept + get_hierarchy + map_concept separately.
Parameters
Example
fhir_resolve
Resolve a FHIR coded value (system URI + code) to its OMOP standard concept, CDM target table, and optional Phoebe recommendations. Supports text-only input via semantic search fallback.Parameters
At least one of (
system + code), (vocabulary_id + code), or display is required.