Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PROTEIN_BLENDER_PORTNoSet this if you changed the port in the Blender panel. The default port is 9877.
UV_PYTHON_INSTALL_DIRNoWindows workaround for the Claude desktop app and uv: store uv's Python installations outside AppData, for example C:\\Users\\<you>\\.uv\\python.

Instructions

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

Tools for styling protein and nucleic-acid 3D structures in Blender with Molecular Nodes. Typical flow: fetch_structure or load_file -> get_scene_info (see chains and ligands) -> clear_styles / add_style to build the look -> set_background, frame_camera -> render_image to check the result and iterate. Styles stack: each add_style adds another layer, so call clear_styles first when the user wants to restyle from scratch. Pick selections that match the user's words, e.g. 'the ligand' -> "not protein and not nucleic and not water".

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_scene_infoA

List the molecules in the scene with their chains, ligands, residue counts and current style layers, plus render settings and the available styles, color schemes and materials. Call this before styling to learn chain IDs and ligand names.

fetch_structureA

Download a structure by ID and add it to the scene with an initial style.

pdb_id: a PDB code like "4HHB", or a UniProt accession when database is "alphafold". Use style="none" to load without any style and build it up with add_style.

load_fileC

Load a local structure file (.pdb, .cif, .bcif, .sdf, .mol) into the scene.

add_styleA

Add a style layer to a molecule, optionally limited to a selection.

Layers stack, so "cartoon for the protein plus sticks for the ligand" is two calls. molecule is the object name from get_scene_info (default: the active or most recently loaded one). label names the layer for later removal.

options passes extra settings straight to the Molecular Nodes style node, e.g. cartoon: {"quality": 4, "helix_shape": "Cylinder", "loop_radius": 0.3, "sheet_arrows": "Flat"}; surface: {"quality": 4, "scale": 1.5, "separate_by": "chain_id"}; spheres/sticks: {"scale": 0.8}.

Selections use MDAnalysis selection syntax, for example: "chainID A" one chain (also "segid A") "chainID A B" several chains "protein" / "nucleic" all protein / DNA-RNA atoms "resid 10:50" residue range "resname HEM" a ligand or residue type by name "not protein and not nucleic and not water" ligands and other het groups "protein and around 5 resname ATP" binding pocket within 5 A "backbone" / "name CA" backbone atoms / alpha carbons "resname LYS ARG" / "resname ASP GLU" basic / acidic residues Combine with and / or / not and parentheses.

Color can be a scheme or a single color. Schemes: "element", "chain", "rainbow" (N->C terminus), "secondary_structure", "residue_type", "b_factor", "plddt", "goodsell". Single colors: a name ("red", "skyblue", "gold"...), a hex code ("#ff8800") or an RGB list ([255, 136, 0]).

clear_stylesB

Remove every style layer from a molecule so it can be restyled from scratch.

remove_styleB

Remove one style layer by its index (see get_scene_info).

frame_cameraC

Point the scene camera at a molecule, or zoom in on a selection such as a binding site, from the given viewpoint.

set_backgroundA

Set the background color the camera sees (name or hex), or make it transparent for figures placed on another background. Lighting is kept separate, so dark backgrounds still light the molecule; raise lighting_strength (e.g. 1.5) for a brighter scene.

set_render_settingsB

Choose the render engine (EEVEE is fast, CYCLES is photoreal), output size in pixels and sample count.

render_imageA

Render the scene from the camera and return the image so you can check the styling. preview=True renders at 50% size for speed; set preview=False and give a path for the final figure.

delete_moleculeC

Remove a molecule from the scene.

save_blendC

Save a copy of the current scene as a .blend file.

execute_blender_pythonA

Run Python inside Blender for anything the other tools do not cover (custom lighting, node tweaks, animation). Available names: bpy, mn (Molecular Nodes), mg (Molecular Nodes geometry nodes), get_molecule(name). Assign to result or print() to return output. Prefer the dedicated tools when they fit.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.6/5.0

Scored across 13 tools

Disambiguation5/5

Each tool targets a distinct resource+action: scene inspection, structure acquisition (fetch_structure by ID vs load_file from disk, clearly differentiated), style layer lifecycle (add/remove/clear), camera, background, render settings, render, save, and delete. The only potential overlap is execute_blender_python as a catch-all escape hatch, but its description explicitly says to prefer the dedicated tools, so boundaries stay clear.

Naming Consistency5/5

All 13 names follow a strict verb_noun snake_case pattern (get_scene_info, add_style, remove_style, clear_styles, set_background, render_image, fetch_structure, load_file). No camelCase or vague bare verbs anywhere in the set.

Tool Count5/5

13 tools sits squarely in the well-scoped range and each one maps to a real step in the molecular-visualization workflow: load, style, frame, light/background, render, save. Nothing feels redundant or padded.

Completeness4/5

The domain lifecycle is well covered — acquisition (fetch/load), styling with layered add/remove/clear, camera framing, background, render settings, rendering, saving and deletion — with execute_blender_python as a safety net. Minor gaps remain around exporting to non-.blend formats, transforming/duplicating molecules, and scene-level lighting controls being only partially exposed (via background or Python).

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues