
StatPearls
STDIOMCP server for fetching reliable disease information from StatPearls medical database
MCP server for fetching reliable disease information from StatPearls medical database
A Model Context Protocol (MCP) server that fetches disease information from StatPearls, a trusted source of peer-reviewed medical content.
Give your AI system a relaible source of medical knowledge for its next conversation.
If you are a casual user, you can use Claude Desktop to get started using MCP servers. It is a free and open-source desktop application that allows you to run MCP servers locally and connect to them.
If you are a power user/developer, I recommend using VSCode with the RooCode extension which enables you to connect in MCP servers to your development environment for infinite possibilities!
Once you have an MCP-capable AI client, you can run this server locally.
The easiest way to get up and running is to download the appropriate executable/binary for your OS from the releases page. This will give you a self-contained executable that you can run without any additional setup.
Place this executable in a directory of your choice. Then simply add the following to your mcp_settings.json
file:
{ "mcpServers": { ... "statpearls": { "command": "{path_to_executable_here}\\statpearls-mcp.exe" }, ... } } #### For Mac/Linux: ```json { "mcpServers": { ... "statpearls": { "command": "{path_to_executable_here}/statpearls-mcp" }, ... } }
To install statpearls-mcp for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @jpoles1/statpearls-mcp --client claude
You can also run the server from source. This requires Bun to be installed on your system.
bun install
)bun run build
)mcp_settings.json
file:{ "mcpServers": { ... "statpearls": { "command": "node", "args": [ "{path_to_proj_here}/dist/index.js" ] }, ... } }
The server provides a single tool:
{ "query": "diabetes", "format_options": { "includeToc": true, "maxLength": 50000 } }
query
: Disease or medical condition to search for (required)format_options
: Optional formatting preferences
includeToc
: Whether to include a table of contents (default: true)maxLength
: Maximum length of the returned content in characters (default: 50000)The tool returns formatted Markdown content with:
statpearls-mcp/
├── src/ # Source code
│ ├── index.ts # Main entry point and server setup
│ ├── test-html-parser.ts # Test utility for HTML parser
│ ├── test-statpearls-parser.ts # Test utility for StatPearls parser
│ ├── testrun.ts # Test runner utility
│ ├── tools/ # Tool definitions and handlers
│ │ └── statpearls.ts # StatPearls tool definition and handler
│ ├── services/ # Core functionality services
│ │ ├── search.ts # Search functionality
│ │ ├── content.ts # Content retrieval and processing
│ │ └── markdown.ts # HTML to Markdown conversion
│ ├── types/ # Type definitions
│ │ ├── index.ts # Common type definitions
│ │ └── statpearls.ts # StatPearls-specific type definitions
│ └── utils/ # Utility functions
│ ├── html.ts # HTML parsing utilities
│ ├── error.ts # Error handling utilities
│ └── statpearls-parser.ts # StatPearls content parsing utilities
├── scripts/ # Build and utility scripts
│ ├── build.ts # Build script for creating Node.js compatible bundle
│ ├── compile.ts # Script for compiling executables
│ ├── release.ts # Script for handling releases
│ └── version.ts # Script for managing versioning
├── dist/ # Build output directory (not in repository)
├── package.json # Project configuration and dependencies
├── tsconfig.json # TypeScript configuration
├── bun.lock # Bun dependency lock file
├── README.md # Main project documentation
└── RELEASE-PROCESS.md # Documentation for release process
The build process creates a single JavaScript file that can run with vanilla Node.js:
# Production build bun run build # or bun run build:prod # Development build bun run build:dev
This creates a bundled file at dist/index.js
that includes all dependencies.
You can compile platform-specific executables using Bun's compilation feature:
# Compile for all platforms bun run compile:all # Compile for specific platforms bun run compile:linux bun run compile:windows bun run compile:mac
This creates executable files in the dist
directory:
statpearls-mcp
(default executable)statpearls-mcp-linux-x64
(Linux)statpearls-mcp-windows-x64.exe
(Windows)statpearls-mcp-darwin-x64
(macOS)The release process handles versioning, building, compiling, and Git operations:
# Release a patch version (bug fixes) bun run release:patch # Release a minor version (new features, backward compatible) bun run release:minor # Release a major version (breaking changes) bun run release:major
This process:
The project follows semantic versioning. You can check the current version with:
bun run version
This project is licensed under the MIT License - see the LICENSE file for details.