Agent-native molecular visualization: an MCP server driving a Mol* viewer
Critical failures across all dimensions. Tool definitions are inferred from a reference document (docs/generate/tool_reference.py) rather than visible in actual server code. No input schemas are visible in the provided source. Descriptions are present but extremely brief (5-15 chars average), far below the 50-200 char LLM-optimized baseline. No parameter documentation visible. No output schemas documented. No error handling guidance. The server exposes 69 tools with minimal structure, this is a documentation-generation artifact, not a production-grade MCP implementation.
Set the background
Generate a boiling animation
Apply brushwork/hatching effects
Report the live value lists for representations, colour themes, size themes, lighting rigs, shading styles, material finishes, gradients, presets and path-trace quality
Clear the viewer
Color a selection
Color by conservation score
No input schemas visible for any of 69 tools. Tool definitions appear to be generated documentation rather than actual MCP tool registrations with JSON Schema. Cannot verify parameter types, constraints, or required fields.
Descriptions are uniformly brief (5-20 characters), far below the 50-200 char LLM-optimized baseline. Examples: 'Launch the browser viewer' (24 chars), 'Clear the viewer' (15 chars), 'Make a selection' (15 chars). These lack context for LLM tool selection and do not explain WHEN to use each tool vs similar alternatives.
No parameter documentation visible. Tools like 'color', 'size', 'opacity', 'select', 'combine' have no visible descriptions of what parameters they accept, their types, constraints, or valid values. LLMs cannot infer parameter meaning from names alone.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
Color by electrostatic potential
Color by RMSF
Combine selections
Calculate conservation scores
One-call view for conservation
One-call view for crosslink
Define custom elements
Define a custom field for coloring
Set visual effects
One-call view for electrostatic
Calculate electrostatic potential
Load molecules into the viewer
Focus the camera on a selection
Set the current trajectory frame
Hide a selection
Analyze protein-protein interface
One-call view for interface
Invert a selection
Display an isosurface
Set a keyframe for animation
Label a selection
Set the camera lens
One-call view for ligand
Set the lighting
List all keyframes
List all selections
List all loaded volumes
Load a saved session
Load a molecular dynamics trajectory
Load a volumetric density map
Set the material finish
Measure distances or angles
Generate a movie
One-call view for mutation
Select atoms near a selection
Set the opacity of a selection
Launch the browser viewer
Orient the camera
Enable/disable path tracing
One-call view for pharmacophore
One-call view for pocket
Apply a style preset
Record a timeline animation
Record a trajectory animation
Remove a selection
Remove a volume
Reset the camera view
Calculate RMSD series
Calculate root mean square fluctuation
Calculate solvent-accessible surface area
Save the current session
Take a screenshot
Make a selection
Set the shading style
Show a selection
Set the size of a selection
Take a high-quality snapshot
Spin the view
Superpose structures
Generate a turntable animation
Unhide a selection
Get information about a volume
No output schemas documented. Tools return unspecified results. LLMs cannot plan downstream tool calls or extract required fields (e.g., does 'list_selections' return selection IDs needed by 'color'? What fields does 'interface' return?).
Tool definitions inferred from reference document, not visible in actual server code (src/protean_mcp/server.py not provided). This is a documentation artifact, not a production MCP implementation.