Skip to content

Health & medicines

by fourzerotwo.si · remote · no sign-in to list tools · v1.0.0 · published by si.fourzerotwo

Clinical trials, RxNorm drug lookups, FDA drug and device data, PubMed and NHS organisations.

Changes · 24

29 tools: 24 change things and 5 only read.

Scanned Oct 21, 2026

2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http health https://fourzerotwo.si/mcp/v/health

Findings

Matches of fixed checks, with the text they matched.

2 warn
  • The server marks "nhs-organisations__organisation" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.

    What this check looks for
  • The server marks "openfda__drug-labels" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "openfda__drug-labels" says "label": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

29 tools

Changes things 24Claude Code: ask
  • clinical-trials__recruitingStudies recruiting (or about to) for a condition in a city, region or country, with the matching trial sites.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Studies recruiting (or about to) for a condition in a city, region or country, with the matching trial sites. Free within the daily allowance, then $0.003 USDC per call via x402.

    Annotations the server declares

    • title: Clinical Trials (ClinicalTrials.gov): Recruiting trials near a place
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • clinical-trials__statsHow many registered studies for a condition are recruiting, active, completed, terminated or withdrawn.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    How many registered studies for a condition are recruiting, active, completed, terminated or withdrawn. A few free samples a day, then $0.003 USDC per call via x402.

    Annotations the server declares

    • title: Clinical Trials (ClinicalTrials.gov): Trial counts by status
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • clinical-trials__studyOne study: title, status, phase, conditions, interventions, sponsor, enrolment, dates, eligibility basics, primary outcomes, countries, whether results are posted.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    One study: title, status, phase, conditions, interventions, sponsor, enrolment, dates, eligibility basics, primary outcomes, countries, whether results are posted. Free within the daily allowance, then $0.002 USDC per call via x402.

    Annotations the server declares

    • title: Clinical Trials (ClinicalTrials.gov): Study by NCT number
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • nhs-organisations__organisationName, status, address, phone/website, roles and relationships (commissioner, operator, geography) for one ODS code.1 finding

    Why it is in this group

    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "nhs-organisations__organisation" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.

      What this check looks for
    Description, as the server wrote it
    Name, status, address, phone/website, roles and relationships (commissioner, operator, geography) for one ODS code. Free within the daily allowance, then $0.001 USDC per call via x402.

    Annotations the server declares

    • title: NHS Organisations (ODS): Organisation by ODS code
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • nhs-organisations__rolesEvery ODS role code with its name, and the friendly aliases search accepts.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Every ODS role code with its name, and the friendly aliases search accepts. Free within the daily allowance, then $0.0005 USDC per call via x402.

    Annotations the server declares

    • title: NHS Organisations (ODS): Role codes
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • openfda__device-510kPremarket 510(k) clearances.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Premarket 510(k) clearances. Free within the daily allowance, then $0.003 USDC per call via x402.

    Annotations the server declares

    • title: openFDA: Device 510(k) clearances
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • openfda__device-eventsMAUDE medical device adverse event reports.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    MAUDE medical device adverse event reports. Free within the daily allowance, then $0.003 USDC per call via x402.

    Annotations the server declares

    • title: openFDA: Device adverse events
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • openfda__device-recallsMedical device recalls.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Medical device recalls. Free within the daily allowance, then $0.003 USDC per call via x402.

    Annotations the server declares

    • title: openFDA: Device recalls
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • openfda__drug-adverse-eventsFAERS adverse event reports for a drug.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    FAERS adverse event reports for a drug. Free within the daily allowance, then $0.003 USDC per call via x402.

    Annotations the server declares

    • title: openFDA: Drug adverse events
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • openfda__drug-labelsStructured prescribing information: indications, dosage, warnings, interactions.1 finding

    Why it is in this group

    • The name "openfda__drug-labels" says "label": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "openfda__drug-labels" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "openfda__drug-labels" says "label": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Structured prescribing information: indications, dosage, warnings, interactions. Free within the daily allowance, then $0.003 USDC per call via x402.

    Annotations the server declares

    • title: openFDA: Drug labels
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • openfda__drug-ndcNational Drug Code directory entries.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    National Drug Code directory entries. Free within the daily allowance, then $0.003 USDC per call via x402.

    Annotations the server declares

    • title: openFDA: NDC directory
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • openfda__drug-recallsDrug recall enforcement reports.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Drug recall enforcement reports. Free within the daily allowance, then $0.003 USDC per call via x402.

    Annotations the server declares

    • title: openFDA: Drug recalls
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • openfda__drugs-fdaFDA approval history (Drugs@FDA) for an application or brand.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    FDA approval history (Drugs@FDA) for an application or brand. Free within the daily allowance, then $0.003 USDC per call via x402.

    Annotations the server declares

    • title: openFDA: Drug approvals
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • openfda__food-adverse-eventsCAERS reports for foods, supplements and cosmetics.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    CAERS reports for foods, supplements and cosmetics. Free within the daily allowance, then $0.003 USDC per call via x402.

    Annotations the server declares

    • title: openFDA: Food & supplement adverse events
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • openfda__food-recallsFood recall enforcement reports.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Food recall enforcement reports. Free within the daily allowance, then $0.003 USDC per call via x402.

    Annotations the server declares

    • title: openFDA: Food recalls
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • pubmed__summaryTitle, authors, journal, date and DOI for comma-separated PubMed ids.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Title, authors, journal, date and DOI for comma-separated PubMed ids. A few free samples a day, then $0.002 USDC per call via x402.

    Annotations the server declares

    • title: PubMed: Article summaries
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • rxnorm__approximateRanked RxNorm candidates for a misspelled or partial drug name.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Ranked RxNorm candidates for a misspelled or partial drug name. Free within the daily allowance, then $0.002 USDC per call via x402.

    Annotations the server declares

    • title: RxNorm Drug Names: Approximate drug match
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • rxnorm__drugsEvery clinical drug, branded drug and pack for an ingredient or brand name, grouped by RxNorm term type.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Every clinical drug, branded drug and pack for an ingredient or brand name, grouped by RxNorm term type. Free within the daily allowance, then $0.002 USDC per call via x402.

    Annotations the server declares

    • title: RxNorm Drug Names: Clinical & branded drugs
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • rxnorm__ndcNational Drug Code (10 or 11 digits) to its RxNorm concept and status.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    National Drug Code (10 or 11 digits) to its RxNorm concept and status. Free within the daily allowance, then $0.001 USDC per call via x402.

    Annotations the server declares

    • title: RxNorm Drug Names: NDC to RxCUI
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • rxnorm__ndcsActive National Drug Codes for an RxNorm clinical or branded drug.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Active National Drug Codes for an RxNorm clinical or branded drug. Free within the daily allowance, then $0.001 USDC per call via x402.

    Annotations the server declares

    • title: RxNorm Drug Names: NDCs for an RxCUI
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • rxnorm__propertiesName, synonym, term type and active/obsolete status of an RxCUI.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Name, synonym, term type and active/obsolete status of an RxCUI. Free within the daily allowance, then $0.001 USDC per call via x402.

    Annotations the server declares

    • title: RxNorm Drug Names: Concept properties
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • rxnorm__rxcuiExact (normalised) match of a drug name to its RxNorm concept id(s).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Exact (normalised) match of a drug name to its RxNorm concept id(s). Free within the daily allowance, then $0.001 USDC per call via x402.

    Annotations the server declares

    • title: RxNorm Drug Names: Drug name to RxCUI
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • rxnorm__spellingCorrectly spelled RxNorm drug names close to the input.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Correctly spelled RxNorm drug names close to the input. Free within the daily allowance, then $0.001 USDC per call via x402.

    Annotations the server declares

    • title: RxNorm Drug Names: Spelling suggestions
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Only reads 5Claude Code: allow

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http health https://fourzerotwo.si/mcp/v/health

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__health__clinical-trials__search",
      "mcp__health__nhs-organisations__search",
      "mcp__health__pubmed__search",
      "mcp__health__pubmed__pmc-search",
      "mcp__health__pubmed__clinical-trials-search"
    ],
    "ask": [
      "mcp__health__clinical-trials__study",
      "mcp__health__clinical-trials__recruiting",
      "mcp__health__clinical-trials__stats",
      "mcp__health__nhs-organisations__organisation",
      "mcp__health__nhs-organisations__roles",
      "mcp__health__pubmed__summary",
      "mcp__health__rxnorm__rxcui",
      "mcp__health__rxnorm__approximate",
      "mcp__health__rxnorm__spelling",
      "mcp__health__rxnorm__drugs",
      "mcp__health__rxnorm__related",
      "mcp__health__rxnorm__properties",
      "mcp__health__rxnorm__ndc",
      "mcp__health__rxnorm__ndcs",
      "mcp__health__openfda__drug-adverse-events",
      "mcp__health__openfda__drug-recalls",
      "mcp__health__openfda__drug-ndc",
      "mcp__health__openfda__drugs-fda",
      "mcp__health__openfda__device-events",
      "mcp__health__openfda__device-recalls",
      "mcp__health__openfda__device-510k",
      "mcp__health__openfda__food-recalls",
      "mcp__health__openfda__food-adverse-events",
      "mcp__health__openfda__drug-labels"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as health. Review it before you use it.