ChimeraX MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CHIMERAX_BIN | No | Custom 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
| Capability | Details |
|---|---|
| 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
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/mahynotch/chimerax-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server