MCPymol
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCPYMOL_PORT | No | Port for the TCP listener inside PyMOL (default 9876) | 9876 |
| MCPYMOL_MMSEQS_URL | No | URL for a custom MMseqs2 API endpoint (default is ColabFold public API) |
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 |
|---|---|
| fetch_structureA | Fetches a protein structure from the PDB. By default, it attempts to fetch the first biological assembly (multimer), and removes any unrelated chains/states that are not part of the primary multimer. Args: pdb_code: 4-letter PDB code (e.g. "1abc") obj_name: Optional custom name for the object in PyMOL multimer_cutoff: Distance (A) between chains to keep them in the same multimer. Default 8.0A is suitable for most functional assemblies. |
| load_structureA | Loads a structure from a local file path and applies the BFS multimer heuristic. Args: file_path: Path to the structure file (PDB, MMCIF, etc.) obj_name: Name for the object in PyMOL multimer_cutoff: Distance (A) between chains to keep them in the same multimer. Default 8.0A is suitable for most functional assemblies. |
| showC | Shows a graphical representation for a given selection. Args:
representation: One of |
| hideA | Hides a graphical representation for a given selection. Args:
representation: Same vocabulary as :func: |
| colorA | Sets the color for a selection. Args:
color_name: A PyMOL color. Common names: |
| selectA | Creates (or replaces) a named selection for later reuse. Args:
name: Identifier you'll refer to later (e.g. |
| removeA | Permanently removes the atoms matching the selection. This deletes atoms; it does not just hide them. To hide instead, use
:func: |
| distanceA | Measures and draws a distance object between two selections. Args: name: Name for the distance object (used to delete/recolor later). selection1: First selection. selection2: Second selection. |
| execute_pymol_commandA | Executes a raw PyMOL command string (PyMOL CLI syntax). PREFER the dedicated tools when one exists — show, color, select, distance, ligand_view, interface_view, etc. They have better defaults, do compound setup in one call, and produce cleaner results. Reach for this tool only when no other tool covers what you need (e.g.
|
| list_objectsA | Lists all loaded PyMOL objects. Call this when you don't know what's currently in the session — for
example before composing a selection or running a view tool that needs
an |
| list_chainsA | Lists the chain IDs present in an object (or in all objects). Useful before calling :func: |
| list_ligandsA | Lists the small-molecule (organic) ligand residue names in an object. Call this before :func: |
| ligand_viewA | Shows a binding-site view focused on a ligand. Protein rendered as a semi-transparent cartoon. Pocket residues (within 5Å of the ligand) shown as sticks with element coloring and lightblue carbons. Ligand shown as thick sticks with yellow carbons. H-bonds drawn as yellow dashes. Pocket residues labeled. View zooms to the ligand. Args: obj_name: PyMOL object name (e.g. "1abc") ligand_resn: 3-letter residue name of the ligand (e.g. "ATP", "HEM", "LIG") |
| bfactor_viewA | Colors the structure by crystallographic B-factor (temperature factor). Blue = rigid/ordered (low B), white = intermediate, red = flexible/disordered (high B). Useful for identifying dynamic loops, disordered termini, and rigid structural cores. Shown as cartoon on black background. Args: obj_name: PyMOL object name (e.g. "1abc") |
| conservation_viewA | Colors the structure by evolutionary conservation using Shannon entropy. Runs a full pipeline: extracts the protein sequence from the loaded structure, submits it to an MMseqs2 server (ColabFold public API by default) for multiple sequence alignment, computes per-residue Shannon entropy, and maps the conservation scores onto the structure via the B-factor column and spectrum coloring. Entropy scores are cached in memory by sequence, so changing the scale or re-running on the same protein does not require a repeat API call. Magenta/blue = highly conserved (low entropy), white = moderate, cyan/green = highly variable (high entropy). NOTE: The first call makes an external API call and may take 30 seconds to several minutes depending on the server and sequence length. Subsequent calls for the same sequence are instant. Args: obj_name: PyMOL object name (e.g. "1ubq") selection: PyMOL selection to analyze (default "all") server_url: Override the MMseqs2 server URL (defaults to ColabFold public API, or MCPYMOL_MMSEQS_URL env var) use_env: Search environmental databases in addition to UniRef (default True, gives deeper MSAs) chain: Specific chain ID to analyze. If None, uses the first protein chain found. scale: Color scaling mode. "relative" (default) maps the color gradient to the actual min/max entropy range of this protein, maximizing visual contrast. "absolute" uses the full theoretical entropy range (0 to log2(20)), useful when comparing conservation across different proteins. force_refresh: If True, bypass the cache and re-fetch the MSA from the MMseqs2 server even if scores are cached. |
| interface_viewA | Highlights the protein-protein binding interface between two chains. Chain A shown in marine blue, chain B in salmon. Interface residues (within 4Å of the partner chain) shown as a solid surface patch with sticks. H-bonds across the interface drawn as yellow dashes. Args: obj_name: PyMOL object name (e.g. "1abc") chain_a: First chain ID (e.g. "A") chain_b: Second chain ID (e.g. "B") |
| asC | Shows one representation while hiding all others for the specified selection |
| putty_viewA | Visualizes protein flexibility using a putty (tube-width) representation. The cartoon tube radius scales linearly with crystallographic B-factor: thin/blue = rigid/ordered regions, thick/red = flexible/disordered regions. A 70%-transparent surface is shown, also colored by B-factor. Organic ligands are shown as sticks with yellow carbons. Black background. Args: obj_name: PyMOL object name (e.g. "1abc") |
| hydrophobic_surface_viewA | Colors the molecular surface by amino acid hydrophobicity. Orange = hydrophobic (ILE, VAL, LEU, PHE, MET, ALA, TRP, PRO), white = polar (SER, THR, CYS, TYR, ASN, GLN, GLY), sky blue = positively charged (ARG, LYS, HIS), salmon = negatively charged (ASP, GLU). A white cartoon is shown beneath a semi-transparent surface. Organic ligands shown as sticks with yellow carbons. Args: obj_name: PyMOL object name (e.g. "1abc") |
| electrostatic_viewA | Colors the molecular surface by approximate residue-based electrostatics. Surface is colored red→white→blue via a B-factor spectrum. A white cartoon is shown beneath a semi-transparent surface. Organic ligands shown as sticks with yellow carbons. For a more accurate Poisson-Boltzmann electrostatic surface, use poisson_boltzmann_view (requires APBS and PDB2PQR to be installed). Args: obj_name: PyMOL object name (e.g. "1abc") mode: Charge assignment strategy. "atomic" (default) — charges assigned only to terminal charged atoms (e.g. ARG NH1/NH2/NE, LYS NZ, ASP OD1/OD2, GLU OE1/OE2, HIS ND1/NE2). Produces localized color at charge centers with natural falloff to white. "residue" — charges assigned uniformly to all atoms in each charged residue. Produces saturated patches; useful for quickly locating charged regions. |
| poisson_boltzmann_viewA | Colors the molecular surface by true Poisson-Boltzmann electrostatic potential. Runs PDB2PQR (AMBER force field, pH 7.0) then APBS to compute the full electrostatic potential map. Surface is colored red→white→blue over the range ±20 kT/e. A white cartoon is shown beneath a semi-transparent surface. Organic ligands shown as sticks with yellow carbons. Requires APBS and PDB2PQR to be installed on the system: brew install brewsci/bio/apbs pip install pdb2pqr Args: obj_name: PyMOL object name (e.g. "1abc") |
| crosslink_viewA | Highlights structural cross-links: disulfide bonds, metals, and their coordination. Protein backbone shown as a thin grey cartoon. Cysteine side chains (CA→CB→SG) shown as yellow sticks, labeled by residue. Disulfide bonds drawn as yellow dashes. Metal ions shown as orange spheres. Metal coordination bonds drawn as dashed lines to nearby protein atoms. Black background. Args: obj_name: PyMOL object name (e.g. "1abc") |
| pocket_viewA | Visualizes the binding pocket cavity around a ligand as a colored surface. The pocket (all residues within 5 Å of the ligand) is shown as a semi-transparent surface colored by chemical character: orange=hydrophobic, white=polar, skyblue=positive, salmon=negative. Pocket residue sidechains are shown as sticks. The ligand is shown as yellow sticks. H-bonds between the ligand and pocket are drawn as cyan dashes. The protein backbone is shown as a thin grey cartoon for context. Args: obj_name: PyMOL object name (e.g. "1abc") resn: Ligand residue name (e.g. "ATP", "LIG", "ANP") |
| pharmacophore_viewA | Colors a ligand by pharmacophore feature type. The ligand is shown as sticks color-coded by pharmacophore property: violet=ring/aromatic carbon, yellow=aliphatic carbon, skyblue=nitrogen (H-bond donor/acceptor), salmon=oxygen (H-bond acceptor), gold=sulfur, palegreen=halogen (F/Cl/Br/I). H-bonds to protein are shown as cyan dashes. Interacting residue sidechains are shown as element-colored sticks with CA labels. The pocket is shown as a semi-transparent grey surface for cavity context. The protein backbone is shown as a thin grey cartoon. Args: obj_name: PyMOL object name (e.g. "1abc") resn: Ligand residue name (e.g. "ATP", "LIG", "ANP") |
| mutation_viewA | Highlights mutated residues on the protein structure. Given a comma-separated list of mutations in standard notation (e.g. "A123G,V45L,T200S"), the mutated residues are shown as magenta sticks and labeled. Nearby residues (within 4 Å) are shown as thin grey sticks for packing context. The protein backbone is shown as a grey cartoon. Organic ligands are shown as yellow sticks. Mutation format: , e.g. "A123G" (Ala→Gly at position 123). Chain can optionally be prefixed: "A:A123G". Args: obj_name: PyMOL object name (e.g. "1abc") mutations: Comma-separated mutation list (e.g. "A123G,V45L,T200S") |
| textbook_viewA | Configures PyMOL for a crisp, cel-shaded illustrative look ("Textbook Illustration"). This view transforms the structure into a bold, 2D illustrative style with sharp black outlines, ideal for presentations or textbook-style diagrams. It hides the interior complexities, showing a solid white cartoon and surface with heavy black edge contours. Ligands are styled similarly as opaque white sticks with outlines. Args: obj_name: PyMOL object name (e.g. "1abc") |
| cinematic_viewA | Configures PyMOL for a depth-cued, cinematic look with dramatic lighting. This view emphasizes volume and scale using deep shadows, fog, and depth-cueing. The core of the structure emerges from a dark background, making massive complexes (like ribosomes or viral capsids) look dramatic and imposing. Protein uses standard coloring but with altered material properties. Args: obj_name: PyMOL object name (e.g. "1abc") |
| pointillist_viewA | Renders the structure as an artistic, abstract pointillist/starfield cloud. The continuous surface is replaced by thousands of individual dots representing the solvent-accessible surface, resembling a galaxy or pointillist painting. The protein backbone is hidden to emphasize the scattered volume. Ligands are shown as bright yellow spheres (stars) embedded in the cloud. Args: obj_name: PyMOL object name (e.g. "1abc") |
| setC | Sets a PyMOL setting to a specified value |
| cartoonC | Sets the cartoon type for the specified selection |
| spectrumD | Colors selection in a spectrum |
| labelC | Adds labels to atoms in the selection |
| angleB | Measures the angle between three selections |
| dihedralC | Measures the dihedral angle between four selections |
| centerC | Centers the view on a selection |
| orientC | Orients the view to align with principal axes of the selection |
| zoomC | Zooms the view on a selection |
| resetB | Resets the view, optionally resetting an object's matrix |
| turnC | Rotates the camera around an axis |
| moveC | Moves the camera along an axis |
| clipC | Adjusts the clipping planes |
| saveD | Saves data to a file |
| pngD | Saves a PNG image |
| deselectB | Clears the current selection |
| createC | Creates a new object from a selection |
| extractC | Extracts a selection to a new object |
| deleteC | Deletes objects or selections |
| alignC | Aligns one selection to another |
| superC | Superimposes one selection onto another |
| intra_fitD | Fits all states within an object |
| intra_rmsC | Calculates RMSD between states within an object |
| alterC | Alters atomic properties in a selection |
| alter_stateC | Alters atomic coordinates in a state |
| h_addC | Adds hydrogens to a selection |
| h_fillC | Adds hydrogens and adjusts valences |
| bondC | Creates a bond between two atoms |
| unbondB | Removes a bond between two atoms |
| rebuildC | Regenerates all displayed geometry |
| refreshC | Refreshes the display |
| util_cbcC | Colors by chain (Color By Chain) |
| util_cbawC | Colors by atom, white carbons (Color By Atom, White) |
| util_cbagC | Colors by atom, green carbons (Color By Atom, Green) |
| util_cbacC | Colors by atom, cyan carbons (Color By Atom, Cyan) |
| util_cbamC | Colors by atom, magenta carbons (Color By Atom, Magenta) |
| util_cbayC | Colors by atom, yellow carbons (Color By Atom, Yellow) |
| util_cbasD | Colors by atom, salmon carbons (Color By Atom, Salmon) |
| util_cbabD | Colors by atom, slate carbons (Color By Atom, slateBLue) |
| util_cbaoC | Colors by atom, orange carbons (Color By Atom, Orange) |
| util_cbapC | Colors by atom, purple carbons (Color By Atom, Purple) |
| util_cbakC | Colors by atom, pink carbons (Color By Atom, pinK) |
| util_chainbowC | Colors chains in rainbow gradient (CHAINs in rainBOW) |
| util_rainbowC | Colors residues in rainbow from N to C terminus |
| util_ssC | Colors by secondary structure |
| util_color_by_elementC | Colors atoms by their element |
| util_color_secondaryD | Colors secondary structure elements |
| spheroidC | Displays atoms as smooth spheres |
| isomeshC | Creates a mesh isosurface |
| isosurfaceC | Creates a solid isosurface |
| sculpt_activateC | Activates sculpting mode for an object |
| sculpt_deactivateC | Deactivates sculpting mode for an object |
| sculpt_iterateD | Performs sculpting iterations |
| sceneC | Manages scenes for later recall |
| scene_orderC | Sets the order of scenes |
| msetC | Defines a sequence of states for movie playback |
| mplayB | Starts playing the movie |
| mstopB | Stops the movie |
| frameC | Sets or queries the current frame |
| forwardA | Advances one frame |
| backwardA | Goes back one frame |
| rockB | Toggles a rocking animation |
| rayD | Performs ray-tracing |
| drawD | Uses OpenGL renderer (faster but lower quality) |
| mpngC | Saves a series of PNG images for movie frames |
| symexpC | Generates symmetry-related copies |
| set_symmetryC | Sets symmetry parameters for an object |
| fabC | Creates a peptide chain from a sequence |
| fragmentD | Loads a molecular fragment |
| full_screenA | Toggles fullscreen mode |
| viewportD | Sets the viewport size |
| cdC | Changes the current directory |
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
- 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/chemrich/MCPymol'
If you have feedback or need assistance with the MCP directory API, please join our Discord server