schrodinger-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@schrodinger-mcpDock aspirin against HIV protease 1HSG"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
schrodinger-mcp
An MCP server that exposes Schrödinger Suites 2026 computational-chemistry / drug-discovery workflows to Claude (Claude Code and Claude Desktop). Ask Claude to fetch a PDB, prep a protein and ligands, build a Glide grid, dock, score, run ADMET, MM-GBSA, or QM — it drives Schrödinger for you and hands back ranked tables plus files you can open in Maestro.
How it works
The server runs in its own virtualenv (any Python ≥3.10) and shells out to
$SCHRODINGER/run for all chemistry. Its MCP dependencies therefore stay independent of
Schrödinger's bundled Python 3.11. Fast operations return inline; long jobs run under a
detached supervisor that survives server restarts, and you poll them with
get_job_status / get_job_results.
Claude ──tool call──▶ schrodinger-mcp (venv, FastMCP, stdio)
│ fast ops ─▶ $SCHRODINGER/run python3 <worker> ─▶ JSON
└ long jobs ─▶ detached supervisor ─▶ $SCHRODINGER/<launcher> -WAIT
└─ status.json (authoritative) ◀─ pollOutputs are written under ~/.local/share/schrodinger-mcp/ (override with
SCHRODINGER_MCP_HOME) and every tool also returns a structured summary.
Related MCP server: PyMOL-MCP-Vis
Requirements
macOS/Linux with Schrödinger Suites 2026 installed and licensed (auto-detected at
/opt/schrodinger/suites*, or setSCHRODINGER).uv(recommended) orpip.
This project contains no Schrödinger software or data. You must supply your own licensed installation of Schrödinger Suites; this server only invokes it through its documented
$SCHRODINGER/run/ CLI interfaces.
GPU note: Desmond molecular dynamics and FEP+ require an NVIDIA/CUDA GPU and are intentionally not exposed — they are not practical on Apple Silicon / non-NVIDIA hosts.
Install
cd "/Users/mac/schrodinger mcp"
uv venv --python 3.12 .venv
source .venv/bin/activate
uv pip install -e ".[dev]"Sanity check:
python -c "from schrodinger_mcp.tools.foundation import detect_installation as d; print(d()['version'])"Register with Claude
Claude Code (the -- separates the launch command; quote the spaced path):
claude mcp add schrodinger \
--env SCHRODINGER=/opt/schrodinger/suites2026-1 \
-- "/Users/mac/schrodinger mcp/.venv/bin/schrodinger-mcp"Claude Desktop — add to
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"schrodinger": {
"command": "/Users/mac/schrodinger mcp/.venv/bin/schrodinger-mcp",
"args": [],
"env": { "SCHRODINGER": "/opt/schrodinger/suites2026-1" }
}
}
}Restart the client; the schrodinger tools and the schrodinger://installation resource
appear.
Tools
Foundation (synchronous)
Tool | What it does |
| Report root, version, installed workflows, hosts, GPU |
| Download a structure from RCSB by 4-char PDB ID |
| Convert between mae/maegz/sdf/pdb/mol2/smi/cif |
| Counts, titles, charges, MW, chains, properties |
| Quick single-conformer 3D from SMILES |
| Split a multi-structure file / concatenate |
Preparation (async) — ligprep, protein_prepwizard, epik, confgen
Glide docking — generate_glide_grid, glide_dock (SP/XP), summarize_docking (sync)
ADMET & site analysis — qikprop, compute_descriptors (sync), sitemap, shape_screen
QM & MM-GBSA — prime_mmgbsa, jaguar_qm
Async job control — get_job_status, get_job_results, cancel_job, list_jobs
Async tools return a job_id immediately. Poll get_job_status(job_id) until
state == "completed", then get_job_results(job_id) for the output files.
Example: dock a ligand against a target
1. fetch_pdb("1HSG") → receptor.pdb
2. protein_prepwizard(receptor.pdb) → job → prepared.maegz
3. ligprep("CC(=O)Oc1ccccc1C(=O)O") → job → ligprep_out.maegz
4. generate_glide_grid(prepared, center=[x,y,z] or ligand_ref=...) → job → grid.zip
5. glide_dock(grid.zip, ligprep_out, precision="SP") → job → dock_pv.maegz
6. summarize_docking(dock_pv.maegz) → ranked GlideScore tableTesting
pytest tests/test_unit.py -q # fast unit tests, no Schrödinger needed
python tests/manual_docking_e2e.py # real end-to-end docking (bundled fixture, ~3 min)
python tests/manual_wave5.py # qikprop / MM-GBSA / sitemap / shape / jaguarInspect the live MCP server with the official inspector:
npx @modelcontextprotocol/inspector "/Users/mac/schrodinger mcp/.venv/bin/schrodinger-mcp"Configuration
Env var | Default | Purpose |
| autodetect | Install root |
|
| Job dirs, scratch, registry |
|
| Concurrent heavy-job advisory limit |
|
| Seconds before a sync op suggests going async |
Disclaimer & trademarks
This is an independent, unofficial project. It includes no Schrödinger software, source, or data, and requires a separately licensed Schrödinger Suites installation.
Schrödinger, Maestro, Glide, Desmond, Jaguar, Prime, QikProp, Epik, Phase, Canvas, and SiteMap are trademarks of Schrödinger, LLC. This project is not affiliated with, endorsed by, or sponsored by Schrödinger, LLC; product names are used only to describe interoperability. Use of Schrödinger software is governed by your own license agreement with Schrödinger — consult it before publishing benchmarks or results.
License
MIT © 2026. Your use of the underlying Schrödinger Suites remains subject to your Schrödinger license.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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