by JamesANZ
An MCP server that provides comprehensive medical information by querying multiple authoritative medical APIs including FDA, WHO, PubMed, Google Scholar, and RxNorm
# Add to your Claude Code skills
git clone https://github.com/JamesANZ/medical-mcpGuides for using mcp servers skills like medical-mcp.
Last scanned: 6/17/2026
{
"issues": [
{
"type": "npm-audit",
"message": "@babel/core: @babel/core: Arbitrary File Read via sourceMappingURL Comment",
"severity": "low"
},
{
"type": "npm-audit",
"message": "@istanbuljs/load-nyc-config: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@jest/core: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@jest/expect: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@jest/globals: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@jest/reporters: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@jest/transform: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "@modelcontextprotocol/sdk: Anthropic's MCP TypeScript SDK has a ReDoS vulnerability",
"severity": "high"
},
{
"type": "npm-audit",
"message": "ajv: ajv has ReDoS when using `$data` option",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "babel-jest: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "babel-plugin-istanbul: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "basic-ftp: Basic FTP has Path Traversal Vulnerability in its downloadToDir()ย method",
"severity": "critical"
},
{
"type": "npm-audit",
"message": "body-parser: body-parser is vulnerable to denial of service when url encoding is used",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "brace-expansion: brace-expansion: Zero-step sequence causes process hang and memory exhaustion",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "create-jest: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "form-data: form-data uses unsafe random function in form-data for choosing boundary",
"severity": "critical"
},
{
"type": "npm-audit",
"message": "handlebars: Handlebars.js has JavaScript Injection via AST Type Confusion by tampering @partial-block",
"severity": "critical"
},
{
"type": "npm-audit",
"message": "ip-address: ip-address has XSS in Address6 HTML-emitting methods",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "jest: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "jest-circus: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "jest-cli: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "jest-config: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "jest-resolve-dependencies: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "jest-runner: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "jest-runtime: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "jest-snapshot: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "js-yaml: js-yaml has prototype pollution in merge (<<)",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "minimatch: minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern",
"severity": "high"
},
{
"type": "npm-audit",
"message": "path-to-regexp: path-to-regexp vulnerable to Denial of Service via sequential optional groups",
"severity": "high"
},
{
"type": "npm-audit",
"message": "picomatch: Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching",
"severity": "high"
},
{
"type": "npm-audit",
"message": "qs: qs's arrayLimit bypass in comma parsing allows denial of service",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "socks: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "tar-fs: tar-fs has a symlink validation bypass if destination directory is predictable with a specific tarball",
"severity": "high"
},
{
"type": "npm-audit",
"message": "ts-jest: Vulnerability found",
"severity": "medium"
},
{
"type": "npm-audit",
"message": "ws: ws: Uninitialized memory disclosure",
"severity": "high"
}
],
"status": "FAILED",
"scannedAt": "2026-06-17T09:03:59.699Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}medical-mcp is an open-source mcp servers skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by JamesANZ. An MCP server that provides comprehensive medical information by querying multiple authoritative medical APIs including FDA, WHO, PubMed, Google Scholar, and RxNorm. It has 100 GitHub stars.
medical-mcp failed SkillsLLM's automated security scan, which flagged one or more high-severity issues. Review the Security Report section carefully before using it.
Clone the repository with "git clone https://github.com/JamesANZ/medical-mcp" and add it to your Claude Code skills directory (see the Installation section above).
medical-mcp is primarily written in TypeScript. It is open-source under JamesANZ on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other MCP Servers skills you can browse and compare side by side. Open the MCP Servers category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh medical-mcp against similar tools.
No comments yet. Be the first to share your thoughts!
Requires a passing catalog security scan. Resolve the flagged issues and resubmit to enable featuring.
Bring trusted medical data directly into your AI workflow. A local server for private, free access to FDA, WHO, PubMed, RxNorm, and Google Scholar. No API keys. No data leaks.
An MCP (Model Context Protocol) server that brings authoritative medical information into AI coding environments like Cursor and Claude Desktop.
Ready to bring medical intelligence into your AI workflow? Install in seconds:
Install in Cursor (Recommended):
Or install manually:
npm install -g medical-mcp
# Or from source:
git clone https://github.com/JamesANZ/medical-mcp.git
cd medical-mcp && npm install && npm run build
search-drugs โ Search FDA database by brand or generic nameget-drug-details โ Get comprehensive drug info by NDC codesearch-drug-nomenclature โ Standardized drug names via RxNormget-health-statistics โ WHO Global Health Observatory data (life expectancy, mortality, disease prevalence)search-medical-literature โ Search 30M+ PubMed articlesget-article-details โ Detailed article info by PMIDsearch-google-scholar โ Academic research with citationssearch-medical-databases โ Multi-database search (PubMed, Scholar, Cochrane, ClinicalTrials.gov)search-medical-journals โ Top journals (NEJM, JAMA, Lancet, BMJ, Nature Medicine)search-clinical-guidelines โ Practice recommendations from medical organizationssearch-pediatric-guidelines โ AAP guidelines and Bright Futures preventive caresearch-pediatric-literature โ Research from major pediatric journals (Pediatrics, JAMA Pediatrics, etc.)get-child-health-statistics โ Pediatric health indicators from WHO (mortality, immunization, nutrition)search-pediatric-drugs โ Drugs with pediatric labeling and dosing informationsearch-aap-guidelines โ Comprehensive AAP guideline search (Bright Futures + Policy Statements)get-cache-stats โ View cache statistics (hit rate, memory usage, entry count)Click the install link above or use:
cursor://anysphere.cursor-deeplink/mcp/install?name=medical-mcp&config=eyJtZWRpY2FsLW1jcCI6eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIm1lZGljYWwtbWNwIl19fQ==
Requirements: Node.js 18+ and npm
# Clone and build
git clone https://github.com/JamesANZ/medical-mcp.git
cd medical-mcp
npm install
npm run build
# Run server
npm start
Add to claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"medical-mcp": {
"command": "node",
"args": ["/absolute/path/to/medical-mcp/build/index.js"]
}
}
}
Restart Claude Desktop after configuration.
Ask about a medication's uses, dosage, and safety information:
{
"tool": "search-drugs",
"arguments": { "query": "Tylenol", "limit": 5 }
}
Retrieve global health indicators like life expectancy or mortality rates:
{
"tool": "get-health-statistics",
"arguments": {
"indicator": "Life expectancy at birth (years)",
"country": "USA"
}
}
Find peer-reviewed research articles on any medical topic:
{
"tool": "search-medical-literature",
"arguments": { "query": "COVID-19 treatment", "max_results": 10 }
}
| Source | Coverage | Update Frequency |
|---|---|---|
| FDA | All FDA-approved drugs (US) | Real-time |
| WHO | Global health stats (194 countries) | Annual |
| PubMed | 30M+ medical citations | Daily |
| RxNorm | Standardized drug nomenclature (US) | Weekly |
| Google Scholar | Academic papers across disciplines | Real-time |
| AAP | Bright Futures guidelines & policy statements | Periodic |
| Pediatric Journals | Major pediatric journals (Pediatrics, JAMA Pediatrics, etc.) | Daily |
The server includes an in-memory caching layer to improve response times and reduce API calls:
get-cache-stats tool to view hit rates and memory usageConfiguration (via environment variables):
CACHE_ENABLED=true - Enable/disable caching (default: true)CACHE_MAX_SIZE=1000 - Maximum cache entries (default: 1000)CACHE_TTL_FDA=86400 - FDA TTL in seconds (default: 86400)CACHE_TTL_PUBMED=3600 - PubMed TTL in seconds (default: 3600)CACHE_TTL_WHO=604800 - WHO TTL in seconds (default: 604800)CACHE_TTL_RXNORM=2592000 - RxNorm TTL in seconds (default: 2592000)CACHE_CLEANUP_INTERVAL=300000 - Cleanup interval in milliseconds (default: 300000)Performance: Cached responses typically return in <10ms vs 800-1500ms for API calls. Expected cache hit rate: 60%+ for common queries.
Built with: Node.js, TypeScript, MCP SDK
Dependencies: @modelcontextprotocol/sdk, superagent, puppeteer, zod
Platforms: macOS, Windows, Linux
Note: Google Scholar access uses web scraping with rate limiting. Other sources use official APIs.
โ ๏ธ Important: This tool provides information from authoritative sources but should not replace professional medical advice, diagnosis, or treatment. Always consult qualified healthcare professionals for medical decisions.
โญ If this project helps you, please star it on GitHub! โญ
Contributions welcome! Please open an issue or submit a pull request.
MIT License โ see LICENSE.md for details.
If you find this project useful, consider supporting it:
โก Lightning Network
lnbc1pjhhsqepp5mjgwnvg0z53shm22hfe9us289lnaqkwv8rn2s0rtekg5vvj56xnqdqqcqzzsxqyz5vqsp5gu6vh9hyp94c7t3tkpqrp2r059t4vrw7ps78a4n0a2u52678c7yq9qyyssq7zcferywka50wcy75skjfrdrk930cuyx24rg55cwfuzxs49rc9c53mpz6zug5y2544pt8y9jflnq0ltlha26ed846jh0y7n4gm8jd3qqaautqa
โฟ Bitcoin: bc1ptzvr93pn959xq4et6sqzpfnkk2args22ewv5u2th4ps7hshfaqrshe0xtp
ฮ Ethereum/EVM: 0x42ea529282DDE0AA87B42d9E83316eb23FE62c3f