Puter MCP
Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Rosetta/PyRosetta protein modeling and Biotite translation for computational biology
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ROSETTA_BIN, PYTHON_BIN, MCP_DEBUGต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"rosetta": {
"command": "npx",
"args": [
"-y",
"rosetta-mcp-server"
],
"env": {
"ROSETTA_BIN": "ใส่ค่าของคุณ",
"PYTHON_BIN": "ใส่ค่าของคุณ",
"MCP_DEBUG": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add rosetta --env ROSETTA_BIN='ใส่ค่าของคุณ' --env PYTHON_BIN='ใส่ค่าของคุณ' --env MCP_DEBUG='ใส่ค่าของคุณ' -- npx -y rosetta-mcp-serverเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"rosetta": {
"command": "npx",
"args": [
"-y",
"rosetta-mcp-server"
],
"env": {
"ROSETTA_BIN": "ใส่ค่าของคุณ",
"PYTHON_BIN": "ใส่ค่าของคุณ",
"MCP_DEBUG": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"rosetta": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"rosetta-mcp-server"
],
"env": {
"ROSETTA_BIN": "ใส่ค่าของคุณ",
"PYTHON_BIN": "ใส่ค่าของคุณ",
"MCP_DEBUG": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ROSETTA_BIN envPYTHON_BIN envMCP_DEBUG envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ดูจากแบบการต่อของ server ตัวนี้ และเอกสารของผู้ทำโปรแกรมแต่ละตัว ตรวจเมื่อ 10 พ.ย. 2569
ติดตั้งบนเครื่องได้ใน
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 10 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub Arielbs ซึ่งเป็นเจ้าของ repo
แก้โค้ดล่าสุด 7 เดือนที่ผ่านมา นานกว่า 6 เดือน
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 2 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด 7 เดือนที่ผ่านมา และส่งรุ่นล่าสุด (1.3.1) เข้า registry 7 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Puter MCP, Agent-Native Slides, Agent-Native Forms
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
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.
repeats, disable_design, cartesian, tolerance, threshold, distance, and moreMoveMap (with Span), Reweight, ScoreFunctioncache_cli_docs firstper_residue option returns per-residue energy breakdown{}validate_against_schema option checks element names against the Rosetta XSD schema (catches typos like FastRleax)tools/call responses now use correct { content: [{ type: "text", text }] } formatisError: true (not JSON-RPC errors)resources capability advertisementos.tmpdir() (not module directory)list_functions (merged into get_rosetta_info), search_pyrosetta_wheels, cache_cli_docs (auto-cache in get_cached_docs)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. `get_rosetta_help("FastRelax")` returns 6000+ chars of live documentation:
FastRelax performs all-atom relaxation using the FastRelax protocol. Parameters include
scorefxn,repeats,cartesian,disable_design,MoveMapconfiguration...
2. `rosetta_to_biotite("FastRelax")` returns:
{
"found": true, "results": [{ "rosetta": { "name": "FastRelax", "example": ["relax = FastRelax()", "relax.set_scorefxn(get_score_function('ref2015'))", "relax.apply(pose)"] }, "biotite": null, "equivalence": "none_from_biotite", "notes": "Biotite does NOT perform structure optimization. These are Rosetta-specific capabilities." }] }
The agent synthesizes: *"FastRelax is Rosetta's all-atom relaxation protocol. Here's how to use it... Note: Biotite is analysis-only and has no equivalent -- you need PyRosetta for structure optimization."*
Without the MCP, the agent would guess from training data and likely get parameter names or API signatures wrong.
| Tool | Description |
|---|---|
get_rosetta_info | All available score functions, movers, filters, selectors, parameters |
get_rosetta_help | Help for any topic -- accepts mover names, concepts, or score functions |
pyrosetta_introspect | Live PyRosetta API search with docs and signatures |
| Tool | Description |
|---|---|
search_rosetta_web_docs | Search rosettacommons.org documentation |
get_rosetta_web_doc | Fetch and read a specific docs page |
get_cached_docs | Search cached CLI help (auto-caches on first use) |
| Tool | Description |
|---|---|
run_rosetta_scripts | Run a RosettaScripts XML protocol on a PDB |
pyrosetta_score | Score a PDB with optional per-residue breakdown |
| Tool | Description |
|---|---|
xml_to_pyrosetta | XML to PyRosetta Python (37 element types) |
rosetta_to_biotite | Find Biotite equivalent of a Rosetta function |
biotite_to_rosetta | Find Rosetta equivalent of a Biotite function |
translate_rosetta_script_to_biotite | Translate full scripts from Rosetta to Biotite |
| Tool | Description |
|---|---|
validate_xml | Check XML syntax + optional schema validation |
rosetta_scripts_schema | Generate XSD schema and extract element names |
| Tool | Description |
|---|---|
python_env_info | Python version and installed packages |
check_pyrosetta | Verify PyRosetta is available |
install_pyrosetta_installer | Auto-install PyRosetta (10-30 min) |
find_rosetta_scripts | Locate the rosetta_scripts binary |
npm install -g rosetta-mcp-server
# Create a venv with PyRosetta and Biotite
uv venv ~/.venvs/rosetta-mcp ~/.venvs/rosetta-mcp/bin/pip install pyrosetta-installer biotite ~/.venvs/rosetta-mcp/bin/python -c "import pyrosetta_installer as I; I.install_pyrosetta()"
Or skip this step -- PyRosetta auto-installs on first use (takes 10-30 min).
Cursor (~/.cursor/mcp.json):
{
"mcpServers": { "rosetta": { "command": "rosetta-mcp-server", "args": [], "env": { "ROSETTA_BIN": "/path/to/rosetta_scripts.default.macosclangrelease", "PYTHON_BIN": "/path/to/.venvs/rosetta-mcp/bin/python" } } } }
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": { "rosetta": { "command": "rosetta-mcp-server", "env": { "ROSETTA_BIN": "/path/to/rosetta_scripts.default.macosclangrelease", "PYTHON_BIN": "/path/to/.venvs/rosetta-mcp/bin/python" } } } }
Environment variables:
| Variable | Required | Description |
|---|---|---|
ROSETTA_BIN | No | Path to rosetta_scripts binary or its directory. If not set, searches common paths and PATH. |
PYTHON_BIN | No | Python interpreter with PyRosetta/Biotite. Defaults to python3. |
MCP_DEBUG | No | Set to 1 for debug logging to stderr. |
Open Settings -> MCP. The "rosetta" server should appear green with 18 tools.
Input XML:
<ROSETTASCRIPTS>
Generated PyRosetta code:
import pyrosetta
from pyrosetta import pose_from_pdb from pyrosetta.rosetta.core.scoring import get_score_function from pyrosetta.rosetta.core.select.residue_selector import * from pyrosetta.rosetta.protocols.relax import *
pyrosetta.init("-mute all")
pose = pose_from_pdb("your_protein.pdb")
chainSelector = ChainSelector() chainSelector.set_chain_strings("A")
fastRelax = FastRelax() fastRelax.set_scorefxn(get_score_function("ref")) fastRelax.set_default_repeats(5) fastRelax.cartesian(True)
sfxn = get_score_function("ref2015")
fastRelax.apply(pose)
pose.dump_pdb("output.pdb") score = pose.energies().total_energy() print(f"Final score: {score}")
| Category | Rosetta | Biotite | Equivalence |
|---|---|---|---|
| Structure I/O | pose_from_pdb | PDBFile.read | Full |
| Structure I/O | pose.dump_pdb | PDBFile.write | Full |
| Structure I/O | pose_from_file (CIF) | CIFFile.read | Full |
| Surface Analysis | SasaMetric | biotite.structure.sasa | Full |
| Alignment | SuperimposeMover | biotite.structure.superimpose | Full |
| RMSD | all_atom_rmsd | biotite.structure.rmsd | Full |
| Secondary Structure | DsspMover | annotate_sse | Partial |
| Sequence | pose.sequence() | get_residues | Full |
| Distance | AtomPairConstraint | biotite.structure.distance | Full |
| Angles | pose.phi/psi/omega | biotite.structure.dihedral | Full |
| Interface | InterfaceAnalyzerMover | sasa + selection | Partial |
| Database | rcsb.pose_from_rcsb | rcsb.fetch | Full |
| Selection | ChainSelector etc. | numpy boolean indexing | Full |
| Contacts | distance matrices | CellList | Partial |
| Ramachandran | pose.phi/psi | dihedral_backbone | Partial |
| H-bonds | HBondSet | biotite.structure.hbond | Partial |
| B-factors | pdb_info().bfactor | AtomArray.b_factor | Full |
| Center of Mass | center_of_mass | mass_center | Full |
| Scoring | ScoreFunction | *None* | Rosetta only |
| Optimization | FastRelax | *None* | Rosetta only |
| Design | FastDesign | *None* | Rosetta only |
/opt/homebrew/bin/rosetta-mcp-server). Ensure Node 14+ and Python 3.8+.ROSETTA_BIN points to a valid binary. Try "$ROSETTA_BIN" -help.pip install pyrosetta-installer then run the installer, or let the MCP server auto-install on first use.pip install biotite# Check version
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05"}}' | rosetta-mcp-server 2>/dev/null | python3 -c "import sys,json; print(json.loads(sys.stdin.readline())'result')"
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | rosetta-mcp-server 2>/dev/null | python3 -c "import sys,json; [print(t['name']) for t in json.loads(sys.stdin.readline())'result']"
rosetta-mcp-server/
├── rosetta_mcp_wrapper.js # Node MCP server (protocol + all 18 tools) ├── rosetta_mcp_server.py # Python helper (static Rosetta data)