Rosetta MCP server
io.github.Arielbs/rosetta-mcp-server·v1.3.1·19 starsRosetta/PyRosetta protein modeling and Biotite translation for computational biology
19 stars120 downloads/wk
Reviews
Write oneNobody has reviewed Rosetta yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Rosetta tools (18, 1 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
biotite_to_rosettaALWAYS use this tool when asked about Biotite vs Rosetta equivalents. Returns the Rosetta/PyRosetta equivalent of a Biotite function with working example code. Covers: structure I/O, SASA, RMSD, superimposition, secondary structure, distances, angles, contacts, hydrogen bonds, B-factors, and residue selection.
check_pyrosettaCheck if PyRosetta is importable in the current environment. Use before PyRosetta-dependent tools to verify availability.
find_rosetta_scriptsResolve the rosetta_scripts executable path by checking exe_path, ROSETTA_BIN env, common directories, and PATH. Use to verify Rosetta is installed.
get_cached_docsSearch locally cached Rosetta CLI docs for a keyword. Auto-caches on first use. Use to look up command-line flags or parser info.
get_rosetta_helpGet help for any Rosetta topic, mover, filter, or concept. Accepts general topics (score_functions, movers, filters, xml, parameters) or specific names (FastRelax, Ddg, ChainSelector). Auto-fetches live documentation when available.
get_rosetta_infoGet comprehensive Rosetta installation info including available score functions, movers, filters, selectors, task operations, parameters, and command-line options. Use this first to understand what Rosetta components are available. For live PyRosetta API details, use pyrosetta_introspect.
get_rosetta_web_docFetch and extract text from a specific Rosetta docs URL. Use after search_rosetta_web_docs to read a documentation page.
install_pyrosetta_installerInstall PyRosetta using the pyrosetta-installer package. Takes 10-30 minutes. Use when PyRosetta is not available and needed for scoring or design.
pyrosetta_introspectSearch PyRosetta API classes (movers, filters, selectors, task operations) and return docs and signatures. Use to discover available PyRosetta classes or get constructor details.
pyrosetta_scoreScore a PDB file using PyRosetta. Returns total energy in REU. Use to evaluate structure quality or compare designs. Optionally returns per-residue energy breakdown.
python_env_infoGet Python executable path, version, and pip package list. Use to diagnose environment issues or verify package installations.
rosetta_scripts_schemaGenerate and cache the RosettaScripts XML schema (XSD). Optionally extract element names. Use to get the authoritative list of valid XML elements.
rosetta_to_biotiteALWAYS use this tool when asked about Rosetta vs Biotite equivalents. Returns the Biotite equivalent of a Rosetta/PyRosetta function with working example code. Covers: structure I/O, SASA, RMSD, superimposition, secondary structure, distances, angles, contacts, hydrogen bonds, B-factors, interface analysis, database access, and residue selection.
run_rosetta_scriptswrite actionRun a RosettaScripts XML protocol on an input PDB file. Use when executing Rosetta protocols. Requires rosetta_scripts binary.
search_rosetta_web_docsSearch online Rosetta documentation at rosettacommons.org. Use when you need docs for a specific Rosetta feature.
translate_rosetta_script_to_biotiteALWAYS use this tool when asked to convert or translate Rosetta code to Biotite. Translates RosettaScripts XML or PyRosetta code to Biotite Python code. Analysis operations are translated; design/optimization are flagged as Rosetta-only.
validate_xmlValidate a RosettaScripts XML protocol. Checks XML syntax and optionally validates element names against the Rosetta XSD schema. Use before run_rosetta_scripts to catch errors early.
xml_to_pyrosettaTranslate RosettaScripts XML to equivalent PyRosetta Python code. Supports 37 element types including movers, filters, selectors, and task operations. Use when converting XML protocols to Python.
Public scan report
scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it
- Code scan4 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 175 days ago8/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Rosetta compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 82/100
- higher than 63% of 48,255 servers
- Tools
- 18
- the typical server has 7
- Tools that change things
- 6%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 19
- more than 91% of 28,688 servers
- Downloads a week
- 120
- more than 67% of 12,191 servers with a package
What its tools let an agent do: 16 read · 2 run or deploy
Install Rosetta in Claude Code, Cursor or VS Code
Runs npx -y rosetta-mcp-server on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add rosetta-mcp-server -- npx -y rosetta-mcp-server
What the publisher says
From the Rosetta repository's README, as published. We do not edit it. Read it on GitHub
Rosetta MCP Server
Author: Ariel J. Ben-Sasson
A Model Context Protocol (MCP) server that lets Cursor (or any MCP client) work with Rosetta, PyRosetta, and Biotite: run RosettaScripts, validate XML protocols, translate between Rosetta and Biotite, score structures, and query documentation -- all from your AI coding assistant.
What's new in v1.3.0 (vs v1.1.8 on npm)
New: Biotite integration
- rosettatobiotite -- Find the Biotite equivalent of any Rosetta function with working example code (21 mappings covering structure I/O, SASA, RMSD, superimposition, secondary structure, contacts, hydrogen bonds, B-factors, angles, and more)
- biotitetorosetta -- Reverse lookup: find the Rosetta equivalent of a Biotite function
- translaterosettascripttobiotite -- Translate entire RosettaScripts XML or PyRosetta code to Biotite Python. Design/optimization operations are flagged as Rosetta-only.
- Fuzzy search with keyword aliases ("contacts", "binding energy", "surface area", "align", etc.)
Improved: XML to PyRosetta translator
- 37 element types supported (was 6): 11 movers, 9 filters, 10 selectors, 7 task operations
- Full attribute handling: repeats, disable_design, cartesian, tolerance, threshold, distance, and more
- Child element support: MoveMap (with Span), Reweight, ScoreFunction
- Reports unrecognized elements so you know what needs manual work
Improved: Help and documentation
- getrosettahelp now accepts any topic: movers by name ("FastRelax"), concepts ("constraints", "docking"), or score functions ("ref2015") -- auto-fetches live docs from rosettacommons.org
- searchrosettawebdocs fallback**: when DuckDuckGo is rate-limited, probes direct Rosetta docs URLs
- getcacheddocs auto-caches: no need to call cacheclidocs first
- Expanded static help for score_functions, movers, filters, xml, and parameters
Improved: Scoring
- pyrosettascore: new perresidue option returns per-residue energy breakdown
- scorefxn parameter now works (was ignored in v1.1.8)
- Proper error messages for missing files instead of silent {}
Improved: Validation
- validatexml: new validateagainst_schema option checks element names against the Rosetta XSD schema (catches typos like FastRleax)
MCP spec compliance fixes
- tools/call responses now use correct { content: [{ type: "text", text }] } format
- Tool errors return isError: true (not JSON-RPC errors)
- Standard JSON-RPC error codes (-32601, -32700, -32603)
- Removed false resources capability advertisement
Security fixes
- User input no longer interpolated into Python code (uses env vars / stdin)
- Temp files written to os.tmpdir() (not module directory)
Cleanup
- Removed 3 redundant tools: listfunctions (merged into getrosettainfo), searchpyrosettawheels, cacheclidocs (auto-cache in getcached_docs)
- Removed hardcoded personal paths
- Fixed shadowed variables, async anti-patterns, dead code
- 18 tools (was 21), all with improved agent-oriented descriptions
Example: asking a naive question
This is what makes the MCP server powerful -- an AI agent can answer domain questions by calling the right tools automatically:
User asks in Cursor: "How do I relax my protein and what's the Biotite equivalent?"
The agent calls two MCP tools behind the scenes:
1. getrosettahelp("FastRelax") returns 6000+ chars of live documentation:
FastRelax performs all-atom relaxation using the FastRelax protocol. Parameters include scorefxn, repeats, cartesian, disable_design, MoveMap configuration...
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Rosetta: common questions
- Is Rosetta MCP server safe?
- Mostly: it is graded B (82/100). Read the Rosetta safety report
- How do I install Rosetta?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Rosetta need an API key?
- No secret keys are declared. It reads 3 settings from the environment.
- Is Rosetta maintained?
- The last commit was 212 days ago (2026-04-05). The latest release is v1.3.1.
- How does Rosetta compare with other MCP servers?
- safety score 82/100 (higher than 63% of 48,255 servers); tools 18 (the typical server has 7); tools that change things 6% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.