# OpenHCS

MCP server to author, validate, and execute high-content microscopy analysis pipelines directly through AI coding agents.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 6
- Author: OpenHCSDev
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/OpenHCSDev/openhcs
- Updated: 2026-10-20
- HTML: https://affpapa.org/en/nevibecode/mcp/openhcs

## What it does

OpenHCS unites visual desktop tools and Python scripts under an agent-ready pipeline engine. It relies on a compile-then-execute model. Before processing touches raw image sets, the typed compiler validates input data sources, step artifacts, memory contracts, and executor targets. Late failures stop before processing starts.

An agent connected via MCP inspects available function catalogs, builds typed configurations, and triggers processing runs. Output images, object masks, and measurements stream to PolyStore storage or live viewers like Napari and Fiji over an isolated ZMQ transport. Running the server requires Python 3.11 to 3.13 and the `uvx` command-line tool.

Pipelines remain bidirectional. You can adjust them visually, export them as Python code, or import existing CellProfiler `.cppipe` setups. Dedicated GPU hardware is not mandatory, since OpenHCS falls back to CPU concurrency via `ProcessPoolExecutor`.

## Requirements
- Needs: Python and uv (commands run via uvx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add openhcs -- uvx openhcs
```
uvx runs the command named after the package; if the README names another one, use uvx --from openhcs <command>

### Codex

**Platform CLI**
```bash
codex mcp add openhcs -- uvx openhcs
```
uvx runs the command named after the package; if the README names another one, use uvx --from openhcs <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "openhcs": {
            "command": "uvx",
            "args": [
                "openhcs"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from openhcs <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "openhcs": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "openhcs"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from openhcs <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add openhcs uvx openhcs
```
uvx runs the command named after the package; if the README names another one, use uvx --from openhcs <command>

## When to use it
- validate high-content microscopy pipelines before heavy batch execution
- convert legacy CellProfiler `.cppipe` files into executable Python workflows
- stream intermediate assay images to Napari or Fiji in real time
- dispatch multi-well image processing across CPU workers or GPUs

## Example prompts
- Inspect the microscopy images in this directory and build a typed cell analysis pipeline
- Convert `assay_pipeline.cppipe` into OpenHCS Python code and check its memory contracts
- Run the compiled pipeline on the multi-well plate and stream output frames to Napari

## Similar
- [Zotero MCP](https://affpapa.org/en/nevibecode/mcp/zotero-mcp.md) — MCP server · ★ 5585
- [arxiv-mcp-server](https://affpapa.org/en/nevibecode/mcp/arxiv-mcp-server.md) — MCP server · ★ 3235
- [PaperBanana](https://affpapa.org/en/nevibecode/mcp/paperbanana.md) — MCP server · ★ 2418
- [MATLAB MCP Server](https://affpapa.org/en/nevibecode/mcp/matlab-mcp-server.md) — MCP server · ★ 1723
- [Hex Research](https://affpapa.org/en/nevibecode/mcp/hex-research.md) — MCP server · ★ 584
- [DocsAgent — Zotero, Obsidian & Apple Notes MCP Server](https://affpapa.org/en/nevibecode/mcp/docsagent-zotero-obsidian-apple-notes-mcp-server.md) — MCP server · ★ 578

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
