Nonmem MCP Server
MCP server for NONMEM pharmacometric modeling workflows
Ask AI about Nonmem MCP Server
Powered by Claude Β· Grounded in docs
I know everything about Nonmem MCP Server. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
nonmem-mcp-server
MCP (Model Context Protocol) server for NONMEM pharmacometric modeling workflows. Gives Claude (and any MCP-compatible client) structured access to NONMEM models, results, and simulation tools.
Supports Windows, macOS, and Linux.
Features
Parsing & Analysis (no NONMEM needed)
read_ext_fileβ Parse .ext files for parameter estimates, SEs, OFV, condition numberread_lst_fileβ Extract termination status, shrinkage, covariance step resultsparse_control_streamβ Structural parsing of .ctl/.mod files (THETAs, OMEGAs, $EST options)read_nm_datasetβ Dataset summary: subjects, observations, missing valuesread_nm_tablesβ Parse SDTAB/PATAB with statistics for CWRES, ETAs, PREDcompare_modelsβ Multi-run OFV comparison with delta-OFV and AICsummarize_runβ Combined .ctl + .ext + .lst summarylist_runsβ Scan project directories for NONMEM runs
Execution & Diagnostics
submit_runβ Start NONMEM runs (async, fire-and-poll pattern)check_run_statusβ Monitor iteration progress via .ext fileget_run_resultsβ Retrieve parsed results when completecancel_runβ Kill running NONMEM jobsrun_diagnosticsβ Automated checks: boundary, condition number, shrinkage, RSEexecute_psn_vpcβ Run VPC via PsN (predcorr, stratify, lloq options)execute_psn_bootstrapβ Run bootstrap via PsN (BCa, stratify)check_psn_statusβ Monitor PsN job progressparse_psn_resultsβ Parse existing PsN output directories (no installation needed)check_nonmem_setupβ Detect NONMEM, PsN, R installation status
Simulation (no NONMEM needed)
translate_to_mrgsolveβ Convert NONMEM .ctl/.mod to mrgsolve model codesimulate_mrgsolveβ Run PK simulations via mrgsolve (R)generate_vpc_dataβ Generate VPC data using mrgsolve + vpc R packagecheck_r_setupβ Check R and package availability
Prompts
review_modelβ Model review checklistinterpret_resultsβ Pharmacological interpretationtroubleshoot_runβ Diagnose run failuressuggest_next_modelβ Suggest next modeling stepswrite_methods_sectionβ Draft publication Methods text
Requirements
- Python 3.12+
- uv (recommended) or pip
Optional
- NONMEM 7.3β7.6 β Required for
submit_run(commercial license) - PsN β Required for
execute_psn_vpc,execute_psn_bootstrap - R with
mrgsolve,vpc,dplyr,ggplot2β Required for simulation and GOF tools
Installation
Using uv (recommended)
git clone https://github.com/sueinchoi/nonmem-mcp-server.git
cd nonmem-mcp-server
uv sync
Using pip
pip install git+https://github.com/sueinchoi/nonmem-mcp-server.git
Or for development:
git clone https://github.com/sueinchoi/nonmem-mcp-server.git
cd nonmem-mcp-server
pip install -e .
NONMEM Path Configuration
The server auto-detects NONMEM from common install locations. If auto-detection fails, set one of these environment variables:
| Variable | Description | Example |
|---|---|---|
NONMEM_NMFE_PATH | Full path to nmfe executable | /opt/nm760/run/nmfe76 |
NONMEM_INSTALL_PATH | NONMEM installation root | /opt/nm760 |
Auto-detected paths
macOS / Linux:
/opt/nm760/run/nmfe76,/opt/NONMEM/nm75/run/nmfe75, etc./usr/local/NONMEM/nm76/run/nmfe76~/NONMEM/nm76/run/nmfe76
Windows:
C:\nm760\run\nmfe76.bat,C:\NONMEM\nm76\run\nmfe76.batC:\Program Files\NONMEM\nm76\run\nmfe76.batD:\NONMEM\nm76\run\nmfe76.bat
Usage with Claude Code
Basic (no NONMEM)
claude mcp add nonmem -- nonmem-mcp
With uv (from source)
claude mcp add -s user nonmem -- \
uv run --directory /path/to/nonmem-mcp-server python -m nonmem_mcp
With NONMEM path
# macOS / Linux
claude mcp add -s user \
-e NONMEM_NMFE_PATH=/opt/nm760/run/nmfe76 \
nonmem -- \
uv run --directory /path/to/nonmem-mcp-server python -m nonmem_mcp
# Windows (PowerShell)
claude mcp add -s user `
-e NONMEM_NMFE_PATH=C:\nm760\run\nmfe76.bat `
nonmem -- `
uv run --directory C:\path\to\nonmem-mcp-server python -m nonmem_mcp
Verify
claude mcp list
# nonmem: ... - β Connected
Usage with Claude Desktop
Add to claude_desktop_config.json:
macOS / Linux
{
"mcpServers": {
"nonmem": {
"command": "uv",
"args": ["run", "--directory", "/path/to/nonmem-mcp-server", "python", "-m", "nonmem_mcp"],
"env": {
"NONMEM_NMFE_PATH": "/opt/nm760/run/nmfe76"
}
}
}
}
Windows
{
"mcpServers": {
"nonmem": {
"command": "uv",
"args": ["run", "--directory", "C:\\path\\to\\nonmem-mcp-server", "python", "-m", "nonmem_mcp"],
"env": {
"NONMEM_NMFE_PATH": "C:\\nm760\\run\\nmfe76.bat"
}
}
}
}
Examples
# Summarize a NONMEM run
"Summarize the run in /path/to/run001/"
# Compare covariate models
"Compare OFV across all models in the covariate analysis directory"
# Diagnose a failed run
"Why did this run fail? Check /path/to/run.lst"
# Systematic model development
"Develop a 2-compartment model with forward IIV addition"
# Translate to mrgsolve for simulation
"Convert my NONMEM model to mrgsolve and run a VPC"
# GOF plots
"Generate GOF plots for run015 with IPRED and CWRES"
Capability Matrix
| Feature | No NONMEM | + NONMEM | + PsN |
|---|---|---|---|
| Parse .ext/.lst/.ctl | β | β | β |
| Model comparison | β | β | β |
| Diagnostics | β | β | β |
| mrgsolve simulation | β | β | β |
| mrgsolve VPC | β | β | β |
| NONMEM execution | β | β | β |
| PsN VPC | β | β | β |
| PsN Bootstrap | β | β | β |
| Parse PsN results | β | β | β |
Included Examples
The examples/theopp/ directory contains a complete model development workflow using the Theophylline dataset:
- run001.ctl β 1-compartment base model (ADVAN2, FO)
- run002.ctl β 2-compartment model (ADVAN4 TRANS4)
- run003β005.ctl β 2-comp base models with different initial estimates (no IIV)
- run006β010.ctl β Single IIV forward addition (CL, V2, Q, V3, KA)
- run011β014.ctl β Double IIV forward addition (V2+CL, V2+KA, V2+Q, V2+V3)
- run015.ctl β Final 1-comp model with FOCE+INTER, IPRED, CWRES
- gof_plot_v2.R β GOF plotting script (DV vs PRED/IPRED, CWRES, QQ plot)
License
MIT
