MCP server for Rosetta/PyRosetta functions and properties. Provides expert-level protein modeling tools, structure analysis, translation between Rosetta and Biotite, and comprehensive documentation search.
This server has significant definition quality gaps. While 19 tools are present with descriptions, they fall well below production standards. Most descriptions are moderate (50-150 chars) but lack specificity about prerequisites, return structure, and error cases. Input schemas are present but minimal, most tools accept 1-2 parameters with basic type info. Critical issues: (1) No output schemas documented anywhere, LLMs cannot plan downstream calls or extract needed fields; (2) Parameter descriptions are generic and lack constraints (e.g., 'Script content to execute' tells nothing about format, size limits, or timeout behavior); (3) No error recovery guidance, tools like 'run_rosetta_scripts' and 'install_pyrosetta_installer' are WRITE operations with no confirmation, dry-run, or undo guidance; (4) Two WRITE tools lack destructive/idempotent annotations; (5) No tool name clarity issues detected, but descriptions are too terse to guide LLM selection confidently. The server appears functional for discovery and read-only queries but unsafe for mutations without better error handling and output documentation.
Find equivalent Rosetta/PyRosetta functions for given Biotite functions
Check PyRosetta installation status and version
Find example Rosetta scripts and protocols in the documentation or examples directory
Retrieve cached Rosetta documentation from the local docs_cache directory
Get instructions for setting up a local Rosetta MCP server installation with PyRosetta
Get help for specific Rosetta topics including score functions, movers, filters, XML protocols, and parameters
Get comprehensive Rosetta information including available score functions, movers, filters, residue selectors, task operations, parameters, XML protocols, and command line options
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. Every tool should document what it returns (field names, types, structure).
WRITE tools (run_rosetta_scripts, install_pyrosetta_installer) lack error recovery guidance, dry-run support, and confirmation prompts. No documentation of what happens on failure, whether operations are idempotent, or how to undo them.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 52 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 36 | - | v1 |
Fetch and parse content from a Rosetta documentation URL
Install the pyrosetta-installer tool to enable PyRosetta installation
Introspect PyRosetta modules and classes to get available methods and properties
Score a protein structure using PyRosetta scoring functions
Get information about the current Python environment including installed packages and paths
Get the schema for Rosetta XML scripts including available tags, attributes, and valid values
Find equivalent Biotite functions and classes for given Rosetta/PyRosetta functions
Execute Rosetta XML protocol scripts or PyRosetta code snippets
Search Rosetta web documentation for relevant topics and functions
Convert Rosetta/PyRosetta code snippets to equivalent Biotite code
Validate Rosetta XML protocol files for well-formedness and optionally against schema
Convert Rosetta XML protocol to equivalent PyRosetta Python code
Parameter descriptions are generic and lack constraints. E.g., 'Script content to execute' tells nothing about format (XML? Python? Both?), max size, timeout behavior, or what constitutes a valid script. Constraints should be explicit in descriptions.
Tool annotations are absent. No readOnlyHint, destructiveHint, or idempotentHint declared. Without these, agents cannot reason about whether a tool is safe to retry or whether it mutates state.
Descriptions for several tools are below 50 characters (get_local_setup: 'Get instructions...', check_pyrosetta: 'Check PyRosetta...', python_env_info: 'Get information...'), making them too generic for confident LLM tool selection. Expand to 80-150 chars with WHEN to use and WHAT to expect.
Parameters like 'score_function' in pyrosetta_score accept a free-form string ('ref2015', 'ref15', 'talaris2014') but are not declared as enums. LLMs will hallucinate invalid function names. Convert to proper enum constraints.
No pagination or result-limiting guidance for discovery tools like search_rosetta_web_docs. If max_results defaults or is uncapped, large result sets blow the context window. Enforce a reasonable ceiling (e.g., 20) in the description.
Error handling is absent from descriptions. No guidance on what errors are retryable, what requires user intervention, or what to do if PyRosetta is not installed. run_rosetta_scripts description should hint: 'If PyRosetta is not installed, call check_pyrosetta() then install_pyrosetta_installer().'