fairchem-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 |
|---|---|
| list_modelsA | List FAIRChem pretrained models (UMA, eSEN, ...) if FAIRChem is installed. |
| load_modelA | Load a FAIRChem model as an ASE calculator, kept resident in memory. task is the prediction domain: omat (inorganic), omol (molecules), oc20 (catalysis), odac (MOFs), omc (molecular crystals). Returns a calculator_id to pass to start_relaxation/start_md. |
| attach_emtA | Attach a fast EMT calculator (no GPU/model needed). Useful for quick tests on Cu/Ag/Au/Ni/Pd/Pt/Al/Pb and method development. |
| build_structureA | Build an ASE structure from a declarative spec and register it. Examples: {"kind":"bulk","name":"Cu","crystalstructure":"fcc","a":3.6,"repeat":[2,2,2]} {"kind":"molecule","name":"H2O"} {"kind":"surface","name":"Pt","size":[2,2,4],"vacuum":10.0} Add "rattle": 0.1 to perturb positions (good for testing relaxation). |
| load_structureB | Load a structure from any ASE-readable file (cif, xyz, traj, POSCAR, ...). |
| start_relaxationA | Start a geometry optimization in the background; returns immediately. Poll get_status to watch progress, and steer() to change fmax, switch optimizer, pause or abort mid-run. Set relax_cell=True to also relax the cell. step_delay (seconds) throttles steps — useful with fast calculators so you have time to observe and react between steps. |
| start_mdA | Start molecular dynamics (NVT Langevin or NVE) in the background. step_delay (seconds) throttles steps so you can observe/react between them. |
| start_nebA | Start a nudged elastic band (reaction barrier) between two relaxed endpoints, in the background. nimages is the number of intermediate images. Steerable like a relaxation (pause/resume/abort/set_fmax/switch_optimizer) plus steer set_climb to enable the climbing image near convergence. When done, get_results returns the forward/reverse barrier and image energies. |
| start_phononsA | Start a phonon (finite-displacement) calculation in the background. Runs 1 + 6*natoms force evaluations; poll get_status for progress (done/total, fraction). When done, get_results returns gamma-point frequencies (THz), the count of imaginary modes, and a 'stable' flag. supercell defaults to [2,2,2]. |
| start_minima_searchA | Search for multiple distinct relaxed geometries (local minima of the PES). Repeatedly relaxes from the starting structure on a PES biased to repel the minima found so far, then polishes on the true PES. kernel is 'flooding' (Gaussian bumps; sigma in Å, amplitude in eV) or 'deflation' (inverse-distance poles). New minima are deduped by energy_tol (eV) + rmsd_tol (Å) and each is registered as a new structure. Poll get_status for n_found/target; get_results returns the distinct minima (structure_id + energy), sorted by energy. Steerable via steer abort/pause (and set_fmax/switch_optimizer mid-relaxation). |
| get_statusA | Get a live snapshot of a job: status, step, energy, max_force, and a 'trend' verdict (decreasing / plateaued / stuck / diverging) so you can decide whether to intervene. |
| get_trajectoryA | Return the recent energy/force history of a job (last_n snapshots). |
| get_resultsA | Return a job's final results, if any: NEB barrier/energies, or phonon gamma frequencies and stability. None until the job finishes. |
| steerA | Steer a running job mid-flight. command is one of: pause, resume, abort, set_fmax, switch_optimizer, set_temperature, set_climb. Use value for set_fmax / set_temperature, optimizer for switch_optimizer (FIRE / LBFGS / BFGS), and set_climb to enable the climbing image on a NEB (value 0/1, default on). |
| introspectA | Introspect installed code or live objects. Static (live=False): dotted path, e.g. 'fairchem.core.calculate.ase_calculator.FAIRChemCalculator'. Live (live=True): an expression over the session namespace, e.g. 'atoms'. A trailing '.' (e.g. 'atoms.' or 'ase.build.') lists members/completions. Returns signature, docstring and members. |
| executeA | Execute Python in the persistent session namespace (escape hatch). The namespace is shared with all tools: structures, calculators and jobs are bound by id (struct_1, calc_1, job_1) plus aliases (atoms, calc, job). Trusted local-dev use only. Captured stdout is returned. |
| inspect_exprA | Evaluate an expression in the session namespace and return its repr. e.g. 'atoms.get_potential_energy()' or 'np.linalg.norm(atoms.get_forces(),axis=1).max()'. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| models_resource |
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/jkitchin/fairchem-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server