gRNAde MCP服务器
MCP服务器提供用于RNA结构分析、序列评估、逆向设计和使用gRNAde(几何RNA设计)进行批处理的工具。
安装
先决条件
# Ensure dependencies are installed
pip install fastmcp loguru使用Claude Code CLI安装(推荐)
- 导航到MCP目录:
cd /path/to/grnade_mcp- 注册MCP服务器:
claude mcp add geometric-rna-design -- python $(pwd)/src/server.py- 验证安装:
claude mcp list | grep geometric-rna-design
# Should show: geometric-rna-design: ... - ✓ Connected- 开始使用:
claude
# In Claude: "What tools are available from geometric-rna-design?"替代方案:克劳德桌面
增添 ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"geometric-rna-design": {
"command": "python",
"args": ["/absolute/path/to/grnade_mcp/src/server.py"]
}
}
}替代方案:其他MCP客户端
{
"mcpServers": {
"geometric-rna-design": {
"command": "python",
"args": ["/absolute/path/to/src/server.py"],
"env": {
"PYTHONPATH": "/absolute/path/to/grnade_mcp"
}
}
}
}可用工具
快速操作(同步API)
这些工具会立即返回结果:
| 工具 | 描述 | 运行时 |
|---|---|---|
analyze_rna_structure | 分析RNA二级结构和统计 | ~30秒 |
evaluate_rna_sequences | 使用计算度量评估序列 | ~2分钟 |
validate_rna_inputs | 验证RNA序列和结构 | ~1秒 |
get_example_data | 获取示例数据集和使用示例 | ~1秒 |
长期运行任务(提交API)
这些工具返回job_id进行跟踪:
| 工具 | 描述 | 运行时 |
|---|---|---|
submit_rna_inverse_design | 从结构中生成RNA序列 | >10分钟 |
submit_batch_rna_pipeline | 高通量多目标流水线 | >30分钟 |
submit_batch_rna_evaluation | 序列集批量评估 | >10分钟 |
作业管理
| 工具 | 说明 |
|---|---|
get_job_status | 检查作业进度 |
get_job_result | 完成后获取结果 |
get_job_log | 查看执行日志 |
cancel_job | 取消正在运行的作业 |
list_jobs | 列出所有作业 |
工作流示例
快速分析(同步)
Use the analyze_rna_structure tool with secondary_structure "(((...)))"长期运行设计(异步)
1. Submit: Use submit_rna_inverse_design with secondary_structure "(((...)))" and mode "2d"
→ Returns: {"job_id": "abc123", "status": "submitted"}
2. Check: Use get_job_status with job_id "abc123"
→ Returns: {"status": "running", ...}
3. Get result: Use get_job_result with job_id "abc123"
→ Returns: {"status": "success", "result": {"sequences": [...], ...}}批处理
Use submit_batch_rna_pipeline with targets_file "targets.csv" and output_dir "results/batch"
→ Processes multiple targets in a single job发展
# Run tests
mamba run -p ./env python test_mcp.py
mamba run -p ./env python test_jobs.py
# Test server
mamba run -p ./env python src/server.py --help
# Test with MCP inspector
npx @anthropic/mcp-inspector src/server.py工具详细信息
分析rna结构
分析RNA二级结构特性和统计数据。 完全独立的工具 -没有外部依赖。
参数:
secondary_structure(str,可选):用点括号表示的二级结构sequence(str,可选):用于预测的RNA序列predict_structure(bool,可选):是否从序列预测结构output_file(str,可选):将结果保存为JSON的路径verbose(bool,可选):包括详细输出
例子:
analyze_rna_structure(secondary_structure="(((...)))")
analyze_rna_structure(sequence="GGGAAACCC", predict_structure=True)evaluate_rna_sequences
使用计算指标评估RNA序列。 优雅的回退 当模型不可用时,进行基本统计。
参数:
sequences(List\[str\]或str):RNA序列或逗号分隔的字符串target_structure(str):用点括号表示的目标二级结构output_file(str,可选):将结果保存为CSV的路径use_basic_stats(bool):是否使用基本统计模式verbose(bool):包括详细的输出
例子:
evaluate_rna_sequences(["GGGAAACCC", "AUCGAUCG"], "(((...)))")
evaluate_rna_sequences("GGGAAACCC,AUCGAUCG", "(((...)))")submit_rna_inverse_design
提交RNA逆向设计以进行背景处理。使用gRNAde模型生成折叠成指定2D/3D结构的RNA序列。
参数:
secondary_structure(str,可选):2D模式的二级结构pdb_file(str,可选):3D模式的PDB文件路径mode(str):设计模式-“2d”或“3d”n_designs(int):要生成的序列数partial_seq(str,可选):部分序列约束temperature_min(浮子):最低取样温度temperature_max(浮子):最高取样温度output_dir(str,可选):保存输出的目录job_name(str,可选):自定义作业名称
例子:
submit_rna_inverse_design(secondary_structure="(((...)))", mode="2d", n_designs=20)
submit_rna_inverse_design(pdb_file="structure.pdb", mode="3d", n_designs=50)submit_batch_rna_pipeline
提交针对多个靶标的批量RNA设计流程。通过评估和过滤进行高通量RNA设计。
参数:
targets_file(str,可选):带目标的CSV文件的路径pdb_dir(str,可选):包含PDB文件的目录targets(List\[str\],可选):目标词典列表output_dir(str,可选):输出目录n_designs_per_target(int):每个目标的序列数max_workers(int,可选):最大并行工作者数enable_evaluation(bool):是否运行评估阶段enable_filtering(bool):是否运行过滤阶段max_results_per_target(int):每个目标要保留的最大结果job_name(str,可选):自定义作业名称
例子:
submit_batch_rna_pipeline(targets_file="targets.csv", output_dir="results/batch", n_designs_per_target=100)validate_rna_inputs
在处理之前验证RNA输入。
参数:
sequence(str,可选):要验证的RNA序列secondary_structure(str,可选):要验证的二级结构pdb_file(str,可选):要验证的PDB文件路径
例子:
validate_rna_inputs(sequence="GGGAAACCC", secondary_structure="(((...)))")get_example_data
获取有关可用示例数据集的信息以进行测试。
例子:
get_example_data()文件结构
src/
├── server.py # Main MCP server
├── jobs/
│ ├── __init__.py
│ └── manager.py # Job management system
├── test_mcp.py # MCP tools tests
└── test_jobs.py # Job system tests
jobs/ # Job execution directory
├── / # Individual job directories
│ ├── metadata.json # Job metadata
│ ├── job.log # Execution logs
│ └── output.json # Results
scripts/ # Clean scripts from Step 5
├── lib/ # Shared utilities
├── rna_structure_analysis.py # ✅ Fully independent
├── rna_evaluation.py # ⚠️ Graceful fallback
├── rna_inverse_design.py # ⚠️ Requires gRNAde models
└── batch_rna_pipeline.py # ⚠️ Depends on others
configs/ # Configuration files
└── *.json # Per-script configurations依赖项
必需
fastmcp>=2.14.1-MCP服务器框架loguru>=0.7.3-日志记录numpy-科学计算pandas-数据操纵
可选(用于高级功能)
torch-深度学习(用于gRNAde模型)- 各种RNA分析包(实现了优雅的回退)
API设计
服务器实现了 API双重设计:
同步API(\10分钟操作)
- submit_rna_inverse_design:RNA生成(>10分钟)
- submit_batch_rna_pipeline:批量处理(>30分钟)
作业管理
所有提交操作都返回一个 job_id 用于跟踪:
- 提交:获取job_id
- 监视器:使用
get_job_status(job_id) - 检索:使用
get_job_result(job_id)完成时 - 调试:使用
get_job_log(job_id)用于执行日志
测试
# Test all MCP tools
mamba run -p ./env python test_mcp.py
# Test job management
mamba run -p ./env python test_jobs.py
# Test server startup
mamba run -p ./env python src/server.py --help特性
- 稳健的作业管理:持久作业、实时监控、取消支持
- 故障弱化:即使没有完整的模型设置,也能正常工作
- API双重设计:同步用于快速操作,提交用于长时间操作
- 生产就绪:全面的错误处理,结构化的响应
- 测试良好:100%自动化测试覆盖率
状态
- ✅ 准备生产:立即进行结构分析和基础评估工作
- ✅ 易于集成:与Claude Desktop和fastmcp CLI配合使用
- ✅ 可扩展设计:作业系统处理大规模处理
- ⚠️ 需要模型设置:高级功能需要gRNAde模型配置
有关完整文档,请参阅 reports/step6_mcp_tools.md.
故障排除
服务器无法启动
# Check syntax and imports
python -m py_compile src/server.py
python -c "from src.server import mcp; print('✅ OK')"
# Check dependencies
pip list | grep -E "fastmcp|loguru"在Claude中找不到工具
# Verify registration
claude mcp list | grep geometric-rna-design
# Re-register if needed
claude mcp remove geometric-rna-design
claude mcp add geometric-rna-design -- python $(pwd)/src/server.py工作悬而未决
# Check job directory
ls -la jobs/
# View job logs
cat jobs/[job_id]/job.log
# Check job manager
python -c "from src.jobs.manager import job_manager; print(job_manager.list_jobs())"端口冲突(FastMCP开发模式)
# Kill process using port
lsof -ti :6277 | xargs kill
# Or run with different port
FASTMCP_PORT=8080 fastmcp dev src/server.py路径解决问题
- 在配置中使用绝对路径
- 确保PYTHONPATH包括项目根
- 检查输入/输出目录的文件权限
测试
快速验证
# Run automated integration tests
python tests/run_integration_tests.py
# Manual test with Claude
claude
"What tools are available from geometric-rna-design?"
"Analyze the RNA structure in examples/data/structures/8t2p_A.pdb"完整测试套件
看 tests/test_prompts.md 用于综合测试场景,包括:
- 工具发现和参数验证
- 同步工具执行
- 异步作业工作流
- 错误处理和边缘情况
- 端到端的现实场景
