Deploying compute services¶
NovoMCP's engine is thin, it orchestrates tool calls but the heavy lifting (docking, molecular dynamics, protein structure, quantum-mechanical calculations, ADMET inference) lives in separate compute services. Each is optional. You deploy the ones you need, point the engine at them via env vars, and the corresponding tools "light up."
The engine works without any of them. Property calculation, similarity search, literature lookups, and compliance filtering run in-process. Everything else requires a downstream service.
Tool → service dependency matrix¶
| Tool | Service | Notes |
|---|---|---|
get_molecule_profile |
chem-props (+ addie-models for full ADMET) |
CPU-only. Works partially without either, returns basic properties. |
calculate_properties |
chem-props |
CPU-only. RDKit descriptors, BOILED-Egg. |
predict_admet |
addie-models |
CPU or GPU. 31 pretrained ADMET models. |
search_similar |
chem-props |
CPU-only. Morgan fingerprint similarity. |
search_chembl |
(none, external ChEMBL API) | Requires internet only. |
search_literature |
(none, external Pinecone) | Requires PINECONE_API_KEY. Falls back to zero results without. |
search_patents |
(none, external Pinecone) | Same as above. |
check_compliance |
faves-compliance |
CPU-only. Regulatory screening. |
dock_molecules |
autodock-gpu |
NVIDIA GPU required. AutoDock-GPU. |
dock_with_strain |
autodock-gpu + novomcp-qm |
Docking + GFN2-xTB strain check. |
run_molecular_dynamics |
gromacs-md |
NVIDIA GPU required. GROMACS with HMR. |
generate_dynamics |
gromacs-md |
Same. |
predict_structure |
openfold3 |
NVIDIA GPU required. Or use Chai, Boltz. |
get_protein_structure |
(external RCSB PDB) | Requires internet. |
run_qm_calculation |
novomcp-qm |
CPU. xTB / CREST. |
run_conformer_search |
novomcp-qm |
CPU. CREST. |
compute_energy |
novomcp-qm |
CPU. Single-point energy. |
optimize_geometry_nnp |
novomcp-nnp |
GPU or CPU. AIMNet2 / MACE / ANI-2x. |
predict_frontier_orbitals |
novomcp-qm |
CPU. |
predict_pka |
novomcp-properties |
CPU. Trained pKa model. |
predict_solubility |
novomcp-properties |
CPU. |
predict_bde |
novomcp-properties |
CPU. |
find_transition_state |
novomcp-neb |
GPU. NEB via tblite. |
parameterize_metal |
novomcp-qm |
CPU. MCPB.py workflow. |
run_novo_ag |
(all of the above for its 11 stages) | Autonomous funnel. |
Wiring pattern¶
Every service is wired through an environment variable. Point the engine at wherever the service is running:
# Local docker
export CHEM_PROPS_URL=http://localhost:8003
# Remote box on your LAN
export CHEM_PROPS_URL=http://10.0.0.42:8003
# Cloud endpoint
export AUTODOCK_GPU_URL=https://autodock.mycompany.com
If the env var is unset, the tool returns a structured service unavailable error, the engine keeps running, the caller learns immediately, no crash.
Full env-var list per service is documented in each service's page.
Deployment tiers¶
Tier 1, Turnkey CPU-only (a laptop is enough):
The bundleddocker-compose.yml runs the engine + optional CPU services (chem-props, addie-models). Uncomment the blocks you want.
Tier 2, Add a GPU (workstation or single cloud GPU instance): Deploy each GPU service as its own container. See per-service pages below.
Tier 3, Multi-host (team deployment):
Engine on one box, GPU services on another. All wired via env vars. See deploying-to-cloud/ for reference AWS / GCP / Azure setups.
Tier 4, Marketplace one-click (coming soon): AWS Marketplace and GCP Cloud Marketplace listings under development.
Per-service pages¶
CPU-only services (laptop-friendly):
- chem-props.md, molecular property calculator (RDKit)
- novomcp-qm.md, quantum-mechanical calculations (xTB, CREST, MCPB.py)
- novomcp-properties.md, pKa, solubility, BDE
- faves-compliance.md, regulatory screening
- addie-models.md, ADMET prediction (CPU works; GPU is faster)
GPU services:
- autodock-gpu.md, molecular docking (AutoDock-GPU)
- gromacs-md.md, molecular dynamics (GROMACS, HMR)
- openfold3.md, protein structure prediction (also Chai-1, Boltz-2 compatible)
- novomcp-nnp.md, neural network potentials (AIMNet2, MACE, ANI-2x)
- novomcp-neb.md, transition-state search (CI-NEB)
Every service follows the same pattern: docker image at ghcr.io/novomcp/<service>:latest, env var <SERVICE_NAME_UPPER>_URL wires the engine to it, structured errors when unreachable.
Building from source¶
Each compute service has its own repository. The engine talks to them over HTTP; there's no vendored build path in this repo. If you want to modify or rebuild a service, clone its source and follow its own README.