cmxflow

io.github.b-shieldsPublished by GitHub account b-shieldsv0.4.0Updated Oct 24, 2026

Composable, tunable cheminformatics workflows: library preparation, clustering, docking, and more.

VerifiedSTDIODesktop onlyData & AnalyticsAI & ML

Overview

AI-generated overview

cmxflow is a local MCP server that lets an assistant build, run and tune cheminformatics workflows such as ligand preparation, clustering, docking and virtual-s

What you can do
Build workflows from composable blocks for sourcing, transforming, filtering, clustering, scoring and docking molecules, and run them on molecule libraries to produce prepared or docked structure files. Optimize workflow parameters end-to-end with Bayesian optimization and compare results. Manage saved workflows through serialization for save, load and reuse. View molecular structures in 3D when PyMOL is installed.
When to use it
Useful when you want an assistant to assemble and execute computational chemistry pipelines conversationally, for example preparing ligands for docking, docking a congeneric series, or tuning a ligand-based virtual screen without writing the pipeline code yourself.
Requirements
Runs as a local process over stdio, installed from PyPI (cmxflow) and started with the cmxflow-mcp command, for example via uvx. Python environment needed. The 3D structure viewing tool additionally requires PyMOL (pymol-open-source). No accounts, API keys or headers are declared.
Before you install
Workflows write output files such as prepared or docked structure files, and optimization runs many trials, which can be compute-heavy. The 3D viewing tool depends on an optional PyMOL install. Review generated workflows before running them on valuable data.

Installation

In SourceWeft

  1. Open cmxflow in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

cmxflow 🧪

[Docs] [CI] [codecov] [Python 3.11+] [Code style: black] [License: MIT]

Build cheminformatics and computational chemistry pipelines with composable blocks. Tune end-to-end with Bayesian Optimization. Or ask an LLM agent to do it.

Quick examples

Prepare ligands for docking

python
from cmxflow import Workflowfrom cmxflow.sources import MoleculeSourceBlockfrom cmxflow.operators import (    MoleculeStandardizeBlock,    IonizeMoleculeBlock,    EnumerateStereoBlock,    ConformerGenerationBlock,)from cmxflow.sinks import MoleculeSinkBlock
# Standardize → ionize (pH 6.4–8.4) → enumerate stereo → generate 3D conformersworkflow = Workflow()workflow.add(    MoleculeSourceBlock(),    MoleculeStandardizeBlock(),    IonizeMoleculeBlock(),    EnumerateStereoBlock(),    ConformerGenerationBlock(),    MoleculeSinkBlock(),)workflow("library.smi", "prepared.sdf")

Dock a congeneric series

Pure-Python docking. Free docking is the default (index_poses=False); scaffold-indexed mode caches poses by Bemis–Murcko scaffold for ~3× faster throughput on congeneric series with consistent pose alignment.

python
from cmxflow import Workflowfrom cmxflow.sources import MoleculeSourceBlockfrom cmxflow.operators import ConformerGenerationBlock, MoleculeDockBlockfrom cmxflow.sinks import MoleculeSinkBlockfrom cmxflow.utils.parallel import make_parallel
workflow = Workflow()workflow.add(    MoleculeSourceBlock(),    ConformerGenerationBlock(),    make_parallel(        MoleculeDockBlock(            receptor="receptor.pdb",            site_reference="crystal_ligand.sdf",            index_poses=True,  # omit for free docking        )    ),    MoleculeSinkBlock(),)workflow("library.smi", "docked.sdf")

Tune a ligand-based virtual screen

python
from cmxflow import Workflowfrom cmxflow.sources import MoleculeSourceBlockfrom cmxflow.operators import MoleculeSimilarityBlockfrom cmxflow.scores import EnrichmentScoreBlockfrom cmxflow.opt import Optimizer
# Rank a library by 2D similarity to a known active, then tune the# fingerprint end-to-end to maximize enrichment AUC.workflow = Workflow()workflow.add(    MoleculeSourceBlock(),    MoleculeSimilarityBlock(queries="crystal_ligand.sdf"),    EnrichmentScoreBlock(target="active"),)
opt = Optimizer(workflow, "benchmark.csv")opt.optimize(n_trials=30, direction="maximize")
print(f"Best enrichment AUC: {opt.best_score:.3f}")print(opt.best_params)# Best enrichment AUC: 0.836# {'fingerprint_type': 'morgan', 'similarity_metric': 'sokal', 'radius': 2, 'nbits': 2545}

The four fingerprint parameters above are searched automatically — every block exposes its mutable parameters to the optimizer.

Or build it conversationally via an LLM agent

bash
claude mcp add cmxflow -- cmxflow-mcp

"How many of the molecules in library.csv pass Lipinski's rules?"

"I need to build a ligand-based virtual screening workflow. I'm not sure if 2D or 3D is better. Can you optimize two workflows?"

"Dock the molecules in hits.csv against receptor.pdb with crystal_ligand.sdf as a reference."

The agent can build, run, and optimize workflows. See Using with Claude for full transcripts.

What's in the box

  • 15+ blocks for sourcing, transforming, filtering, clustering, scoring, and docking molecules
  • Bayesian optimization of pipeline parameters via Optuna
  • Parallel execution for compute-heavy blocks (conformer generation, docking)
  • Workflow serialization for save / load / reuse
  • An MCP server with five tools: build_workflow, run_workflow, optimize_workflow, manage_workflows, view_structures

Install

bash
pip install cmxflow

MCP server

bash
claude mcp add cmxflow -- cmxflow-mcp

Optional: PyMOL

Required only for the view_structures MCP tool (3D visualization):

bash
conda install -c conda-forge pymol-open-source

Documentation

Project

MIT licensed. See CONTRIBUTING.md and RELEASING.md.

Source: README.md at commit c2960bc

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.4.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts