Skip to main content
Glama

Umls Search

umls_search
Read-onlyIdempotent

Search clinical terms/codes → UMLS concepts (CUIs). Maps free text or a source code to UMLS concept unique identifiers spanning SNOMED CT, ICD-10, RxNorm, LOINC, MeSH, etc. Example: umls_search({ query: "myocardial infarction", _apiKey: "your-key" })

Input Schema

NameRequiredDescriptionDefault
queryYesA clinical term, phrase, or source code to search, e.g. "heart attack" or "410.0"
sourceNoOptional source vocabulary abbreviation (SAB) to restrict results, e.g. "SNOMEDCT_US", "ICD10CM", "RXNORM", "LNC", "MSH". Comma-separate for multiple.
_apiKeyYesFree UMLS UTS API key (from your UTS profile at uts.nlm.nih.gov)
return_typeNoOptional identifier type to return: "concept" (default, CUIs), "code" (source codes), or "sourceConcept".

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds useful scope context (it spans SNOMED CT, ICD-10, RxNorm, LOINC, MeSH) and the example surfaces the API-key requirement, but it says nothing about result limits, ambiguity resolution, or what happens with multiple matches.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the verb-resource mapping and kept to two compact sentences plus a single runnable example. The arrow notation conveys the input-to-output relationship efficiently, though the vocabularies list is somewhat enumerative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully states what comes back (CUIs) and which vocabularies are covered, and the example shows a concrete call shape. It is nearly complete for a search tool, missing only how results are shaped when multiple concepts match.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented in the schema; the baseline of 3 applies. The description adds marginal value by clarifying that 'query' accepts either free text or a source code, but it adds nothing about the source or return_type parameters beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: search clinical terms/codes and map them to UMLS CUIs across named vocabularies. It is clear what the tool does, but it does not distinguish itself from siblings like umls_concept, umls_crosswalk, or umls_atoms, so an agent cannot tell from the text alone which UMLS tool to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'maps free text or a source code to CUIs', which suggests it is the natural entry point when starting from raw text or an external code. However there is no explicit when-to-use vs alternative guidance (e.g. use umls_concept when you already have a CUI) and no mention of prerequisites beyond the API key example.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.