PIASO single-cell omics docs + live PIASOmarkerDB, for coding agents.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Make the PIASO single-cell omics ecosystem first-class for any coding agent β Claude Code, Cursor, Copilot, Codex, Windsurf, Cline, Aider β from one canonical, agent-neutral knowledge pack.
Maintained by The Fishell Laboratory (Harvard
Medical School / Broad Institute). Every agent-specific format (Claude skill, Cursor rules, AGENTS.md,
llms.txt, MCP server) is a generated artifact built from canonical/ β never a
hand-maintained copy. A CI drift check (python build.py --check) fails the build if any
dist/ artifact is out of sync with canonical/, and the code-block test suite runs every
canonical block against the pinned component versions on every push, nightly, and on
component releases, so the guidance cannot silently rot.
Hub v0.2.0 Β· piaso-mcp 0.1.0 β tested against piaso-tools 1.2.3 Β· cosg 1.2.0 Β· cytome 0.3.1 Β· laris 0.13.0 Β· emergene 1.0.2 Β· cytorete 0.1.1 Β· COSGR 1.0.0 Β· cytome (R) 0.1.0 (2026-09-04).
Independently-installable packages under github.com/genecell, in
four layers. Dependencies run one way (cytorete β piaso-tools β cosg + cytome; laris β cosg),
and pip install piaso-tools already brings COSG and cytome.
| Layer | Component | Package | Language | Role |
|---|---|---|---|---|
| Analysis | PIASO | piaso-tools | Python + Rust | Self-contained pipeline β reading 10x data, QC, doublets, INFOG, SVD / GDR, Leiden / UMAP, PIASOscore, annotation, SCALAR, PIASOmarkerDB client, plotting, piaso.data. No scanpy required. |
| Storage | cytome | cytome | Python | Single-file SQLite .cytome: matrices, SQL-queryable cell/gene tables, embeddings, graphs, fragments, tissue images, provenance β what every component streams from |
| cytome (R) | cytome (r-universe) | R | Read / write / stream the same file into Seurat or SingleCellExperiment, no Python | |
| Methods | COSG | cosg | Python | Marker genes by cosine specificity β analytic p-values, GPU, batch-aware, streams from cytome |
| COSGR | COSG (r-universe / conda-forge) | R | COSG for Seurat / SingleCellExperiment | |
| LARIS | laris | Python | Ligandβreceptor interaction in spatial transcriptomics; exact p-values; cross-condition comparison | |
| Emergene | emergene | Python | Individual-cell differential expression across conditions | |
| cytorete | cytorete | Python | Cell-type-resolved gene regulatory networks (regulons) on the PIASO stack | |
| Data | PIASO-data | β | data | Tutorial datasets (Zenodo, incl. five .cytome atlases) + genome references; registry read by piaso.data |
Each component is independently installable β a COSG-only, cytome-only or LARIS-only user is
a first-class citizen, and every canonical/components/*.md assumes nothing else is installed.
The hub's unique value is documenting how the components compose, and the cross-component
choices no single repo can make: SCALAR vs LARIS (dissociated vs spatial ligandβreceptor β
same CellChatDB either way), AnnData vs .cytome (in memory vs streamed β same function
calls), COSG vs cytorete (marker genes vs the TFs that drive them), Python vs R (COSG β
COSGR, cytome β cytome (R); everything else via a .cytome handoff), and which annotation
route (marker sets, reference projection, joint embedding, or a gene list against PIASOmarkerDB).
piaso-toolsFull reference: canonical/components/piaso.md. Every function
takes data= as an AnnData, an open cytome Dataset or a .cytome path.
Methods introduced by PIASO
| Capability | Entry point | What it does |
|---|---|---|
| INFOG normalization | piaso.tl.infog | Information-content normalization of raw UMI counts + informative-gene selection |
| GDR (marker-gene-guided DR) | piaso.tl.runGDR / runGDRParallel / projectGDR | Embedding whose axes are per-group COSG-marker scores; integrates batches by identity; frozen reference spaces |
| Gene-set scoring (PIASOscore) | piaso.tl.score | Expression-matched-control scoring with per-cell p-values; whole pathway databases in one Rust matmul |
| Cell-type prediction | piaso.tl.predictCellTypeByMarker / predictCellTypeByGDR | Marker-set and reference-based annotation |
| SCALAR (single-cell LR) | piaso.tl.specificity_matrix + runSCALAR | Cell-type-resolved ligandβreceptor inference for dissociated data, CellChatDB via piaso.data.load_lr_database |
| Marker-guided integration | piaso.tl.stitchSpace | Batch correction of an embedding via COSG-marker graph pruning |
| PIASOmarkerDB | piaso.tl.getMarkers / analyzeMarkers | Client for the curated marker database (36 studies, live API) |
| Motif scanning | piaso.pp.scan_motifs + piaso.data motif/genome loaders | The Rust PWM engine cytorete builds on |
Pipeline building blocks (scanpy-free)
| Capability | Entry point |
|---|---|
| Read 10x / Cell Ranger | piaso.pp.read_10x_h5, read_10x, importCellRanger (β cytome) |
| QC, doublets, filtering | piaso.pp.calculateCellMetrics, scrublet, filter_cells, calculateGroupMetrics |
| Embedding, graph, clusters, UMAP | piaso.tl.runSVD, neighbors, leiden, umap, leiden_local, runHarmony |
| Datasets, genomes, motif DBs, CellChatDB | piaso.data.load_dataset, fetch_genome, fetch_2bit, fetch_jaspar, load_lr_database |
| Plotting | piaso.pl.embedding, dotplot, violin, scatter, sankey, stackedBarplot, plot_embeddings_split (+ tissue-image overlays on cytomes), piaso.settings.set_figure_params |
canonical/overview.md β the router: task β component table and the seven decision rules.canonical/components/ β self-sufficient references for PIASO, COSG (+ COSGR), cytome (+ R),
LARIS, Emergene, cytorete, with executed code blocks and the data-object contract of every call.canonical/workflows/ β end-to-end scRNA-seq (scanpy-free), streaming on a .cytome,
marker-based annotation + reference projection, PIASOmarkerDB annotation, ligandβreceptor
(SCALAR and LARIS), spatial transcriptomics, gene regulatory networks.canonical/gotchas.md (layer contracts, deprecated names, the as_dict tuple, species-cased
prefixes), canonical/data.md (registry, fixtures), and the piaso.org tutorial index
(generated into every target) so the agent can point the user at the executed tutorial for
their platform.Users work in their own analysis repos, so drop the right snippet into your setup. All of
these are generated from canonical/ and live under dist/.
Claude Code β add this repo as a plugin marketplace and install the piaso skill:
Claude.ai (web app) β upload the generated skill as a Skill (Pro/Max/Team/Enterprise, with
code execution enabled). Download the dist/claude/skills/piaso/
folder, zip it, then in claude.ai go to Settings β Capabilities β Skills β Create skill and
upload the zip:
The local MCP server below is stdio-only, so it does not work in the web app β use the Skill
upload (or the llms.txt URL) on claude.ai; use MCP in Claude Code / Cursor / Codex.
Cursor β download the rule into your project's .cursor/rules/:
GitHub Copilot β copy the instructions file into your repo:
OpenAI Codex β add the AGENTS.md pointer below to your project's AGENTS.md (Codex's
primary instructions file), and/or register the MCP server (see the MCP server section
below β Codex is covered there).
AGENTS.md (Aider / Zed / Codex / any AGENTS.md-aware agent) β append the hub pointer to
your project's AGENTS.md (or copy dist/agents/AGENTS.md):
This project uses the PIASO single-cell omics ecosystem. Agent-neutral, tested docs for every component (Python + R), plus the cross-component decision rules, live at https://github.com/genecell/PIASO-for-agents
llms.txt (any model with web access) β point the tool at:
These are the hub's dist/llms/piaso.org/ files (absolute links); the relative-link versions are
at dist/llms/.
piaso-mcp serves the PIASO ecosystem docs, the piaso.org tutorial index, the PIASO-data
registry and the live PIASOmarkerDB β no Python packages required. Tools: search_docs,
get_api, compare_implementations, resolve_install, list_tutorials, version_matrix,
check_versions (PyPI vs tested versions), list_datasets / get_dataset (live registry), and
the live DB proxies query_marker_db, get_markers, list_studies. It is a local stdio
server (not a hosted remote endpoint), so it works in Claude Code / Cursor / VS Code / Windsurf /
Zed / Codex / Cline, but not in the claude.ai web app β use the Skill upload there.
uvNo reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/piaso-mcp)<a href="https://allmcps.com/mcp/piaso-mcp"><img src="https://allmcps.com/api/badge/piaso-mcp?style=directory" alt="Piaso MCP on AllMCPs" /></a>