Query MIMIC-IV medical data using natural language through MCP clients
Transform medical data analysis with AI! Ask questions about MIMIC-IV data in plain English and get instant insights. Choose between local demo data (free) or full cloud dataset (BigQuery).
- ๐ Natural Language Queries: Ask questions about MIMIC-IV data in plain English
- ๐ Local SQLite: Fast queries on demo database (free, no setup)
- โ๏ธ BigQuery Support: Access full MIMIC-IV dataset on Google Cloud
- ๐ Enterprise Security: OAuth2 authentication with JWT tokens and rate limiting
- ๐ก๏ธ SQL Injection Protection: Read-only queries with comprehensive validation
๐ก Need more options? Run
m3 --help
to see all available commands and options.
Choose your preferred installation method:
Step 1: Create Virtual Environment
# Create virtual environment (recommended)
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
Step 2: Install M3
# Install M3
pip install m3-mcp
Step 1: Clone and Navigate
# Clone the repository
git clone https://github.com/rafiattrach/m3.git
cd m3
Step 2: Create Virtual Environment
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
Step 3: Install M3
# Install M3
pip install .
Assuming you have UV installed.
Step 1: Clone and Navigate
# Clone the repository
git clone https://github.com/rafiattrach/m3.git
cd m3
Step 2: Create UV
Virtual Environment
# Create virtual environment
uv venv
Step 3: Install M3
uv sync
# Do not forget to use `uv run` to any subsequent commands to ensure you're using the `uv` virtual environment
After installation, choose your data source:
Perfect for learning and development - completely free!
-
Download demo database:
m3 init mimic-iv-demo
-
Setup MCP Client:
m3 config
Alternative: For Claude Desktop specifically:
m3 config claude
-
Restart your MCP client and ask:
- "What tools do you have for MIMIC-IV data?"
- "Show me patient demographics from the ICU"
For researchers needing complete MIMIC-IV data
- Google Cloud account and project with billing enabled
- Access to MIMIC-IV on BigQuery (requires PhysioNet credentialing)
-
Install Google Cloud CLI:
macOS (with Homebrew):
brew install google-cloud-sdk
Windows: Download from https://cloud.google.com/sdk/docs/install
Linux:
curl https://sdk.cloud.google.com | bash
-
Authenticate:
gcloud auth application-default login
This will open your browser - choose the Google account that has access to your BigQuery project with MIMIC-IV data.
-
Setup MCP Client for BigQuery:
m3 config
Alternative: For Claude Desktop specifically:
m3 config claude --backend bigquery --project-id YOUR_PROJECT_ID
-
Test BigQuery Access - Restart your MCP client and ask:
Use the get_race_distribution function to show me the top 5 races in MIMIC-IV admissions.
Need to configure other MCP clients or customize settings? Use these commands:
m3 config
Generates configuration for any MCP client with step-by-step guidance.
# Quick universal config with defaults
m3 config --quick
# Universal config with custom database
m3 config --quick --backend sqlite --db-path /path/to/database.db
# Save config to file for other MCP clients
m3 config --output my_config.json
For production deployments requiring secure access to medical data:
# Enable OAuth2 with Claude Desktop
m3 config claude --enable-oauth2 \
--oauth2-issuer https://your-auth-provider.com \
--oauth2-audience m3-api \
--oauth2-scopes "read:mimic-data"
# Or configure interactively
m3 config # Choose OAuth2 option during setup
Supported OAuth2 Providers:
- Auth0, Google Identity Platform, Microsoft Azure AD, Keycloak
- Any OAuth2/OpenID Connect compliant provider
Key Benefits:
- ๐ JWT Token Validation: Industry-standard security
- ๐ฏ Scope-based Access: Fine-grained permissions
- ๐ก๏ธ Rate Limiting: Abuse protection
- ๐ Audit Logging: Security monitoring
๐ Complete OAuth2 Setup Guide: See
docs/OAUTH2_AUTHENTICATION.md
for detailed configuration, troubleshooting, and production deployment guidelines.
SQLite Backend (Default)
- โ Free: No cloud costs
- โ Fast: Local queries
- โ Easy: No authentication needed
- โ Limited: Demo dataset only (~1k records)
BigQuery Backend
- โ Complete: Full MIMIC-IV dataset (~500k admissions)
- โ Scalable: Google Cloud infrastructure
- โ Current: Latest MIMIC-IV version (3.1)
- โ Costs: BigQuery usage fees apply
When your MCP client processes questions, it uses these tools automatically:
- get_database_schema: List all available tables
- get_table_info: Get column info and sample data for a table
- execute_mimic_query: Execute SQL SELECT queries
- get_icu_stays: ICU stay information and length of stay data
- get_lab_results: Laboratory test results
- get_race_distribution: Patient race distribution
Try asking your MCP client these questions:
Demographics & Statistics:
Prompt:
What is the race distribution in MIMIC-IV admissions?Prompt:
Show me patient demographics for ICU staysPrompt:
How many total admissions are in the database?
Clinical Data:
Prompt:
Find lab results for patient XPrompt:
What lab tests are most commonly ordered?Prompt:
Show me recent ICU admissions
Data Exploration:
Prompt:
What tables are available in the database?Prompt:
What tools do you have for MIMIC-IV data?
- Do you want to pre-approve the usage of all tools in Claude Desktop? Use the prompt below and then select Always Allow
Prompt:
Can you please call all your tools in a logical sequence?
SQLite "Database not found" errors:
# Re-download demo database
m3 init mimic-iv-demo
MCP client server not starting:
- Check your MCP client logs (for Claude Desktop: Help โ View Logs)
- Verify configuration file location and format
- Restart your MCP client completely
"Missing OAuth2 access token" errors:
# Set your access token
export M3_OAUTH2_TOKEN="Bearer your-access-token-here"
"OAuth2 authentication failed" errors:
- Verify your token hasn't expired
- Check that required scopes are included in your token
- Ensure your OAuth2 provider configuration is correct
Rate limit exceeded:
- Wait for the rate limit window to reset
- Contact your administrator to adjust limits if needed
๐ง OAuth2 Troubleshooting: See
OAUTH2_AUTHENTICATION.md
for detailed OAuth2 troubleshooting and configuration guides.
"Access Denied" errors:
- Ensure you have MIMIC-IV access on PhysioNet
- Verify your Google Cloud project has BigQuery API enabled
- Check that you're authenticated:
gcloud auth list
"Dataset not found" errors:
- Confirm your project ID is correct
- Ensure you have access to
physionet-data
project
Authentication issues:
# Re-authenticate
gcloud auth application-default login
# Check current authentication
gcloud auth list
Step 1: Clone and Navigate
# Clone the repository
git clone https://github.com/rafiattrach/m3.git
cd m3
Step 2: Create and Activate Virtual Environment
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
Step 3: Install Development Dependencies
# Install in development mode with dev dependencies
pip install -e ".[dev]"
# Install pre-commit hooks
pre-commit install
Step 1: Clone and Navigate
# Clone the repository
git clone https://github.com/rafiattrach/m3.git
cd m3
Step 2: Create and Activate UV
Virtual Environment
# Create virtual environment
uv venv
Step 3: Install Development Dependencies
# Install in development mode with dev dependencies (by default, UV runs in editable mode)
uv sync
# Install pre-commit hooks
uv run pre-commit install
# Do not forget to use `uv run` to any subsequent commands to ensure you're using the `uv` virtual environment
pytest # All tests (includes OAuth2 and BigQuery mocks)
pytest tests/test_mcp_server.py -v # MCP server tests
pytest tests/test_oauth2_auth.py -v # OAuth2 authentication tests
# Set environment variables
export M3_BACKEND=bigquery
export M3_PROJECT_ID=your-project-id
export GOOGLE_CLOUD_PROJECT=your-project-id
# Optional: Test with OAuth2 authentication
export M3_OAUTH2_ENABLED=true
export M3_OAUTH2_ISSUER_URL=https://your-provider.com
export M3_OAUTH2_AUDIENCE=m3-api
export M3_OAUTH2_TOKEN="Bearer your-test-token"
# Test MCP server
m3-mcp-server
- ๐ Local Full Dataset: Complete MIMIC-IV locally (no cloud costs)
- ๐ง Advanced Tools: More specialized medical data functions
- ๐ Visualization: Built-in plotting and charting tools
- ๐ Enhanced Security: Role-based access control, audit logging
- ๐ Multi-tenant Support: Organization-level data isolation
We welcome contributions! Please:
- Fork the repository
- Create a feature branch
- Add tests for new functionality
- Submit a pull request
Built with โค๏ธ for the medical AI community
Need help? Open an issue on GitHub or check our troubleshooting guide above.