schrodinger-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SCHRODINGER | No | Install root of Schrödinger Suites (autodetected if not set) | |
| SCHRODINGER_MCP_HOME | No | Directory for job files, scratch, and registry | ~/.local/share/schrodinger-mcp |
| SCHRODINGER_MCP_MAX_JOBS | No | Advisory limit on concurrent heavy jobs | 2 |
| SCHRODINGER_MCP_SYNC_TIMEOUT | No | Seconds before a synchronous operation suggests going async | 120 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| detect_installationA | Report the Schrödinger installation: root path, release/build, licensed products, configured job hosts, and GPU availability. Call this first to confirm the suite is found and to see which workflows are licensed. GPU-accelerated workflows (Desmond MD, FEP+) require an NVIDIA GPU and are unavailable on Apple Silicon. |
| fetch_pdbA | Download an experimental structure from the RCSB PDB by its 4-character ID (e.g. '1HSG'). Returns the path to the downloaded .pdb file. Use protein_prepwizard afterward to prepare it for docking. |
| convert_structureA | Convert a structure file between formats (mae, maegz, sdf, pdb, mol2, smi, cif). Schrödinger infers the input format from its extension. Returns the output path. |
| structure_infoA | Inspect a structure file: number of structures, per-structure atom/bond counts, title, formal charge, molecular weight, chains/residues, and a sample of named properties (e.g. docking scores). Works on any format Schrödinger reads. |
| smiles_to_3dA | Generate single-conformer 3D structures from a list of SMILES strings and write them to one file. Good for quick 3D embedding; for full ligand preparation (ionization, tautomers, stereoisomer enumeration) use the ligprep tool instead. Returns per-molecule results and the output path. |
| split_structuresB | Split a multi-structure file into one file per structure. Returns the list of written files with their titles. |
| merge_structuresC | Concatenate several structure files into one multi-structure file. |
| ligprepA | Prepare ligands for docking: add hydrogens, generate ionization/tautomeric states (via Epik), enumerate stereoisomers, and produce optimized 3D structures. Accepts .smi/.csv/.sdf/.mae. Long-running — returns a job_id. Prepared ligands are written to <output_name> in the job directory (fetch the path with get_job_results). |
| protein_prepwizardA | Prepare a protein structure for docking with the Protein Preparation Wizard: assign bond orders, add/optimize hydrogens, set het-group protonation states (Epik), optionally fill missing side chains/loops (Prime), and restrained-minimize. Accepts .pdb/.mae/.cif. Long-running — returns a job_id; prepared structure is <output_name>. |
| epikB | Enumerate protonation/tautomeric states and estimate pKa for ligands with Epik. Accepts a structure file (.mae/.maegz/.sdf — non-Maestro inputs are auto-converted). Long-running — returns a job_id; states with pKa/penalty properties in <output_name>. |
| confgenA | Generate a conformer ensemble for ligands with ConfGen. Input must contain explicit hydrogens (run ligprep first). Accepts .mae/.maegz/.mol2/.sdf. Long-running — returns a job_id; conformers are written to -out.maegz in the job directory. |
| generate_glide_gridA | Build a Glide docking grid from a prepared receptor. Specify the binding-site
center either explicitly via |
| glide_dockA | Dock prepared ligands into a Glide grid and score them. |
| summarize_dockingA | Parse a Glide pose-viewer file (*_pv.maegz) into a ranked table of GlideScores and key terms per ligand. Returns the best poses sorted by score (lower is better). |
| qikpropA | Predict ~50 ADMET properties (aqueous solubility, Caco-2/MDCK permeability, logP, logBB, CNS activity, HERG, etc.) for ligands with QikProp. Accepts most structure formats. Long-running — returns a job_id; results land as a .CSV plus structures annotated with QP* properties. Use structure_info on the output .mae to read them. |
| compute_descriptorsA | Compute 2D physicochemical molecular descriptors (MW, logP, TPSA, H-bond donors/acceptors, rotatable bonds, ring counts, etc.) with Canvas. Synchronous — returns the path to a CSV of descriptors, one row per molecule. |
| sitemapA | Detect and score potential ligand-binding sites on a protein with SiteMap. Accepts a prepared protein structure (.mae). Long-running — returns a job_id; site maps and SiteScore/Dscore are written to _out.maegz and per-site files. |
| shape_screenA | Shape-based similarity screen: rank the 3D structures in |
| prime_mmgbsaA | Rescore a receptor-ligand complex (or Glide pose-viewer file) with Prime MM-GBSA to estimate binding free energy (dG bind). Accepts a *_pv.maegz or a complex .mae. Long-running — returns a job_id; the output structures carry r_psp_MMGBSA_dG_Bind. |
| jaguar_qmA | Run a Jaguar quantum-mechanics calculation on a small molecule. |
| render_2d_structureB | Render molecules as a 2D structure image (PNG) shown inline. Provide either a list
of |
| analyze_interactionsA | Analyze protein-ligand interactions (hydrogen bonds, salt bridges, pi-pi stacking,
pi-cation) in a complex or Glide pose-viewer (*_pv.maegz) file. For a pose-viewer the
first entry is the receptor and |
| ligand_interaction_diagramA | Render a 2D ligand-interaction diagram (PNG, shown inline) for a protein-ligand complex or Glide pose-viewer file: the ligand drawn in 2D with the atoms that make interactions highlighted by type (blue=H-bond, red=salt bridge, green=pi-pi, orange=pi-cation) and a legend mapping them to protein residues. Also writes the PNG. |
| generate_2d_reportA | Build a 2D structure report (PDF or HTML) of every structure in a file, each drawn
in 2D and labeled with properties (e.g. docking scores from a pose-viewer). Great for
sharing docking/screening results. |
| get_job_statusA | Check a submitted job. Returns state (submitted/running/completed/failed/ canceled), elapsed time, exit code, and a tail of the job log. Poll this after submitting any long-running workflow. |
| get_job_resultsA | Fetch a finished job's outputs: the list of produced files (poses, prepped structures, logs) and its final state. For docking jobs, follow up with summarize_docking on the produced pose-viewer (*_pv.maegz) file for a ranked table. |
| cancel_jobB | Stop a running job. Terminates the job's process group; the job directory and any partial outputs are left in place. |
| list_jobsA | List known async jobs, most recent first. Optionally filter by state (submitted/running/completed/failed/canceled). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| installation_resource | Schrödinger installation summary: root, version, licensed products, hosts, GPU. |
| jobs_resource | Listing of all known async jobs and their states. |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Nimieeee/schrodinger-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server