SidneyBissoli/medical-terminologies-mcp

SidneyBissoli/medical-terminologies-mcp

от sidneybissoli
MCP сервер для унифицированного доступа к глобальным медицинским терминологиям: ICD-11, LOINC, RxNorm, MeSH, ATC и другим. Более 30 инструментов для поиска кодов, сопоставления терминов и валидации...

Medical Terminologies MCP Server

npm version npm downloads node MCP Registry LobeHub smithery badge Glama MCP server Available on CodeGuilds GitHub stars GitHub Sponsors tool calls MCP License: MIT

A Model Context Protocol (MCP) server providing unified access to major global medical terminologies:

  • ICD-11 - International Classification of Diseases (WHO)
  • LOINC - Logical Observation Identifiers Names and Codes
  • RxNorm - Normalized names for clinical drugs (NIH)
  • MeSH - Medical Subject Headings (NLM)
  • ATC - Anatomical Therapeutic Chemical classification (WHO Collaborating Centre, served via NLM RxClass)
  • CID-10 - Brazilian Portuguese translation of ICD-10 (DataSUS V2008, bundled)

🇧🇷 Leia em Português

See it in action

Ask your assistant:

  • "What's the ICD-11 code for type 2 diabetes?" → icd11_search
  • "Map ICD-10 code E11 to ICD-11." → map_icd10_to_icd11
  • "What does LOINC 2339-0 measure?" → loinc_details
  • "Qual o código CID-10 para infarto agudo do miocárdio?" → cid10_search

The answers come from authoritative sources (WHO, NLM, NIH, DataSUS) — real codes and mappings, not guesses from training data.

Features

  • 33 tools: 31 terminology tools plus search/fetch for ChatGPT Deep Research
  • 3 MCP Prompts that orchestrate tool calls into named workflows (find-medical-code, drug-info, cid10-portuguese-lookup) — clients render these as one-click user actions
  • 4 MCP Resources for in-process reference content (info://server, info://cid10/chapters, info://licenses, info://stats) — sub-millisecond reads (except info://stats which round-trips to the StatsCounter Durable Object on the hosted endpoint)
  • Multi-terminology support in a single server
  • Cross-terminology mapping and search
  • Provenance on every response (since v1.8.0): each successful tool result carries a machine-readable provenance block — source, canonical URL, data vintage, real extraction instant (cache hits keep the original fetch instant), ready-to-use citation, and license — in structuredContent.provenance + attribution, mirrored in _meta under com.sidneybissoli.medical/*, with a compact text footer for text-only clients. Multi-source responses (find_equivalent, validate_codes) carry one block per source; server-computed ranking fields are flagged as derived
  • Built-in caching for improved performance
  • Rate limiting to respect API limits
  • Detailed responses with rich formatting
  • Two transports: stdio (default; for Claude Desktop, IDE clients) and Streamable HTTP (the hosted Cloudflare Worker at https://medical.sidneybissoli.com/mcp, or your own instance of worker/)

Часто задаваемые вопросы

Инструменты были проиндексированы:
atc_classifyтолько чтениеидемпотентныйвнешний мир

Ищет классификацию WHO ATC (Anatomical Therapeutic Chemical) для препарата по названию. Инструмент: - Находит код ATC для лекарства (например, "metformin" → A10BA02) - Определяет иерархию терапевтических и фармакологических классов - Сопоставляет препараты с их международными кодами ATC Возвращает одну запись для каждого кода ATC, к которому относится препарат. Препарат с одним действующим веществом обычно соответствует одному коду уровня вещества; комбинированные препараты соответствуют нескольким. Коды ATC международные (WHO Collaborating Centre); этот инструмент получает их через NLM RxClass. На входе - НАЗВАНИЕ препарата (брендовое или генерическое, английское/американское написание, как в RxNorm). Если RxNorm не распознаёт название или у препарата нет сопоставления с ATC, возвращается пустой список matches с пояснением - это не ошибка; попробуйте генерическое название или сначала определите название с помощью rxnorm_search. Какой инструмент ATC выбрать: начните здесь, когда у вас есть название препарата; используйте atc_lookup, когда у вас уже есть код класса (уровень 1-4, например "A10BA") и вы хотите узнать его название; используйте atc_members, чтобы перечислить препараты внутри класса.

ATC-классификация для лекарственного средства

Параметры
  • drug_namestringобязательный

    Название препарата для классификации (брендовое или генерическое, например, 'metformin')

atc_lookupтолько чтениеидемпотентныйвнешний мир

Находит ATC-код уровня 1-4 и возвращает его название и уровень иерархии. Используйте этот инструмент, чтобы: - Преобразовать ATC-код (например, "A10BA") в название класса ("Biguanides") - Подтвердить, что код существует в текущем индексе ATC - Определить уровень (анатомический / терапевтический / фармакологический / химический) Принимает коды длиной 1-5 символов: "A" (анатомический), "A10" (терапевтический), "A10B" (фармакологический), "A10BA" (химический). Коды уровня вещества (7 символов, например, "A10BA02") не предоставляются этим endpoint: используйте atc_classify с названием препарата, чтобы получить код вещества.

Детали кода ATC

Параметры
  • atc_codestringобязательный

    Код ATC уровней 1-4 (1-5 символов). Коды уровня вещества (7 символов, например, A10BA02) не доступны через эту конечную точку — вместо этого используйте atc_classify с названием препарата.

atc_membersтолько чтениеидемпотентныйвнешний мир

Перечисляет препараты (вещества), принадлежащие к классу ATC. Используйте этот инструмент, чтобы: - Перечислить всех членов терапевтического класса (например, "A10BA" → метформин, фенформин) - Построить список препаратов, имеющих общий фармакологический механизм - Исследовать поддерево ATC на любом уровне Каждый член включает свой ATC-код на уровне вещества (7 символов) через source_atc_code, что полезно для устранения неоднозначности, когда запрашиваемый класс находится на уровне 1-4. Каталог RxNorm ориентирован на США; сами названия и коды классов ATC международные.

Члены класса ATC

Параметры
  • atc_codestringобязательный

    Код ATC на любом уровне. Более высокие уровни (1-4) возвращают все входящие вещества; уровень 5 возвращает отдельное вещество.

cid10_chapterтолько чтениеидемпотентныйвнешний мир

Получает одну главу CID-10 и составляющие её группы (например, «Глава IX → I00-I02 Febre reumática aguda, I05-I09 Doenças reumáticas crônicas do coração, ...»). Используйте этот инструмент, чтобы: - переходить от главы к её группам (диапазоны кодов с португальскими названиями) - строить иерархические браузеры - определять, какая группа содержит диапазон кодов Укажите номер главы num в виде целого числа от 1 до 22 (глава I = 1, IX = 9). Числа вне 1-22 отклоняются с ошибкой валидации. Возвращает главу (название и диапазон кодов) и ВСЕ её группы в одном ответе, без пагинации; в 22 главах всего 275 групп. Отвечает локально из встроенного CID-10 V2008; без сетевого запроса. Какой инструмент CID-10: сначала используйте cid10_chapters, если не знаете номер главы (он перечисляет все 22 с диапазонами кодов); для одного конкретного кода используйте cid10_lookup, а для поиска кодов по португальскому тексту: cid10_search. Для международного ICD-11 используйте icd11_chapters.

Глава CID-10

Параметры
  • numintegerобязательный

    Part number (1-22). CID-10 V2008 has 22 parts.

cid10_chaptersтолько чтениеидемпотентныйвнешний мир

Перечисляет 22 главы CID-10 с их диапазонами кодов и названиями на португальском языке. Используйте этот инструмент, чтобы: - Увидеть верхнеуровневую структуру CID-10 (главы I-XXII, например, "I. Algumas doenças infecciosas e parasitárias", "IX. Doenças do aparelho circulatório") - Сопоставить код с его главой по диапазону кодов (например, I00-I99 → глава IX) - Построить навигационное оглавление для последующих инструментов Возвращает 22 записи - CID-10 V2008 не обновлялся с 2008 года.

Главы CID-10

Параметры

Без параметров.

cid10_lookupтолько чтениеидемпотентныйвнешний мир

Находит конкретный код CID-10 и возвращает его португальское название. Используйте этот инструмент, чтобы: - Сопоставить код с бразильским описанием ("I21" → "Infarto agudo do miocárdio") - Подтвердить, что категория из 3 символов или подкатегория из 4 символов существует в CID-10 - Получить флаги ограничений по полу / причине смерти, если применимо Принимает как точечную форму ("A00.1"), так и бесточечную ("A001"); возвращает каноническое отображение.

Запросить код МКБ-10

Параметры
  • codestringобязательный

    Код CID-10 (например, «A00», «A00.1», «A001», «I21»). Принимаются обе формы: с точкой и без точки.

cid10_searchтолько чтениеидемпотентныйвнешний мир

Ищет в бразильском CID-10 (Classificação Estatística Internacional de Doenças, 10ª Revisão) по португальскому тексту. Используйте этот инструмент, чтобы: - Находить коды CID-10 для бразильских контекстов SUS / ANVISA («infarto», «diabetes», «tuberculose») - Искать официальный португальский перевод (CBCD/USP) клинического термина - Находить коды для биллинга, эпидемиологии и клинической документации в Бразилии Возвращает совпадения из категорий CID-10 (3-значные) и/или подкатегорий (4-значные). Поиск нечувствителен к диакритике: ввод «infeccoes» находит «infecções». Каждое слово должно совпадать (AND), а обиходный португальский приводится к формулировкам самого CID-10 (câncer→neoplasia maligna, AVC→acidente vascular cerebral, pressão alta→hipertensão, suicídio→lesão autoprovocada, aids→HIV); когда это происходит, ответ сообщает об этом в vocabulary_notes. Этот инструмент ищет по бразильскому португальскому CID-10 V2008 - для международной ICD-11 (текущая редакция ВОЗ, по умолчанию на английском) используйте icd11_search.

Ищет в МКБ-10

Параметры
  • levelenum

    Ограничьте поиск категориями из 3 символов, подкатегориями из 4 символов или обоими вариантами. По умолчанию: все.

  • max_resultsinteger

    Максимальное количество результатов (по умолчанию: 50)

  • querystringобязательный

    Поисковые термины на португальском, AND между словами (например, "diabetes", "infarto", "câncer de mama"); диакритические знаки игнорируются, бытовые слова приводятся к формулировкам CID-10

fetchтолько чтениеидемпотентныйвнешний мир

Возвращает полный документ для идентификатора, полученного из search, в виде { id, title, text, url, metadata }: text - это читаемый контент (Markdown), а url - каноническая публичная страница для цитирования. Дополняет search в контракте OpenAI Deep Research, работая с каталогом медицинских терминологий (категории и главы CID-10, ICD-11, LOINC, RxNorm, MeSH, записи версий терминологий). Допустимы только идентификаторы, возвращённые search; неизвестный идентификатор возвращает ошибку. Для запросов данных по-прежнему служат инструменты терминологий (icd11_*, cid10_*, loinc_*, rxnorm_*, mesh_*, atc_*, map_*, find_equivalent, validate_codes). Поведение: только чтение и идемпотентность. Выполняет живой GET-запрос к публичному источнику, когда документ этого требует.

Документ Deep Research

Параметры
  • idstringобязательный

    Идентификатор документа, возвращаемый search

find_equivalentтолько чтениеидемпотентныйвнешний мир

Выполняет ранжированный унифицированный поиск эквивалентных терминов по нескольким медицинским терминологиям. Этот инструмент делает следующее: - Находит один и тот же концепт в разных системах кодирования - Сравнивает, как терминологии представляют концепт - Поддерживает сопоставление терминологий и интеграцию данных Ищет по: ICD-11, LOINC, RxNorm и MeSH. Задаёт target_terminologies, чтобы ограничить список искомых терминологий, или задаёт source_terminology, чтобы исключить одну (например, когда код из этой терминологии уже есть, а нужны эквиваленты в других). Эти два параметра работают вместе: source_terminology вычитается из target_terminologies. limit ограничивает число кандидатов на терминологию (по умолчанию 5, максимум 10). У каждого кандидата есть match_score (лексическое сходство с поисковым запросом, 0-1) и rank (глобальная позиция по всем искомым терминологиям), оба вычисляет этот сервер, потому что вышестоящие системы не отдают сопоставимые оценки релевантности. Кандидатов из разных терминологий с лексически одинаковыми названиями сервер группирует в groups: сильный сигнал одного и того же концепта (отсутствие группы НЕ доказывает неэквивалентность). Ищет в вышестоящих системах на английском. Для официального контента на pt-BR есть специальные инструменты: icd11_search/mesh_search принимают language: "pt", а cid10_search изначально на португальском.

Находит эквиваленты в разных терминологиях

Параметры
  • limitinteger

    Максимум кандидатов на терминологию (1-10, по умолчанию 5). Это ограничение, а не страница: у живого fan-out нет стабильного курсора через пять апстримов, так что поднимайте лимит вместо пагинации.

  • source_terminologyenum

    如果设置了,该术语表将从搜索中排除。当术语来自该术语表,并且您想要其他术语表中的等效词时,请使用此选项。与target_terminologies组合时采用减法(源术语从目标列表中移除)。

  • target_terminologiesenum[]

    Ограничьте поиск этими терминологиями. Если не указано, ищутся все пять.

  • termstringобязательный

    Медицинский термин для поиска (например, «диабет», «аспирин»)

harmonize_termsтолько чтениеидемпотентныйвнешний мир

Сопоставляет СПИСОК клинических терминов в свободной форме со стандартными кодами за один вызов, с ранжированными кандидатами и меткой уверенности для каждого - базовый элемент проверяемого crosswalk. Применяйте инструмент, чтобы: - Привести столбец диагнозов, препаратов или названий лабораторных показателей из датасета к ICD-11 / RxNorm (+ ATC) / LOINC - Разобрать, какие термины отображаются чисто (exact / strong), а какие требуют человека (needs_review) - Построить crosswalk, который можно аудировать: каждая строка сохраняет своих кандидатов, оценки и источники Укажите для каждого термина его domain: diagnosis → ICD-11; drug → концепты RxNorm (сначала ингредиенты) плюс классы ATC этого термина; lab → LOINC. До 50 терминов за вызов - список длиннее отклоняется с ошибкой валидации: разбейте его на пакеты по 50. Повторяющиеся пары термин+domain ищутся один раз. max_candidates оставляет 1-5 на термин (по умолчанию 3). Каждый кандидат несёт match_score (лексический, 0-1, формула find_equivalent) и match_type: exact = те же слова после нормализации; strong = каждое слово термина есть в заголовке (или в совпавшем синониме) и score ≥ 0.85; needs_review = всё остальное. Термин из одного слова бывает exact или needs_review, но никогда strong («Tylenol» против «Tylenol PM» - это разные продукты). Синонимы, аббревиатуры («MI», «HbA1c») и опечатки попадают в needs_review или no_candidates - метка склоняется к тому, чтобы позвать человека. Кандидаты, у которых нет общих слов с термином, отбрасываются, как и коды LOINC с названием «Deprecated». Для диагнозов кандидат также оценивается по синонимам, которые сопоставила WHO (например, «hypertension NOS» для Essential hypertension), это указывается в matched_label; посткоординированные кластеры (коды со «/» или «&») исключаются - их нужно строить через icd11_postcoordination. Названия лабораторных показателей неоднозначны без образца и свойства: «glucose» совпадает с более чем тысячей кодов LOINC, так что пишите «glucose serum» или ждите needs_review. Одна неудачная попытка поиска не роняет весь пакет: эта строка возвращается со статусом «error». Термины ищутся на английском и отправляются в API WHO и NLM - сначала деидентифицируйте список. Для…

Приводит термины в свободной форме к стандартным кодам.

Параметры
  • max_candidatesinteger

    Число кандидатов, сохраняемых для каждого термина, лучшие первыми (1-5, по умолчанию 3).

  • termsobject[]обязательный

    Термины для согласования, каждый со своей предметной областью. До 50 за вызов; повторяющиеся пары термин+область ищутся один раз.

icd11_chaptersтолько чтениеидемпотентныйвнешний мир

Перечисляет все главы ICD-11 (категории верхнего уровня) закреплённого релиза ВОЗ. Используйте этот инструмент, чтобы: - получить обзор структуры ICD-11 - найти, какая глава охватывает систему органов или тип состояния - получить URI глав, чтобы детализировать с помощью icd11_hierarchy (direction 'children') Возвращает 28 записей в одном ответе, без пагинации: главы 01-26 плюс дополнительные разделы V (functioning) и X (extension codes), каждая с номером, кодом, названием и URI. Каждую главу инструмент получает из ВОЗ отдельно; если один запрос не удался, эта запись сохраняет свой URI и вместо названия содержит error, а остальные всё равно возвращаются. Укажите language для официальных переводов ВОЗ (например, language: "pt"); результат кэшируется, поэтому повторные вызовы обходятся дёшево. Когда НЕ использовать: чтобы найти конкретное заболевание, используйте icd11_search; для бразильских глав CID-10 (ICD-10) используйте cid10_chapters.

Перечисляет главы МКБ-11

Параметры
  • languageenum

    Код языка (по умолчанию: en). Возвращает ОФИЦИАЛЬНЫЙ перевод исходного текста, если он существует (например, 'pt' для официального португальского); контент никогда не переводится машинно.

icd11_hierarchyтолько чтениеидемпотентныйвнешний мир

Перемещается по иерархии ICD-11, чтобы находить родительские или дочерние сущности. Используйте этот инструмент, чтобы: - Найти более широкие категории (родительские) состояния - Найти конкретные подтипы (дочерние) состояния - Понять структуру классификации Указывайте сущность по code (конечный код, например "5A11", или диапазон блоков, например "5A10-5A2Y": блоки возвращаются от 'parents' с пустыми code и code_range) или по uri (URI, который вернул любой предыдущий ответ). Направление 'parents' возвращает категории-предки, 'children' возвращает подкатегории. Коды ICD-10 (например "E11") не относятся к кодам ICD-11: сначала преобразуйте их с помощью map_icd10_to_icd11.

Просматривает иерархию МКБ-11.

Параметры
  • codestring

    Код ICD-11 (например, "BA00", "5A11") или диапазон блоков (например, "5A10-5A2Y")

  • directionenumобязательный

    Направление: «родители» — для предков, «дети» — для подтипов

  • languageenum

    Код языка (по умолчанию: en). Возвращает ОФИЦИАЛЬНЫЙ перевод исходного текста, если он существует (например, 'pt' для официального португальского); контент никогда не переводится машинно.

  • uristring

    URI сущности, который возвращает icd11_lookup, icd11_search или предыдущий вызов icd11_hierarchy

icd11_lookupтолько чтениеидемпотентныйвнешний мир

Получает подробную информацию об ОДНОЙ сущности ICD-11, для которой у вас уже есть код или URI. Инструмент выполняет: - Получает полное определение болезни - Извлекает примечания по кодированию, включения и исключения - Получает официальное название и термины указателя (синонимы) Укажите code (например, "BA00") или uri (любой URI, который вернул предыдущий ответ) - как минимум одно значение обязательно; вызов без ни одного из них возвращает ошибку валидации с упоминанием обоих. Задайте language для официальных переводов ВОЗ (например, language: "pt" для официального португальского). Возвращает одну сущность (без пагинации). Код, который ВОЗ не знает, возвращается как ошибка "not found", а не пустая запись. Когда НЕ использовать: чтобы найти код по названию болезни, сначала используйте icd11_search; чтобы пройти по родителям/дочерним элементам, используйте icd11_hierarchy; для кода ICD-10 (например, "E11") преобразуйте его с помощью map_icd10_to_icd11. Коды ICD-10 - это не коды ICD-11.

Детали сущности ICD-11

Параметры
  • codestring

    Код ICD-11 (например, «BA00», «1A00»)

  • languageenum

    Код языка (по умолчанию: en). Возвращает ОФИЦИАЛЬНЫЙ перевод исходного текста, если он существует (например, 'pt' для официального португальского); контент никогда не переводится машинно.

  • uristring

    Полный ICD-11 foundation URI

icd11_postcoordinationтолько чтениеидемпотентныйвнешний мир

Перечисляет оси посткоординации, которые WHO допускает для одного стволового кода ICD-11 (MMS linearization, pinned release). Посткоординация - это прикрепление к стволовому коду дополнительных уточнений: тяжести, стороны, анатомии, причинного агента и так далее, чтобы собрать составной (кластерный) код. Применяйте этот инструмент, чтобы: - Посмотреть, какие оси принимает стволовой код, прежде чем собирать составной код - Проверить, какие оси ОБЯЗАТЕЛЬНЫ, а какие нет - Узнать, принимает ось одно значение или несколько, и сколько значений она предлагает Укажите код ICD-11 code (например, "BA00"). Возвращает по одной записи на каждую ось с полями axis_name, required, allow_multiple и value_count - количество допустимых значений, а не сами значения. Код без посткоординации или код, которого WHO не знает, возвращает пустой список axes (а не ошибку), так что проверьте код через icd11_lookup, если список неожиданно пуст. Когда НЕ использовать: он не собирает и не проверяет составной код и не перечисляет допустимые значения; чтобы получить код по названию болезни, используйте icd11_search.

Варианты посткоординации ICD-11

Параметры
  • codestringобязательный

    Код МКБ-11 для получения информации о посткоординации для

icd11_searchтолько чтениеидемпотентныйвнешний мир

Ищет медицинские состояния, заболевания и проблемы со здоровьем в МКБ-11 (Международная классификация болезней, 11-й пересмотр). Используйте этот инструмент, чтобы: - Находить коды МКБ-11 для диагнозов - Искать заболевания по названию или ключевому слову - Искать состояния на нескольких языках Укажите language для официальных переводов ВОЗ — например, language: "pt" ищет и возвращает официальные португальские (pt-BR) метки МКБ-11. Никогда не машинный перевод. Возвращает соответствующие сущности с кодами, названиями и оценками релевантности.

Ищет в ICD-11

Параметры
  • languageenum

    Код языка (по умолчанию: en). Возвращает ОФИЦИАЛЬНЫЙ перевод исходного текста, если он существует (например, 'pt' для официального португальского); контент никогда не переводится машинно.

  • max_resultsinteger

    Максимальное количество результатов (по умолчанию: 50)

  • querystringобязательный

    Искать текст (название болезни, симптом или ключевое слово)

loinc_answersтолько чтениеидемпотентныйвнешний мир

Получает список допустимых ответов для элемента анкеты LOINC. Инструмент выполняет следующие действия: - Находит допустимые варианты ответов для вопросов анкеты - Получает коды ответов (LA…) для проверки при вводе данных - Получает баллы элемента для оцениваемых инструментов (например, PHQ-9: "Not at all" = 0 … "Nearly every day" = 3) Возвращает каждый ответ с его кодом ответа LOINC (LA…), текстом, порядком отображения и баллом (null, если в списке баллов нет). Допустимый код LOINC без определённого списка ответов (например, числовой лабораторный код, такой как 2339-0) возвращает пустой список; код, который LOINC не знает, возвращает ошибку "not found". Работает только с кодами LOINC, которые обозначают вопросы с заданными наборами ответов. Для вопросов всей анкеты используйте loinc_panels; чтобы найти код по имени, используйте loinc_search.

Списки ответов LOINC

Параметры
  • loinc_numstringобязательный

    Номер LOINC (например, "2339-0")

loinc_detailsтолько чтениеидемпотентныйвнешний мир

Получает подробную информацию о конкретном коде LOINC. Используйте этот инструмент, чтобы: - Получить полное название и описание кода LOINC - Найти компонент, свойство, время и систему - Проверить тип шкалы и метод Укажите номер LOINC в формате "XXXXX-X" (например, "2339-0" для глюкозы).

Детали кода LOINC

Параметры
  • loinc_numstringобязательный

    Номер LOINC (например, "2339-0")

loinc_panelsтолько чтениеидемпотентныйвнешний мир

Получает структуру панели или формы LOINC. Используйте этот инструмент, чтобы: - Посмотреть все тесты, входящие в панель (например, ОАК, метаболическая панель) - Получить структуру оценочных форм - Найти связанные наблюдения, сгруппированные вместе Возвращает список кодов LOINC, составляющих панель.

Структура панели LOINC

Параметры
  • loinc_numstringобязательный

    Номер LOINC (например, "2339-0")

loinc_searchтолько чтениеидемпотентныйвнешний мир

Ищет лабораторные тесты, клинические наблюдения и измерения в LOINC (Logical Observation Identifiers Names and Codes). Используйте этот инструмент, чтобы: - Находить коды LOINC для лабораторных тестов (например, «глюкоза», «гемоглобин») - Искать клинические измерения и показатели жизнедеятельности - Находить диагностические наблюдения Возвращает соответствующие коды LOINC с названиями, компонентами и свойствами.

Ищет LOINC

Параметры
  • max_resultsinteger

    Максимальное количество результатов (по умолчанию: 50)

  • querystringобязательный

    Поисковый запрос (название теста, ключевое слово или частичный код LOINC)

map_icd10_to_icd11только чтениеидемпотентныйвнешний мир

Авторитетное отображение ICD-10 → ICD-11 с использованием таблиц перехода ВОЗ (релиз 2025-01, встроен в сервер). Возвращает основную категорию ICD-11 (соотношение 1:1) для кода ICD-10, а также все альтернативные кандидаты ICD-11, задокументированные ВОЗ (некоторые понятия ICD-10 разделяются на несколько сущностей ICD-11). Для каждого отображения включает код ICD-11, название, главу и Foundation URI / Linearization URI для перехода к полному описанию сущности. Используйте это для клинического кодирования, миграции биллинга, ретроспективного анализа и любых рабочих процессов, которым нужно авторитетное отображение, а не кандидаты из текстового поиска. Охват: 11 243 категории ICD-10 (исключаются главы и блоки, такие как "A00-A09", которые не используются в клиническом кодировании). Укажите код, например "E11" (диабет 2 типа), "I21" (острый инфаркт миокарда) или "A07.8" (4 альтернативы в таблице ВОЗ). Принимаются как с точкой ("A07.8"), так и без точки ("A078") формы. Возвращает "no mapping", если код отсутствует в таблице уровней категорий ВОЗ — это честный ответ, а не запасной вариант нечёткого поиска.

Сопоставляет ICD-10 с ICD-11

Параметры
  • icd10_codestringобязательный

    Код МКБ-10 для запроса в поисковом индексе МКБ-11 (например, E11, I21.0, J18.9)

mesh_descriptorтолько чтениеидемпотентныйвнешний мир

Получает подробную информацию о дескрипторе MeSH по ID. Используйте этот инструмент, чтобы: - Получить полное определение (scope note) термина MeSH - Просмотреть номера деревьев, показывающие иерархическое расположение - Увидеть связанные концепции и синонимы Укажите ID дескриптора MeSH, например "D015242" (Ofloxacin). Установите параметр language, чтобы запросить официальные переводы NLM, если они существуют (например, language: "pt").

Детали дескриптора MeSH

Параметры
  • languageenum

    Код языка (по умолчанию: en). Возвращает ОФИЦИАЛЬНЫЙ перевод исходного текста, если он существует (например, 'pt' для официального португальского); контент никогда не переводится машинно.

  • mesh_idstringобязательный

    Идентификатор дескриптора MeSH (например, D015242, D003920)

mesh_qualifiersтолько чтениеидемпотентныйвнешний мир

Получает разрешённые квалификаторы (подрубрики) для дескриптора MeSH. Используйте этот инструмент, чтобы: - Найти квалификаторы, которые можно комбинировать с дескриптором - Строить точные поисковые запросы MeSH - Понять аспекты, которые можно уточнить Квалификаторы уточняют дескрипторы (например, "Diabetes Mellitus/drug therapy").

Допустимые квалификаторы MeSH

Параметры
  • mesh_idstringобязательный

    Идентификатор дескриптора MeSH (например, D015242, D003920)

mesh_searchтолько чтениеидемпотентныйвнешний мир

Ищет дескрипторы MeSH (Medical Subject Headings). Используйте этот инструмент, чтобы: - Находить термины MeSH для индексации медицинской литературы - Искать предметные рубрики для запросов PubMed - Находить термины контролируемого словаря Установите параметр language, чтобы запросить официальные переводы NLM, если они существуют (например, language: "pt" для португальских меток); содержимое никогда не переводится машинно. Возвращает соответствующие дескрипторы с идентификаторами MeSH и метками.

Ищет в MeSH

Параметры
  • languageenum

    Код языка (по умолчанию: en). Возвращает ОФИЦИАЛЬНЫЙ перевод исходного текста, если он существует (например, 'pt' для официального португальского); контент никогда не переводится машинно.

  • matchenum

    Тип сопоставления: exact, contains или startswith. По умолчанию: contains

  • max_resultsinteger

    Максимальное количество результатов (по умолчанию: 50)

  • querystringобязательный

    Поисковый запрос (например, «диабет», «сердечная недостаточность»)

mesh_treeтолько чтениеидемпотентныйвнешний мир

Получает расположение(я) в древовидной иерархии для дескриптора MeSH. Используйте этот инструмент, чтобы: - Увидеть, где термин находится в иерархии MeSH - Понять более широкие/более узкие связи - Найти связанные термины в той же ветви Номера деревьев MeSH показывают иерархический путь (например, C14.280.647 для Myocardial Infarction).

Расположение в дереве MeSH

Параметры
  • mesh_idstringобязательный

    Идентификатор дескриптора MeSH (например, D015242, D003920)

rxnorm_classesтолько чтениеидемпотентныйвнешний мир

Получает терапевтические и фармакологические классы для лекарственного средства. С помощью этого инструмента можно: - Найти класс препарата (например, «Бета-блокаторы», «НПВП») - Определить терапевтические категории - Найти классификацию механизма действия Возвращает идентификаторы классов, названия и источники классификации.

Классы лекарств RxNorm

Параметры
  • rxcuistring | integerобязательный

    RxCUI препарата

rxnorm_conceptтолько чтениеидемпотентныйвнешний мир

Получает подробную информацию о конкретном концепте RxNorm по RxCUI. Используйте этот инструмент, чтобы: - Получить полное название и синонимы для лекарства - Проверить статус концепта (активный, переназначенный и т.д.) - Просмотреть связанные концепты (ингредиенты, бренды, формы) Предоставьте RxCUI (уникальный идентификатор концепта RxNorm), например "161", в виде строки цифр или целого числа.

Детали концепта RxNorm

Параметры
  • include_relatedboolean | enum

    Включает связанные понятия (ингредиенты, бренды, лекарственные формы). По умолчанию false; true/false, также принимаются в виде строк "true"/"false"

  • rxcuistring | integerобязательный

    Уникальный идентификатор концепции RxNorm (строка цифр или целое число, например "161" или 161)

rxnorm_ingredientsтолько чтениеидемпотентныйвнешний мир

Получает активные ингредиенты для лекарства по RxCUI. Используйте этот инструмент, чтобы: - Найти активные ингредиенты в лекарстве - Проверить, однокомпонентный это продукт или многокомпонентный - Определить дженериковые компоненты брендовых лекарств Возвращает RxCUI ингредиентов и их названия.

RxNorm Drug Ingredients

Параметры
  • rxcuistring | integerобязательный

    RxCUI препарата

rxnorm_ndcтолько чтениеидемпотентныйвнешний мир

Сопоставляет концепции RxNorm с национальными кодами лекарственных средств (NDC). Используйте этот инструмент, чтобы: - Получить все NDC-коды для лекарства (по RxCUI) - Найти RxCUI для NDC-кода - Выполнять перекрёстные ссылки между системами кодирования Укажите либо RxCUI для получения NDC, либо NDC для получения RxCUI.

Сопоставление RxNorm / NDC

Параметры
  • ndcstring

    Код NDC для поиска RxCUI (альтернатива rxcui)

  • rxcuistring | integer

    RxCUI для получения кодов NDC для

rxnorm_searchтолько чтениеидемпотентныйвнешний мир

Ищет лекарства в RxNorm (нормализованные названия клинических препаратов). Используйте этот инструмент, чтобы: - Находить концепты лекарств по торговому или международному наименованию - Искать медикаменты для назначения - Искать лекарственные формы Возвращает соответствующие лекарства с идентификаторами RxCUI, названиями и типами терминов.

Ищет лекарства RxNorm

Параметры
  • max_resultsinteger

    Максимальное количество результатов (по умолчанию: 50)

  • querystringобязательный

    Название препарата для поиска (торговое или генерическое)

searchтолько чтениеидемпотентныйвнешний мир

Ищет в каталоге медицинских терминологий (категории и главы CID-10, ICD-11, LOINC, RxNorm, MeSH, записи версий терминологий) и возвращает до 10 подходящих документов в виде { id, title, url }, отсортированных по релевантности (пустой список означает, что ничего не найдено). Этот инструмент создан для контракта OpenAI Deep Research: глубокие исследования ChatGPT, корпоративные знания и исследовательские рабочие процессы через Responses API требуют именно инструментов search и fetch. Передайте один из возвращённых идентификаторов в fetch, чтобы прочитать документ. Для прямых вопросов и данных (значения, ряды, рейтинги) предпочитайте инструменты терминологии (icd11_*, cid10_*, loinc_*, rxnorm_*, mesh_*, atc_*, map_*, find_equivalent, validate_codes), которые возвращают фактические данные с указанием источника, это индекс каталога, а не запрос данных. Запрос: естественный язык или ключевые слова, португальский или английский; акценты и регистр игнорируются. Поведение: только чтение и идемпотентно, каталог берётся из публичного источника и кэшируется в памяти.

Глубокий исследовательский поиск

Параметры
  • querystringобязательный

    Поисковые запросы, естественный язык или ключевые слова (диакритические знаки и регистр не учитываются)

terminology_diffтолько чтениеидемпотентныйвнешний мир

Сообщает, какие данные о различиях доступны между двумя версиями терминологии. Для большинства терминологий это только подсказка: сервер не поставляет исторические снимки, поэтому инструмент указывает на официальный changelog издателя и объясняет периодичность релизов. bundled_versions перечисляет версии, которые реально есть под рукой у этого сервера. Конкретно для ICD-10 vs ICD-11 инструмент выдаёт настоящую сводку по переходам между редакциями из встроенных таблиц переходов ВОЗ (случай ICD-10 → ICD-11 - это структурное сравнение двух редакций ВОЗ). Используйте terminology: "icd10" без to_version, чтобы получить сводку по переходам между редакциями: сколько всего категорий ICD-10 сопоставлено, сколько сопоставлены 1:1, а сколько разбиваются на несколько кодов ICD-11, и среднее число альтернатив при разбиении. Входные параметры: - terminology (обязательный): по какой терминологии строить отчёт. - from_version (необязательный): версия, данные по которой у вас есть. Если не указать, инструмент строит отчёт относительно текущей встроенной версии. - to_version (необязательный): версия, с которой хотите сравнить. Если не указать, инструмент строит отчёт относительно последнего известного релиза издателя. Этот инструмент намеренно сделан слоем метаданных и подсказок, а не движком сравнения: для терминологий, которые часто меняются (LOINC, RxNorm, MeSH), авторитетный источник - официальный changelog издателя.

Сравнение версий терминологии

Параметры
  • from_versionstring

    Версия, из которой у вас есть данные. Необязательно; поведение зависит от терминологии.

  • terminologyenumобязательный

    О какой терминологии сообщать?

  • to_versionstring

    Версия, с которой вы хотите сравнить. Необязательно.

terminology_versionsтолько чтениеидемпотентныйвнешний мир

Перечисляет текущую версию, дату выпуска, издателя, URL источника и периодичность обновления каждой терминологии, к которой обращается этот сервер. Пригодится тем, кто поддерживает пайплайны и кому нужно: - Убедиться, к какому выпуску ICD-11 / LOINC / RxNorm / MeSH / ATC обращается сервер перед пакетным запуском. - Проверить, что встроенный CID-10 (зафиксирован на V2008) и таблицы перехода ICD-10 → ICD-11 (сейчас 2025-01) совпадают с ожиданиями. - Указать версию данных в исследовательских материалах. Передайте terminology, чтобы отфильтровать до одной записи; иначе вернётся полный набор из 7. Версия ICD-10 → ICD-11 читается напрямую из встроенного набора данных; всё остальное - метаданные, которые ведутся вместе с релизом проекта.

Версии терминологии

Параметры
  • terminologyenum

    Фильтрует до одной терминологии. Если опустить, возвращает все 8.

validate_codesтолько чтениеидемпотентныйвнешний мир

Проверяет смешанный набор медицинских кодов на соответствие их исходным терминологиям. Пригодится для ретроспективного анализа старых баз данных: помечает коды, которых больше не существует, показывает замены ICD-10 → ICD-11 и оценивает статус активности там, где терминология его раскрывает. Для каждого входного { code, terminology } возвращает: - valid: есть ли код в исходной терминологии. - active: активен ли код сейчас. Null, когда источник не даёт явного разделения active/inactive на уровне категории (CID-10, ATC, ICD-11, RxNorm, MeSH сегодня все возвращают null; LOINC возвращает настоящий boolean). - title: официальная метка/название, если есть. - replaced_by: код-преемник, сейчас заполняется только для кодов ICD-10, у которых есть основное сопоставление с ICD-11 во встроенных таблицах переходов WHO. - source: читаемое человеком происхождение проверки (терминология + релиз/версия). - error: не null только когда проверку не удалось выполнить (ошибка сети, недоступность вышестоящего сервиса и т. п.). valid: false + error: null значит "код не найден"; valid: false + error: set значит "не удалось проверить". Терминология обязательна для каждого кода - автодетект не поддерживается, потому что коды категорий вроде "A00" есть и в ICD-10, и в CID-10. Допустимые значения: icd11, icd10, loinc, rxnorm, mesh, atc, cid10. Жёсткий лимит 50 кодов на вызов; коды проверяются параллельно через соответствующие клиенты, поэтому общее время зависит от самого медленного вышестоящего сервиса плюс его rate limit (худший случай ~10 с для полного набора, упирающегося в ICD-11).

Проверяет медицинские коды

Параметры
  • codesobject[]обязательный

    Список пар код+терминология для проверки. Жесткий лимит 50 за вызов, чтобы общая задержка оставалась менее ~10 с с учетом ограничений вышестоящей системы.

2.3.0основная
2.2.0
2.1.2
2.1.1
2.1.0
2.0.0
1.18.2
1.18.1
1.18.0
1.17.2
1.17.1
1.17.0
1.16.0
1.15.0
1.14.0
1.12.1
1.12.0
1.11.0
1.10.0
1.9.1
1.9.0
1.8.0
1.7.0
1.6.0
1.5.7
1.5.6
1.5.5
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.4.2
1.4.1
1.4.0
1.3.0
1.2.1
1.2.0
1.1.1
1.0.2
1.0.1
1.0.0

Выберите клиент, чтобы установить SidneyBissoli/medical-terminologies-mcp:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "sidneybissoli-medical-terminologies-mcp-ocvbeqxekg": {
      "command": "npx",
      "args": [
        "-y",
        "medical-terminologies-mcp"
      ],
      "env": {
        "WHO_CLIENT_ID": "your-who-client-id",
        "WHO_CLIENT_SECRET": "your-who-client-secret"
      }
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "sidneybissoli-medical-terminologies-mcp-ocvbeqxekg": {
      "command": "npx",
      "args": [
        "-y",
        "medical-terminologies-mcp"
      ],
      "env": {
        "WHO_CLIENT_ID": "your-who-client-id",
        "WHO_CLIENT_SECRET": "your-who-client-secret"
      }
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "sidneybissoli-medical-terminologies-mcp-ocvbeqxekg": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "medical-terminologies-mcp"
      ],
      "env": {
        "WHO_CLIENT_ID": "your-who-client-id",
        "WHO_CLIENT_SECRET": "your-who-client-secret"
      }
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"sidneybissoli-medical-terminologies-mcp-ocvbeqxekg\",\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"-y\",\"medical-terminologies-mcp\"],\"env\":{\"WHO_CLIENT_ID\":\"your-who-client-id\",\"WHO_CLIENT_SECRET\":\"your-who-client-secret\"}}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "sidneybissoli-medical-terminologies-mcp-ocvbeqxekg": {
      "command": "npx",
      "args": [
        "-y",
        "medical-terminologies-mcp"
      ],
      "env": {
        "WHO_CLIENT_ID": "your-who-client-id",
        "WHO_CLIENT_SECRET": "your-who-client-secret"
      }
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add sidneybissoli-medical-terminologies-mcp-ocvbeqxekg --env WHO_CLIENT_ID=your-who-client-id --env WHO_CLIENT_SECRET=your-who-client-secret -- npx -y medical-terminologies-mcp

Либо через JSON-конфиг:

claude mcp add-json sidneybissoli-medical-terminologies-mcp-ocvbeqxekg "{\"command\":\"npx\",\"args\":[\"-y\",\"medical-terminologies-mcp\"],\"env\":{\"WHO_CLIENT_ID\":\"your-who-client-id\",\"WHO_CLIENT_SECRET\":\"your-who-client-secret\"}}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add sidneybissoli-medical-terminologies-mcp-ocvbeqxekg --env WHO_CLIENT_ID=your-who-client-id --env WHO_CLIENT_SECRET=your-who-client-secret -- npx -y medical-terminologies-mcp

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.sidneybissoli-medical-terminologies-mcp-ocvbeqxekg]
command = "npx"
args = ["-y", "medical-terminologies-mcp"]

[mcp_servers.sidneybissoli-medical-terminologies-mcp-ocvbeqxekg.env]
WHO_CLIENT_ID = "your-who-client-id"
WHO_CLIENT_SECRET = "your-who-client-secret"
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите SidneyBissoli/medical-terminologies-mcp, а в поле команды запуска — строку ниже:
npx -y medical-terminologies-mcp

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "sidneybissoli-medical-terminologies-mcp-ocvbeqxekg": {
      "command": "npx",
      "args": [
        "-y",
        "medical-terminologies-mcp"
      ],
      "env": {
        "WHO_CLIENT_ID": "your-who-client-id",
        "WHO_CLIENT_SECRET": "your-who-client-secret"
      }
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "sidneybissoli-medical-terminologies-mcp-ocvbeqxekg": {
      "command": "npx",
      "args": [
        "-y",
        "medical-terminologies-mcp"
      ],
      "env": {
        "WHO_CLIENT_ID": "your-who-client-id",
        "WHO_CLIENT_SECRET": "your-who-client-secret"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например sidneybissoli-medical-terminologies-mcp-ocvbeqxekg.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: sidneybissoli-medical-terminologies-mcp-ocvbeqxekg
    command: npx
    args:
      - "-y"
      - "medical-terminologies-mcp"
    env:
      WHO_CLIENT_ID: your-who-client-id
      WHO_CLIENT_SECRET: your-who-client-secret
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "sidneybissoli-medical-terminologies-mcp-ocvbeqxekg": {
      "command": "npx",
      "args": [
        "-y",
        "medical-terminologies-mcp"
      ],
      "env": {
        "WHO_CLIENT_ID": "your-who-client-id",
        "WHO_CLIENT_SECRET": "your-who-client-secret"
      }
    }
  }
}

Похожие MCP-сервера

OHNLP/omop_mcp

OHNLP/omop_mcp

от ohnlp

MCP сервер для маппинга клинических терминов в OMOP концепты через LLM. Использует OMOPHub API и батч-обработку CSV с выбором предпочтительных словарей (LOINC, SNOMED). Помогает унифицировать медицинские данные.

Python⭐ 41
longevity-genie/gget-mcp

longevity-genie/gget-mcp

от longevity-genie

MCP сервер для библиотеки gget: AI-ассистенты выполняют сложные запросы к геномным базам: поиск генов, BLAST и предсказание белков. Инструмент полезен биоинформатикам для анализа геномики через естественный язык.

Python⭐ 33
musharna/plant-genomics-mcp

musharna/plant-genomics-mcp

от musharna

MCP-сервер с 32 инструментами для поиска и анализа геномных локусов растений. Использует 11 открытых источников (Ensembl Plants, Phytozome, UniProt и др.) для получения аннотаций, гомологов и путей...

Python⭐ 7
ammawla/encode-toolkit

ammawla/encode-toolkit

от ammawla

MCP-сервер для геномных исследований: поиск по ENCODE, интеграция 14 баз (GTEx, ClinVar, GWAS) и запуск пайплайнов с генерацией методов - всё на естественном языке в Claude. Для биоинформатиков и г...

Python⭐ 21
cafferychen777/ChatSpatial

cafferychen777/ChatSpatial

от cafferychen777

ChatSpatial - MCP-сервер для пространственной транскриптомики на естественном языке. Вместо генерации скриптов использует 20 инструментов и 65 методов - от загрузки до визуализации. Для Visium, Xen...

Python⭐ 45
wso2/fhir-mcp-server

wso2/fhir-mcp-server

официальный

от wso2

MCP сервер для FHIR API. Интегрирует AI-инструменты с медицинскими данными: поиск, чтение и запись ресурсов. Поддерживает SMART-on-FHIR аутентификацию и FHIRPath-фильтрацию. Для разработчиков и инт...

Python⭐ 137
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин