RELION MCP Server

RELION MCP Server

Enables AI agents to control RELION 5.x cryo-EM structure determination software through natural language, providing 23 tools for the complete single-particle analysis pipeline.

Category
访问服务器

README

RELION MCP Server v3

An MCP (Model Context Protocol) server that lets AI agents drive RELION 5.x — the gold-standard software for cryo-EM structure determination.

Tested and verified against RELION 5.0.1 on Ubuntu 24.04 (WSL2). All CLI flags validated against actual --help output.

What It Does

An AI agent (Claude Code, OpenClaw, NemoClaw, etc.) can process cryo-EM data through natural language:

You: "Import the movies from Movies/*.tiff, 200 kV, pixel size 0.885 Å, then run motion correction"
Agent: → relion_import(..., confirm=False)  → shows parameter preview
You: "Looks good, launch it"
Agent: → relion_import(..., confirm=True)   → job runs (instant)
       → relion_motioncorr(..., confirm=False) → preview
You: "Ok go"
Agent: → relion_motioncorr(..., confirm=True) → 🚀 Launched (PID 12345)
       → relion_job_status("MotionCorr/job001") → 🔄 RUNNING
       → relion_job_status("MotionCorr/job001") → ✅ COMPLETED

The server exposes 23 tools covering the complete single-particle analysis pipeline.

Key Features

1. Preview Before Launch

Every pipeline tool: confirm=False shows all parameters (✏️ user / 📋 tutorial default / ❌ missing / ⬜ optional), confirm=True launches the job.

2. Non-Blocking Background Execution

All long-running jobs launch via detached Popen and return immediately with PID. Monitor with relion_job_status and relion_job_logs.

3. GPU Support

Class2D, InitialModel, Class3D, and Refine3D all expose --gpu for GPU acceleration.

4. Blush Regularisation

RELION 5's neural-network prior is available on Class3D and Refine3D via use_blush=True.

5. VDAM Algorithm

Class2D and InitialModel support the VDAM gradient algorithm via use_vdam=True, with MPI=1 validation.

6. Live Flag Discovery

relion_help runs relion_* --help in real time with keyword filtering.

Architecture

AI Agent (Claude Code / OpenClaw / NemoClaw)
    │
    │  stdio or HTTP
    ▼
RELION MCP Server v3 (Python)
    │
    │  Popen (detached)        subprocess.run (short jobs)
    ▼                          ▼
RELION 5.x binaries        relion_import, relion_help
(background, non-blocking)  (synchronous, fast)

Tools

Pipeline Tools (16 tools — all with preview/confirm)

Tool Binary
relion_import relion_import
relion_motioncorr relion_run_motioncorr
relion_ctffind relion_run_ctffind
relion_autopick relion_autopick
relion_extract relion_preprocess
relion_class2d relion_refine
relion_initial_model relion_refine --denovo_3dref
relion_class3d relion_refine
relion_refine3d relion_refine
relion_mask_create relion_mask_create
relion_postprocess relion_postprocess
relion_ctf_refine relion_ctf_refine
relion_bayesian_polishing relion_motion_refine
relion_blush relion_python_blush
relion_local_resolution relion_postprocess --locres
relion_modelangelo relion_python_modelangelo

Read-Only Tools (7 tools)

Tool Description
relion_project_info Project overview
relion_read_star Parse STAR files
relion_job_status Job status + PID detection + stderr tail
relion_job_logs Read stdout/stderr from background jobs
relion_suggest_next_step Recommend next step (14-step pipeline)
relion_run_command Run any relion_* binary (escape hatch)
relion_help Parse --help output from any RELION binary

Tutorial Defaults (EMPIAR-10204)

All defaults match the RELION 5 beta-galactosidase tutorial:

Step Key defaults
Import 200 kV, 0.885 Å, Cs 1.4, Q0 0.1
MotionCorr dose 1.277, patches 5×5, bfactor 150, float16, save_ps
CTF Box 512, 30-5 Å, dF 5000-50000, dAst 100, use_given_ps=True
AutoPick LoG, 150-180 Å, upper_threshold=5, maxres=20
Extract box 256 → 64, invert, bg_radius 200
Class2D K=50, T=2, mask 200, CTF, center
InitialModel VDAM 100 mini-batches, T=4, C1 + apply_sym_later
Class3D K=4, T=4, C1, ini_high 50, healpix 2
Refine3D D2, ini_high 50, MPI=3 (odd≥3), pool 30
Mask lowpass 15, threshold 0.01, extend 3, soft_edge 8
PostProcess auto B-factor, autob_lowres 10
CTF Refine All flags off by default (multi-pass workflow)
Polishing Train/Polish modes, sigma vel/div/acc, float16

Prerequisites

  • RELION 5.x compiled and in PATH
  • Python ≥ 3.10
  • MCP Python SDK and dependencies (see requirements.txt):
    pip install -r requirements.txt
    
    • mcp >= 1.0.0
    • pydantic >= 2.0.0
    • uvicorn >= 0.30.0 (for HTTP mode)

Installation

git clone https://github.com/kdursunnizam-art/relion-mcp-server.git
cd relion-mcp-server
pip install -r requirements.txt

Optionally, use a virtual environment (recommended for HTTP mode):

cd relion-mcp-server
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Usage

With Claude Code (recommended for local use)

stdio (local)

From your terminal:

claude mcp add-json relion '{"command":"python3","args":["/path/to/relion-mcp-server/relion_mcp.py"],"env":{"RELION_PROJECT_DIR":"/path/to/data/relion_tutorial"}}' --scope user

Verify:

claude mcp list

Remove / reconfigure:

claude mcp remove relion

Note: --scope user makes the server available in all your projects.

HTTP (remote) — EXPERIMENTAL

  1. Start the server manually in a terminal:
cd /path/to/relion-mcp-server
source venv/bin/activate
export RELION_PROJECT_DIR=/path/to/data/relion_tutorial
python relion_mcp.py --transport http --port 8000 --host 0.0.0.0

Keep this terminal open.

  1. Register the running server with Claude Code:
claude mcp add --transport http relion http://YOUR.IP.ADDRESS:8000/mcp --scope user
  1. Verify:
claude mcp list

It should show relion with the HTTP transport and URL http://YOUR.IP.ADDRESS:8000/mcp.

Then in Claude Code:

> Use relion_project_info to show the project status
> Import movies from Movies/*.tiff with pixel size 0.885, 200 kV, Cs 1.4
> Run motion correction with dose 1.277 e-/Ų/frame and gain ref Movies/gain.mrc
> Show me the Class2D parameters before running (agent calls with confirm=False)
> Change threads to 8 and launch (agent calls with confirm=True)

With Claude Desktop

Claude Desktop only supports stdio servers via manual config. Edit claude_desktop_config.json:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "relion": {
      "command": "python3",
      "args": ["/path/to/relion-mcp-server/relion_mcp.py"],
      "env": {
        "RELION_PROJECT_DIR": "/path/to/data/projet_relion",
        "RELION_THREADS": "4",
        "RELION_MPI": "1"
      }
    }
  }
}

On Windows with WSL2, set "command": "wsl" and prepend python3 to args:

{
  "mcpServers": {
    "relion": {
      "command": "wsl",
      "args": ["python3", "/home/you/relion-mcp-server/relion_mcp.py"],
      "env": { "RELION_PROJECT_DIR": "/home/you/relion_tutorial" }
    }
  }
}

Restart Claude Desktop after editing the config.

With OpenClaw / NemoClaw

stdio (local)

openclaw mcp add --transport stdio --scope user relion --cmd python3 --args "/path/to/relion-mcp-server/relion_mcp.py" --env RELION_PROJECT_DIR="/path/to/data/relion_tutorial"

Verify:

openclaw mcp list

HTTP (remote)

Start the server:

cd /path/to/relion-mcp-server
source venv/bin/activate
export RELION_PROJECT_DIR=/data/my_project
python relion_mcp.py --transport http --port 8000 --host 0.0.0.0

Register:

openclaw mcp add --transport http --scope user relion http://YOUR.IP.ADDRESS:8000/mcp

Or configure openclaw.json manually (both stdio and HTTP):

{
  "skills": {
    "install": { "nodeManager": "npm" },
    "entries": {
      "mcp-integration": {
        "enabled": true,
        "config": {
          "servers": [
            {
              "name": "relion-stdio",
              "transport": "stdio",
              "command": "python3",
              "args": ["/path/to/relion-mcp-server/relion_mcp.py"],
              "env": { "RELION_PROJECT_DIR": "/path/to/data/projet_relion" }
            },
            {
              "name": "relion-http",
              "transport": "streamable-http",
              "url": "http://YOUR.IP.ADDRESS:8000/mcp"
            }
          ],
          "toolPrefix": true
        }
      }
    }
  }
}

Configuration

Environment Variable Description Default
RELION_PROJECT_DIR RELION project directory Current directory
RELION_BIN Path prefix for RELION binaries (uses PATH)
RELION_THREADS Default thread count 4
RELION_MPI Default MPI processes 1
CLI Flag Description Default
--transport stdio or http stdio
--port HTTP port 8000
--host HTTP host (use 0.0.0.0 for remote access) 127.0.0.1
--project-dir Override RELION_PROJECT_DIR (env or cwd)

Security

  • Only relion_* executables can be run (validated)
  • No shell injection: subprocess calls do not use shell=True
  • File paths resolved relative to the project directory
  • In HTTP mode, the server binds to 127.0.0.1 by default. For remote access, set --host 0.0.0.0 (or your specific IP). Be aware this exposes the server on your network — use only on trusted networks.
  • Preview/confirm prevents accidental job launches

MCP SDK Compatibility

Designed for MCP SDK 1.26+ with these constraints:

  • No lifespan (causes crash with MCP SDK 1.26)
  • No ctx.report_progress (causes crash with MCP SDK 1.26)
  • All tool functions are async without a Context parameter
  • Passes python3 -m py_compile cleanly

Changelog

v3 (current)

  • 68 missing params added, 11 defaults fixed, 3 MPI validations
  • GPU support (--gpu) on Class2D, InitialModel, Class3D, Refine3D
  • Blush on Class3D, Refine3D
  • VDAM on Class2D, InitialModel (with MPI=1 validation)
  • Polishing fully rewritten: train/polish modes, sigma params, opt_params
  • Compute params factored: --pool, --preread_images, --scratch_dir, --skip_padding
  • 2 new tools: relion_local_resolution, relion_modelangelo
  • CTF Refine fixed: +beamtilt, +fit_phase, +minres, defaults all False
  • Mask Create defaults fixed to match tutorial
  • HTTP host/port now correctly applied from CLI flags
  • 23 tools total

v2.1

  • Background execution: long-running jobs launch via Popen(start_new_session=True) and return immediately with PID. No more agent blocking.
  • relion_job_logs: read stdout/stderr from background jobs in real time
  • relion_job_status enhanced: PID liveness detection, stderr tail on failure, RUNNING vs IDLE
  • relion_help: run relion_* --help and parse all flags live, with keyword filtering
  • Wrapper script (run.sh) in each job_dir auto-creates SUCCESS/FAILURE markers
  • 21 tools total

v2.0

  • Preview/confirm system on all pipeline tools
  • 5 new tools: relion_initial_model, relion_mask_create, relion_ctf_refine, relion_bayesian_polishing, relion_help
  • Parameters added: bfactor, gain_rot/flip, float16, save_ps, d_ast, phase shift, invert_contrast, white/black dust, --ctf flag, center_classes, healpix_order, skip_gridding, ref_correct_greyscale, MPI validation, autob_lowres/highres, mtf_angpix, skip_fsc_weighting
  • Tutorial defaults from EMPIAR-10204 baked in
  • 20 tools total

v1.0

  • Initial release with 15 tools
  • Verified against RELION 5.0.1

Tested With

  • RELION 5.0.1 (commit cad71bf)
  • Ubuntu 24.04 LTS (WSL2)
  • Python 3.12, MCP SDK 1.26.0
  • Claude Code 2.1.89
  • OpenClaw 2026.4.2 (commit d74a122)
  • Tutorial dataset: beta-galactosidase (EMPIAR-10204)

License

MIT — RELION itself is GPLv2. This server interacts with RELION solely through its CLI.

References

  • Scheres, S.H.W. (2012). RELION: Implementation of a Bayesian approach to cryo-EM structure determination. J. Struct. Biol. 180(3), 519–530.
  • Kimanius, D. et al. (2021). New tools for automated cryo-EM single-particle analysis in RELION-4.0. Biochem. J. 478(24), 4169–4185.
  • Model Context Protocol
  • RELION Documentation
  • Steinberger, P. (2025). OpenClaw: An open-source autonomous AI agent (Version 2026.x.x) [Computer software]. GitHub. https://github.com/openclaw/openclaw

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选