ypotheto-compchem-mcp
Allows deploying the MCP server to DigitalOcean for hosted web apps.
Allows running the MCP server in a Docker container for deployment, including full PySCF quantum calculations.
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., "@ypotheto-compchem-mcpBuild ethanol from SMILES CCO and optimize its geometry."
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.
Ypotheto Computational Chemistry MCP Server (ypotheto-compchem-mcp)
An MCP (Model Context Protocol) server that provides natural language interfaces and AI assistants with access to computational chemistry, cheminformatics, molecular modeling, engineering thermodynamics, reaction kinetics, materials science, and machine learning force fields.
Powered by RDKit, PySCF, Atomic Simulation Environment (ASE), Sella, Clapeyron.jl, Cantera, and PyTorch-based MLFFs (CHGNet, MACE).
Features & Capabilities
Molecule Builder & Cheminformatics: Convert SMILES strings to 3D optimized structures (MMFF94 or UFF), render 2D layouts (SVG), compute molecular descriptors (MW, LogP, TPSA), and evaluate Lipinski filters.
list_molecules/describe_molecule/delete_moleculemanage the workspace's stored molecule archive directly.Ab Initio Electronic Structure Theory: Run Hartree-Fock (HF) and Density Functional Theory (DFT) calculations using PySCF. Retrieve potential energies, dipole moments, HOMO/LUMO gaps, and Mulliken charges.
Affordable Semi-Empirical & Conformer Search: Perform GFN-xTB calculations and execute conformer ensemble searches using CREST. Evaluates ensemble-averaged free energies and thermochemistry.
Vibrational Spectroscopy & Molecular Dynamics: Compute normal modes, frequencies, ZPE, and thermochemical corrections (Enthalpy, Entropy, Gibbs free energy). Simulates IR intensities (Lorentzian broadening plots) and runs Langevin or Verlet molecular dynamics.
Engineering Thermodynamics: Calculate mixture properties, vapor-liquid equilibria (VLE/LLE), bubble/dew points, azeotropes, and flash calculations using equation-of-state methods (via Clapeyron).
Reaction Kinetics & Reactor Modeling: Model chemical reactor networks, calculate ignition delays, solve constant-pressure/volume kinetics, and retrieve transport properties using Cantera.
Polymers & Soft Matter: Pack molecules into periodic cells with target densities using Packmol. Run classical MD simulations via LAMMPS and post-process trajectories (Radius of Gyration, Mean Squared Displacement, Radial Distribution Functions) using MDAnalysis.
Transition States & Reaction Pathways: Find first-order saddle-points (transition states) using the Sella optimizer. Trace minimum energy pathways (MEP) and activation barriers ($\Delta E^{\ddagger}$) using Nudged Elastic Band (NEB).
Periodic DFT & Adsorption: Construct surface slabs with custom Miller indices and vacuum spaces. Add molecular adsorbates onto surface sites (ontop, bridge, hollow) and run periodic calculations (PBC DFT or xTB).
Machine Learning Force Fields (MLFF): Run fast geometry optimizations and molecular dynamics simulations using pre-trained neural network potentials (CHGNet, MACE).
Advisor & Guidance Layer:
recommend_workflowchains the right tools together for a plain-language goal (e.g. "find the activation barrier"), tailored to a molecule's size;explain_conceptlooks up 30+ plain-language explanations of core concepts (basis sets, GFN2 vs. DFT, HSP, imaginary frequencies, etc.); guided MCP prompts (compute_reaction_barrier,characterize_a_molecule,screen_solvent_compatibility,simulate_polymer_properties) walk a client LLM through common multi-step workflows end-to-end.Asynchronous Job Management: Heavy computations run in background threads using a persistent job manager, avoiding client/LLM timeout issues.
File-First Artifacts: Visual plots, SVG diagrams, and coordinate files (SDF, XYZ, CIF, PDB) are written to a local workspace directory and returned as public URLs.
Related MCP server: abacus-mcp-server
Local Development & Setup
This project uses uv for virtualenv and dependency management.
1. Prerequisites
Python
>= 3.11Windows, macOS, or Linux.
Note: Heavy dependencies (like PySCF, Packmol, LAMMPS) have robust fallback mechanisms in the code. If a binary is missing or incompatible on a specific platform, the server automatically routes calculations to classical/semi-empirical fallbacks, ensuring portability.
2. Install Dependencies
Heavy backends are optional extras, not hard dependencies - a core-only install
starts the server and serves the RDKit/ASE tool subset (molecule building,
cheminformatics, descriptors). Any tool whose backend isn't installed returns a
BACKEND_UNAVAILABLE error naming the exact extra to add.
# Clone the repository
git clone <repo-url>
cd compchem-mcp
# Create virtual environment
uv venv
# Core install only (RDKit/ASE tools)
uv pip install -e .
# ...or pick the extras you need:
uv pip install -e ".[qm]" # PySCF ab initio DFT/HF (+ cclib log parsing)
uv pip install -e ".[mlff]" # CHGNet / MACE machine-learned force fields
uv pip install -e ".[thermo]" # Cantera + Clapeyron.jl (via juliacall)
uv pip install -e ".[md]" # MDAnalysis trajectory post-processing
uv pip install -e ".[ts]" # Sella transition-state optimization
uv pip install -e ".[db]" # PostgreSQL-backed durable job queue
uv pip install -e ".[s3]" # DigitalOcean Spaces (S3-compatible) storage
uv pip install -e ".[all]" # everything above
# Development tooling (ruff, mypy, pytest, moto)
uv pip install -e ".[dev]"xtb, CREST, Packmol, and LAMMPS are external binaries, not pip
packages - the server auto-detects them via shutil.which and falls back
gracefully (or raises BACKEND_UNAVAILABLE) when they're missing. The
Dockerfile installs all of the above, plus these binaries and a
Julia + Clapeyron.jl environment, and is the canonical way to get every
backend available at once.
3. Run the Tests
.\.venv\Scripts\python.exe -m pytestEvery heavy backend is mocked in the default test run above, so it never
verifies a single real calculation. A separate @pytest.mark.integration
tier (tests/test_integration.py) runs actual xtb/PySCF/CREST/Packmol/LAMMPS
calculations and checks results against known reference values (e.g. GFN2-xTB
water ≈ -5.070 Ha, HF/STO-3G water ≈ -74.96 Ha) - each test auto-skips if its
backend isn't installed, so it's safe to run anywhere:
pytest -m integrationSince most dev machines won't have every binary installed, the project Docker image is the canonical venue for the full integration suite (it installs everything - see below):
docker build --target test -t ypotheto-compchem-mcp:test .
docker run --rm ypotheto-compchem-mcp:test4. Run the Server
The server supports two transport mechanisms: STDIO (default) for desktop client plugins and HTTP (SSE/Streamable HTTP) for web applications.
# Start STDIO mode
.\.venv\Scripts\ypotheto-compchem-mcp --transport stdio
# Start HTTP mode
.\.venv\Scripts\ypotheto-compchem-mcp --transport http --port 8348Running in Docker
To run inside a container environment containing pre-compiled binaries:
# Build the Docker image
docker build -t ypotheto-compchem-mcp .
# Run the container (binds workspace data to a local directory)
docker run -p 8348:8348 -v C:/data/compchem:/data ypotheto-compchem-mcpClient Integration Configuration
1. Claude Desktop (STDIO)
Add the server to your claude_desktop_config.json configuration file:
{
"mcpServers": {
"ypotheto-compchem": {
"command": "C:/Users/<your-user>/PycharmProjects/compchem-mcp/.venv/Scripts/ypotheto-compchem-mcp.exe",
"args": [
"--transport",
"stdio"
],
"env": {
"COMPCHEM_DATA_DIR": "C:/Users/<your-user>/.compchem-mcp"
}
}
}
}2. SSE Web Client
To connect a remote client over streamable HTTP with Bearer token authentication:
Start the server:
COMPCHEM_API_TOKEN="secret_api_token" ypotheto-compchem-mcp --transport http --port 8348Configure your client to connect to
http://localhost:8348/mcpwith the headerAuthorization: Bearer secret_api_token.
Authentication
Controlled by COMPCHEM_AUTH_MODE, checked live on every request:
token(default): a single shared secret (COMPCHEM_API_TOKEN). Every caller that presents it lands in the same workspace derived from that token; unset entirely, auth is effectively open.none: no credential required at all, regardless ofCOMPCHEM_API_TOKEN. Whatever Bearer token a caller does supply (if any) still selects their own isolated workspace.keys: a per-tenant API-key table (ypotheto_compchem_mcp.apikeys), backed by SQLite ({COMPCHEM_DATA_DIR}/keys.db) by default or Postgres whenCOMPCHEM_DATABASE_URLis set. Manage keys withpython scripts/issue_key.py {issue,disable,list}. Each key maps to its own workspace, hashed at rest (the raw key is only ever shown once, at issuance).oauth: OIDC resource-server mode (Kinde or any RS256-signing provider). RequiresCOMPCHEM_OAUTH_ISSUERandCOMPCHEM_OAUTH_AUDIENCE; a valid token'ssubclaim resolves to a stable per-user workspace, and the requiredCOMPCHEM_OAUTH_REQUIRED_PERMISSIONmust appear in itspermissionsclaim. A missing/invalid token gets a401with aWWW-Authenticateheader pointing at/.well-known/oauth-protected-resource(RFC 9728) so a client can discover where to authenticate.
Environment Variables
Variable | Description | Default |
| Shared-secret Bearer token required for authentication in |
|
| Authentication mode: |
|
| OIDC provider base URL and this API's registered audience (required together when | unset |
| The |
|
| Directory on disk to store molecule structures and artifacts |
|
| Port to run the HTTP/SSE server |
|
| Base URL used to prefix artifact download links; also used to derive the allowed |
|
| Comma-separated CORS allowlist. Empty means no CORS headers at all (same-origin only) |
|
| Hard timeout for a single POST tool-call request before returning |
|
| Lifetime of a signed artifact download URL ( |
|
| PostgreSQL connection string for the durable job queue, molecule archive, and (in |
|
| DigitalOcean Spaces (S3-compatible) storage backend for artifacts (requires the | unset (local disk) |
Tool Catalog Overview
Generated from the actual tool registrations - regenerate with
python scripts/gen_tool_catalog.py (pipe into this section) whenever tools
are added or removed, so this table can't silently drift out of sync again.
Tool Name | Parameters | Description |
|
| Place a non-periodic adsorbate molecule onto a periodic surface slab. |
|
| Perform deep crystallographic symmetry and space group analysis for a stored structure. |
|
| Analyze MD trajectory XYZ file to compute Radius of Gyration, RDF, and MSD. |
|
| Generate optimized 3D coordinates from a SMILES representation. |
|
| Assemble repeat units head-to-tail to form a 3D-relaxed polymer chain of specified length. |
|
| Generate a surface slab from bulk periodic crystal structure. |
|
| Calculate molecular properties (descriptors) and Lipinski's Rule of Five compliance. |
|
| Calculate the Hansen Solubility Parameters (HSP) and Cohesive Energy Density (CED) for a stored molecule using the Hoftyzer-Van Krevelen (HVK) group contribution method. |
|
| Calculate the Hansen Solubility Parameter (HSP) distance (Ra) between two stored molecules. |
|
| Calculate viscosity, thermal conductivity, and binary diffusion coefficients. |
|
| Run vibrational frequency analysis and calculate thermochemistry corrections. |
|
| Permanently delete a stored molecule's coordinates and metadata from this workspace. |
|
| Retrieve stored metadata (name, formula, SMILES, atom count, method) for a molecule without loading its full 3D coordinates. |
|
| Enumerate all tautomeric forms for a stored molecule. |
|
| Estimate the execution time for a quantum chemistry calculation before running it. |
|
| Look up a short, plain-language explanation of a core computational chemistry concept (basis sets, DFT functionals, transition states, HSP, etc.); call with an empty string to list all available concepts. |
|
| Expand a unit cell periodic structure into a supercell. |
|
| Retrieve coordinate contents (SDF, XYZ, or PDB) of a stored molecule. |
|
| Check progress or fetch results of a background calculation job. |
|
| Import a periodic crystal structure from a CIF file. |
| None | List all molecules stored in the current workspace. |
|
| Relax molecule coordinates using ASE LBFGS optimizer coupled with PySCF energy/gradients. |
|
| Pack polymer chains and solvent molecules into a periodic box using Packmol. |
| None | Check if the Ypotheto Computational Chemistry MCP Server is responsive. |
|
| Recommend a chain of tool calls for a described computational-chemistry goal, with rationale for each step (deterministic keyword rules, not an LLM call); tailors to a molecule's size when |
|
| Register a monomer repeat unit, defining attachment connection points for polymer building. |
|
| Generate conformer ensembles using CREST (Conformer-Rotamer Ensemble Sampling Tool). |
|
| Run the Ensemble Thermochemistry Pipeline (enumerate -> optimize -> frequency-check -> Boltzmann rank). |
|
| Run classical MD simulation in LAMMPS (or ASE fallback). |
|
| Perform flash equilibrium calculations for a mixture using Clapeyron.jl. |
|
| Run classical MD simulations driven by MLFF forces. |
|
| Optimize molecular or periodic structures using pre-trained Machine Learning Force Fields (MLFFs). |
|
| Run molecular dynamics (MD) simulations to study motion and thermal relaxation. |
|
| Optimize reaction pathway and energy barrier using Nudged Elastic Band (NEB). |
|
| Perform periodic DFT or semi-empirical GFN-xTB PBC energy calculations. |
|
| Perform advanced electronic structure calculations to compute properties like Mulliken and Loewdin populations, Electrostatic Potential (ESP) cubes, and HOMO/LUMO orbital cubes. |
|
| Simulate chemical kinetics and species concentrations over time using Cantera. |
|
| Validate molecule consistency and estimate calculation resources before submission. |
|
| Compute single-point energy, dipole moments, HOMO/LUMO energies, and Mulliken charges. |
|
| Perform a transition state search (first-order saddle point) using the Sella optimizer. |
|
| Run fast semi-empirical GFN-xTB calculations. |
|
| Extract a single conformer from a search result and save it as a new molecule in the workspace. |
|
| Generate multiple conformers for a molecule, relax them, prune duplicates, and rank them by forcefield energy and Boltzmann populations. |
|
| Simulate IR intensities and generate a Lorentzian IR spectrum plot. |
|
| Standardize a molecule: parses structure, strips salts, neutralizes formal charge, canonicalizes tautomers, and sanitizes/minimizes the output. |
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityCmaintenanceAn MCP server for quantum chemistry that enables LLMs to perform electronic structure analysis, parse calculation outputs, and generate 3D orbital visualizations. It integrates tools like PySCF, cclib, and py3Dmol to facilitate molecular structure manipulation and bonding analysis through natural language.Last updatedBSD 3-Clause
- Alicense-qualityDmaintenanceEnables AI-driven first-principles calculations for quantum chemistry and materials science using ABACUS, with tools for SCF, structure optimization, molecular dynamics, band structure, and intelligent parameter suggestions.Last updated9GPL 3.0

ChemMCPofficial
Alicense-qualityCmaintenanceChemMCP is an easy-to-use and extensible chemistry toolkit for LLMs and AI assistants, enabling molecular analysis, property prediction, and reaction synthesis tasks without domain-specific training.Last updated69Apache 2.0- Alicense-qualityDmaintenanceEnables first-principles calculations (SCF, structure optimization, molecular dynamics, etc.) for quantum chemistry and materials science using ABACUS, with intelligent parameter suggestions and result analysis through natural language.Last updatedGPL 3.0
Related MCP Connectors
AI-powered bioprotocol optimization — generate, search, and manage lab protocols via MCP
AI-callable calculators and engineering models with real formulas. No hallucinated math.
Create and manage AI agents that collaborate and solve problems through natural language interacti…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/ypotheto/compchem-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server