Skip to main content
Glama
mahynotch

ChimeraX MCP Server

by mahynotch

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CHIMERAX_BINNoCustom path to ChimeraX executable for auto-launch

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
open_structureA

Open a molecular structure from PDB ID, file path, or URL. Aliases: load, fetch, import, read structure.

Example: open_structure("6VXX")

close_structureA

Close one or all open models. Aliases: remove model, delete model, unload.

Example: close_structure("#1")

save_structureC

Save a model to PDB, mmCIF, or mol2 file. Aliases: export, write structure, download.

Example: save_structure("/tmp/model.pdb", "#1")

list_modelsA

List all open models with IDs and names. Aliases: show models, what's open, loaded structures.

Example: list_models()

get_sequenceA

Return amino acid sequence for a chain. Aliases: sequence, residues, chain sequence.

Example: get_sequence("/A")

run_scriptA

Run a ChimeraX command script (.cxc) or Python script (.py). File must exist locally with a .cxc or .py extension. Aliases: execute script, run cxc, run python script, source.

Example: run_script("/path/to/setup.cxc")

mutate_residueA

Mutate (swap) a residue to a different amino acid using the Dunbrack rotamer library. Accepts both 1-letter (K) and 3-letter (LYS) amino acid codes. Spec can be /A:48 or A:48 format. Aliases: swap, change residue, substitute, point mutation.

Example: mutate_residue("/A:501", "K")

delete_atomsB

Delete atoms or residues matching the spec. Aliases: remove atoms, erase, cut.

Example: delete_atoms("/A:501")

add_hydrogenC

Add hydrogens to the structure. Aliases: protonate, add H, hydrogenate.

Example: add_hydrogen("#1")

minimize_energyC

Run energy minimization on a model. Aliases: relax, optimize geometry, energy minimize.

Example: minimize_energy(100, "#1")

color_structureA

Color atoms/residues by scheme (chain, bfactor, rainbow) or a named/hex color. For electrostatic or hydrophobicity coloring use the dedicated surface tools. Aliases: colour, paint, set color, recolor.

Example: color_structure("#1", "chain")

show_electrostatic_surfaceC

Calculate and display Coulombic electrostatic potential on the surface. Aliases: electrostatics, ESP, charge surface, coulombic.

Example: show_electrostatic_surface("#1")

show_hydrophobicity_surfaceC

Calculate and display Molecular Lipophilicity Potential on the surface. Dark cyan = hydrophilic, dark goldenrod = hydrophobic. Aliases: hydrophobicity, lipophilicity, MLP, hydrophobic surface.

Example: show_hydrophobicity_surface("#1")

show_surfaceC

Show molecular surface. Aliases: surface, display surface, solvent-accessible surface.

Example: show_surface("#1", 0.7)

hide_surfaceB

Hide molecular surface. Aliases: remove surface, surface off.

Example: hide_surface("#1")

show_cartoonC

Show ribbon/cartoon representation. Aliases: ribbon, cartoon, secondary structure.

Example: show_cartoon("#1")

show_sticksA

Show stick representation for a selection. Aliases: sticks, ball and stick, show bonds.

Example: show_sticks("/A:501")

hide_atomsB

Hide atoms for a selection. Aliases: hide, conceal atoms.

Example: hide_atoms("/A:501")

zoom_toB

Zoom the camera to center on a selection. Aliases: focus, center on, look at, zoom in.

Example: zoom_to("/A:501")

set_backgroundA

Set the background color (white, black, hex). Aliases: background, bg color.

Example: set_background("white")

label_residuesC

Add text labels to residues. Default shows residue name + number. Aliases: annotate, tag residues, show labels.

Example: label_residues("/A:501")

clear_labelsA

Remove all labels. Aliases: delete labels, hide labels, unlabel.

Example: clear_labels()

reset_viewA

Reset to the default camera view. Aliases: home view, reset camera, default view.

Example: reset_view()

take_snapshotB

Save a PNG screenshot of the current view. Aliases: screenshot, capture, save image, photo.

Example: take_snapshot("/tmp/snapshot.png")

start_recordingB

Start recording a movie of the ChimeraX session. Call this before making visual changes, then stop_recording when done. Aliases: record, start movie, begin recording.

Example: start_recording()

stop_recordingA

Stop recording and save movie to file (.mp4, .webm, .mov, .avi). Aliases: stop movie, save movie, end recording, save video.

Example: stop_recording("/tmp/session.mp4")

spinB

Spin/rotate the model around an axis (x, y, or z). Great for turntable animations when combined with recording. Aliases: rotate, turntable, orbit, spin around.

Example: spin("y", 360, 180)

record_spinC

Record a full turntable spin and save as video in one step. Aliases: turntable video, spin video, rotation movie, 360 video.

Example: record_spin("/tmp/turntable.mp4")

measure_distanceB

Measure distance between two atoms in Angstroms with visual annotation. Aliases: distance, how far, length between.

Example: measure_distance("/A:501@CA", "/A:31@CA")

measure_angleB

Measure bond angle defined by three atoms in degrees. Aliases: angle, bond angle.

Example: measure_angle("/A:501@N", "/A:501@CA", "/A:501@C")

align_and_rmsdA

Align one selection to another and report RMSD. Uses ChimeraX 'align' command (no 'measure rmsd' exists). Aliases: align, superpose, RMSD, overlay, structural alignment.

Example: align_and_rmsd("#1/A", "#2/A")

find_contactsB

Find residues within N Angstroms of a selection. Aliases: contacts, neighbors, nearby residues, clashes.

Example: find_contacts("/A:501", 4.0)

get_bfactorsB

Return B-factors for selected atoms. Aliases: B-factor, temperature factor, displacement.

Example: get_bfactors("/A:501")

measure_buried_areaA

Measure buried solvent-accessible surface area between two atom sets. Aliases: buried area, interface area, binding interface.

Example: measure_buried_area("#1/A", "#1/B")

select_atomsB

Select atoms/residues by ChimeraX specifier string. Aliases: pick, highlight, sel, select.

Example: select_atoms("/A:501")

select_nearC

Select all atoms within N Angstroms of a selection. Aliases: select nearby, zone, within distance.

Example: select_near("/A:501", 5.0)

select_chainB

Select an entire chain. Aliases: pick chain, highlight chain.

Example: select_chain("A")

invert_selectionA

Invert the current selection. Aliases: select inverse, flip selection.

Example: invert_selection()

name_selectionB

Save current selection under a reusable name. Aliases: save selection, bookmark, name zone.

Example: name_selection("binding_site")

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/mahynotch/chimerax-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server