# Medical Calculator MCP Service
[δΈζη](README_ZH.md) | **English**
Medical Calculator MCP Service Implementation.
## π Project Overview
This is a Medical Calculator MCP service implementation that has completed **56 medical calculators** covering multiple medical fields including anthropometry, cardiovascular, renal function, hepatic function, laboratory tests, critical care scoring, respiratory system, infection & inflammation, fluid & medication, obstetrics, and oncology.
### π₯ Calculator Categories
#### Anthropometry and Basic Calculations (5)
- BMI Calculator - Body Mass Index calculation
- Body Surface Area Calculator - BSA calculation
- Ideal Body Weight Calculator - IBW calculation
- Adjusted Body Weight Calculator - ABW calculation
- Target Weight Calculator
#### Cardiovascular System (11)
- Mean Arterial Pressure Calculator
- QTc Interval Calculators (5 formulas)
- CHA2DS2-VASc Stroke Risk Score
- HAS-BLED Bleeding Risk Score
- HEART Score Calculator
- Cardiac Risk Index Calculator
- Framingham Risk Score
- Wells DVT Score
- Caprini Thrombosis Risk Assessment
#### Renal Function (4)
- Creatinine Clearance Calculator (Cockcroft-Gault)
- CKD-EPI GFR Calculator
- MDRD GFR Calculator
- Fractional Excretion of Sodium Calculator
#### Hepatic Function (3)
- Child-Pugh Liver Function Classification
- MELD-Na Score Calculator
- FIB-4 Liver Fibrosis Index
#### Laboratory Tests (12)
- Anion Gap Calculator and related calculators
- Calcium Correction Calculator
- Sodium Correction for Hyperglycemia
- Serum Osmolality Calculator
- LDL Cholesterol Calculator
- HOMA-IR Insulin Resistance Index
- Free Water Deficit Calculator
#### Critical Care and Scoring Systems (8)
- APACHE II Acute Physiology Score
- SOFA Sequential Organ Failure Assessment
- SIRS Systemic Inflammatory Response Syndrome
- Glasgow Coma Score
- Glasgow Bleeding Score
- Charlson Comorbidity Index
#### Respiratory System (4)
- CURB-65 Pneumonia Severity Score
- Pneumonia Severity Index (PSI)
- Wells PE Score
- PERC Pulmonary Embolism Rule-out Criteria
#### Infection and Inflammation (2)
- Centor Streptococcal Pharyngitis Score
- FeverPAIN Pharyngitis Score
#### Fluid and Medication (3)
- Maintenance Fluid Calculator
- Steroid Conversion Calculator
- Morphine Milligram Equivalent Calculator
#### Obstetrics (3)
- Estimated Conception Date Calculator
- Estimated Gestational Age Calculator
- Estimated Due Date Calculator
#### Oncology (1)
- Lung Cancer TNM Staging Calculator
### π Quick Start
1. **Install Dependencies**:
```bash
pip install -r requirements.txt
```
2. **Run Tests**:
```bash
# Run all API tests
python test/api_test_bmi_calculator.py
python test/api_test_pregnancy_calculators.py
python test/api_test_lung_cancer_staging.py
python test/api_test_tools.py
# Run basic tests
python test_bmi.py
```
3. **Start Server**:
```bash
python server.py
```
### π Project Structure
```
medcalcmcp/
βββ medcalc/ # Core framework module
β βββ __init__.py # Module exports
β βββ models.py # Data models
β βββ base.py # Base calculator class
β βββ registry.py # Calculator registration system
β βββ service.py # Calculator service
β βββ utils.py # Utilities (unit conversion, etc.)
β βββ exceptions.py # Exception definitions
βββ calculators/ # Calculator implementations (56 calculators)
β βββ __init__.py # Calculator package (manages all calculators)
β βββ bmi_calculator.py # BMI Calculator
β βββ bsa_calculator.py # Body Surface Area Calculator
β βββ creatinine_clearance_calculator.py # Creatinine Clearance Calculator
β βββ cha2ds2_vasc_calculator.py # CHA2DS2-VASc Score
β βββ lung_cancer_staging_calculator.py # Lung Cancer TNM Staging Calculator
β βββ ... # Other 53 calculators
βββ test/ # Test files directory
β βββ api_test_bmi_calculator.py # BMI Calculator API tests
β βββ api_test_pregnancy_calculators.py # Pregnancy-related calculator API tests
β βββ api_test_lung_cancer_staging.py # Lung cancer staging calculator API tests
β βββ api_test_tools.py # MCP tools dynamic tests
βββ server.py # FastMCP server main file
βββ api_server.py # MCP API server
βββ requirements.txt # Project dependencies
βββ README.md # Project documentation
```
### π οΈ Technical Architecture
The project uses a modular design with the following main components:
- **MCP Server** (`server.py`): Provides MCP protocol interface
- **Core Framework** (`medcalc/`): Data models, base classes, utilities
- **Calculator Engine** (`calculators/`): 56 specific medical calculators
- **Test Suite** (`test/`): API tests and functionality verification
### β¨ Key Features
- β
**Complete Medical Calculator Collection**: 56 professional medical calculators
- β
**Multi-domain Coverage**: Covers various clinical medical specialties
- β
**Smart Unit Conversion**: Supports automatic conversion of various medical units
- β
**Detailed Calculation Explanations**: Each result includes detailed medical explanations
- β
**Complete Parameter Validation**: Ensures accuracy and safety of input data
- β
**MCP Protocol Support**: Standardized interface protocol
- β
**Asynchronous Processing**: High-performance asynchronous calculation processing
- β
**Complete Test Coverage**: Comprehensive API and functionality testing
### π Start Server
```bash
# Start FastMCP server (recommended)
python server.py
# Or start MCP API server
python api_server.py
# Server will run at http://127.0.0.1:8010/mcp/
```
### π§ Development Guide
#### Creating New Calculators
1. Create a new calculator file in the `calculators/` directory
2. Inherit from the `BaseCalculator` class
3. Implement required methods: `get_info()`, `validate_parameters()`, `calculate()`
4. Register using the `@register_calculator` decorator
5. Add import to `calculators/__init__.py`
#### Running Tests
```bash
# Test specific calculator
python test/api_test_bmi_calculator.py
# Test all calculators (dynamic testing)
python test/api_test_tools.py
# Test pregnancy-related calculators
python test/api_test_pregnancy_calculators.py
# Test lung cancer staging calculator
python test/api_test_lung_cancer_staging.py
```
## π Project Status
- **Current Version**: 0.1.0
- **Number of Calculators**: 56
- **Test Coverage**: 100%
- **Supported Medical Fields**: 11 specialty areas
## π€ Contributing
Pull requests and issues are welcome to help improve the project.
## π Acknowledgments
This project is based on the [MedCalc-Bench](https://github.com/ncbi-nlp/MedCalc-Bench) project. Thanks to the NCBI-NLP team for providing excellent foundational medical calculator implementations. We have converted it into an MCP (Model Context Protocol) service to better integrate with modern AI applications.
**Original Project References:**
- GitHub: https://github.com/ncbi-nlp/MedCalc-Bench
- Paper: MedCalc-Bench: A Large-scale Medical Calculator Benchmark