MCP server · Audited from source

medical-mcp

by jamesanz/medical-mcpMIT licenceAudited 7 Oct 2026 · source 7c8c15b1c1f8

npm medical-mcp 2.1.0stdiostreamable-http★ 114
✓SAFEGrade B · 89/100 · 7 Oct 2026 · 7c8c15b
114GitHub stars

Is it safe? Yes — SAFE, grade B (89/100). It exposes 17 tools: 17 read, 0 write and 0 destructive. The audit recorded 7 findings (0 critical, 0 high, 0 medium, 7 low). Maintainer's description: An MCP server that provides comprehensive medical information by querying multiple authoritative medical APIs including FDA, WHO, PubMed, Google Scholar, and RxNorm

Ask an AI about this pageGChatGPTCClaudePPerplexityGeGeminiXGrok
More
Cite

Cite this page

ModelsAtlas. “medical-mcp (JamesANZ/medical-mcp)”. Retrieved 7 Oct 2026. https://modelsatlas.com/mcp/jamesanz/medical-mcp

Trust audit

Audit 0.4.1 · full source read 7 Oct 2026

Trust score89/100✓SAFE B
0 critical0 high0 medium7 low0 info

7 findings, listed below with the file and line each was found on. Grade A needs a sandboxed behavioural run too; this audit read the source only.

What the source does

  • FilesystemDeclared4 observations
  • NetworkNone observedNothing seen in the source
  • ShellDeclared1 observation
  • DependenciesNot pinnedSome ranges float
  • SecretsNone foundNo keys in source

“Declared” means the server says it does this and the source agrees. Browser, file and shell access are expected of some kinds of server.

Five audit layers

LayerWhat we checkResult
L0 ProvenanceRepo owner, licence, archive status, activityPASS
L1 Static sourceSecrets, path traversal, supply chainPASS 7 findings
L2 InstructionsPrompt injection and authority framing in docs and tool descriptionsPASS
L3 InventoryDeclared tools match the sourcePASS
L4 SandboxRun in isolation and watch behaviourSKIPPED

Provenance & runtime

Who published it, and what the audit could and could not run

Provenance

  • Repository owner jamesanzUser accountAccount type recorded when we read the repository.
  • PackagePublished on npmmedical-mcp at version 2.1.0
  • LicenceMITFrom the repository, as read at the audited commit.
  • Last push5 days agoActivity of the repository when we read it.
  • Source commit read7c8c15b1c1f8The audit covers exactly this commit, read on 7 Oct 2026.

Runtime

  • Sandbox runNot run yetThis audit read the source only; it did not execute the server.
  • Tool inventory17 declaredRead from the source and classed read, write or destructive.

Every value here is read from the record's own repository and audit.Suggest a correction

Findings (7)

Sorted by severity

LOWFilesystem / pathfs.traversal · src/rank/__tests__/policy.test.ts:14
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
import type { EvidenceTag } from "../../utils/evidence-grading.js";
Why
No further detail recorded for this rule.
Fix
—
LOWFilesystem / pathfs.traversal · src/sources/adapters/clinicaltrials.ts:2
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
import { CLINICALTRIALS_API_BASE, USER_AGENT } from "../../constants.js";
Why
No further detail recorded for this rule.
Fix
—
LOWFilesystem / pathfs.traversal · src/sources/adapters/clinicaltrials.ts:3
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
import { logger } from "../../logger.js";
Why
No further detail recorded for this rule.
Fix
—
LOWFilesystem / pathfs.traversal · src/sources/adapters/clinicaltrials.ts:4
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
import { resilientCall } from "../../resilience/index.js";
Why
No further detail recorded for this rule.
Fix
—
LOWFilesystem / pathfs.traversal · src/sources/adapters/clinicaltrials.ts:8
F-05 Filesystem / pathCWE-22 · CWE-59Layer L1
} from "../../validation/schemas.js";
Why
No further detail recorded for this rule.
Fix
—
LOWObfuscation / stealthobf.base64_blob · README.md:338
F-07 Obfuscation / stealthCWE-506 · CWE-94Layer L1
lnbc1pjhhsqepp5mjgwnvg0z53shm22hfe9us289lnaqkwv8rn2s0rtekg5vvj56xnqdqqcqzzsxqyz5vqsp5gu6vh9hyp94c7t3tkpqrp2r059t4vrw7ps78a4n0a2u52678c7yq9qyyssq7zcferywka50wcy75skjfrdrk930cuyx24rg55cwfuzxs49rc9c53mpz
Why
No further detail recorded for this rule.
Fix
—
LOWSupply chainsupply.unpinned · package.json
F-08 Supply chainCWE-829 · CWE-1357Layer L1
@modelcontextprotocol/sdk, cors, express, superagent, zod, @types/cors, @types/express, @types/jest
Why
13 dependency range(s) float
Fix
pin exact versions or ship a lockfile

Tools it exposes

17 declared in source · 0 destructive

17 read0 write0 destructive
ToolRiskWhat it does
get-article-detailsreadGet detailed information about a specific medical article by PMID. Full text is attached only when the PMC record
get-cache-statsreadGet cache statistics including hit rate, total entries, and memory usage
get-health-statisticsreadGet health statistics and indicators from WHO Global Health Observatory
health-checkreadCheck the health and availability of all upstream data sources (FDA, TGA, Health Canada, EMA, PubMed, WHO, RxNorm, ClinicalTrials, Semantic Scholar, TinyFish). Reports build string, latency, circuit breaker states, and cache health.
list-sourcesreadList medical data sources and which MCP tools reach them. Includes registry adapters and dedicated-tool sources (WHO, PubMed, RxNorm, Scholar). Not limited to the search-drugs regulator fanout.
rank-search-hitsreadReorder already-fetched literature hits for a clinical question. Retrieval ranking only — never diagnoses, doses, or advises.
search-clinical-guidelinesreadSearch for clinical guidelines and practice recommendations from medical organizations
search-clinical-trialsreadSearch ClinicalTrials.gov for trials by condition, intervention, or drug
search-drug-nomenclaturereadSearch for drug information using RxNorm (standardized drug nomenclature)
search-drug-safetyreadSearch pharmacovigilance data: FDA FAERS adverse events, recalls, and drug shortages
search-drugsreadSearch national drug regulators (FDA, DailyMed, TGA, Health Canada, EMA). Defaults to US, AU, CA, and EU. Pass countries: [
search-google-scholarreadSearch for academic research articles using Google Scholar
search-medical-journalsreadSearch specific medical journals (NEJM, JAMA, Lancet, BMJ, Nature Medicine) for high-quality research
search-medical-literaturereadSearch for medical research articles in PubMed. Optional question/rerank reorders hits for the question (retrieval only — not diagnosis or advice).
search-pediatric-drugsreadSearch for drugs with pediatric labeling and dosing information from FDA database
search-pediatric-guidelinesreadSearch AAP pediatric guidelines. Policy statements and clinical reports come from PubMed (Pediatrics / AAP corporate author). Bright Futures and publications.aap.org web hits are kept only if the URL is on an AAP host with a real article path.
search-pediatric-literaturereadSearch for research articles in major pediatric journals (Pediatrics, JAMA Pediatrics, etc.). Optional question/rerank reorders hits for the question (retrieval only — not diagnosis or advice).

Install

Package version 2.1.0 · audited commit 7c8c15b

One-click links open your editor with the config below filled in, exactly as the snippets show it, pinned to version 2.1.0. The audit covers commit 7c8c15b only.

claude mcp add medical-mcp --env MONID_API_KEY=${MONID_API_KEY} --env NCBI_API_KEY=${NCBI_API_KEY} --env TINYFISH_API_KEY=${TINYFISH_API_KEY} --env TYPESAFE_API_KEY=${TYPESAFE_API_KEY} -- npx -y [email protected]

The command pins the package version recorded in the source (2.1.0); the audit covers commit 7c8c15b1c1f8. Transport: stdio · streamable-http. Reads these environment variables: MONID_API_KEY, NCBI_API_KEY, TINYFISH_API_KEY, TYPESAFE_API_KEY. Give it the narrowest token it needs.

Audit history

  1. ✓SAFE B 89 / 100

    Source changed, verdict held · 7c8c15b1c1f8

  2. ✓SAFE B 89 / 100

    First audit · c2a8b949bfe4

README badge

For maintainers · updates on every re-audit

ModelsAtlas: SAFE BMODELSATLASSAFE · B
[![ModelsAtlas: SAFE B](https://modelsatlas.com/mcp/jamesanz/medical-mcp/badge.svg)](https://modelsatlas.com/mcp/jamesanz/medical-mcp/)

The badge always shows the latest audit; a maintainer cannot pin an old verdict.

Other ratings

Cited, never blended into our score

No third-party security ratings are recorded for this server yet. When they exist they appear here with their source and date, beside, not inside, our grade.

Questions about medical-mcp

What is the medical-mcp MCP server?
An MCP server that provides comprehensive medical information by querying multiple authoritative medical APIs including FDA, WHO, PubMed, Google Scholar, and RxNorm
What tools does medical-mcp expose?
17 in total: 17 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is medical-mcp safe to connect to an agent?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.
What credentials does medical-mcp need?
It reads MONID_API_KEY, NCBI_API_KEY, TINYFISH_API_KEY and TYPESAFE_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does medical-mcp run?
It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as medical-mcp at 2.1.0.
How current is this page?
The grade is for one exact copy of the source (7c8c15b1c1f8), read on 2026-10-07. The repository is watched and re-audited when it changes.

Sources

  • JamesANZ/medical-mcp on GitHub — the source we read, its licence, stars and activityObserved · 7 Oct 2026
  • ModelsAtlas trust audit — SAFE verdict for commit 7c8c15b1c1f8Observed · 7 Oct 2026

Spotted something wrong? Report a correction · Methodology

Keep going in your AI

Opens with this page as the source. We add nothing else to the prompt.