Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
PIASO single-cell ecosystem docs (PIASO, COSG, cytome, LARIS, cytorete) + live PIASOmarkerDB
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"piaso": {
"command": "uvx",
"args": [
"piaso-mcp"
]
}
}
}Run this in your terminal
claude mcp add piaso -- uvx piaso-mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"piaso": {
"command": "uvx",
"args": [
"piaso-mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"piaso": {
"type": "stdio",
"command": "uvx",
"args": [
"piaso-mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 10, 2026
The registry name was verified with the GitHub account genecell, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.1) reached the registry 42 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, paidfor
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Check an x402 seller before paying: verdict, failure rate and evidence from paid calls on Base.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Make the [PIASO](https://piaso.org) 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](https://fishelllab.hms.harvard.edu) (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.2 · piaso-mcp 0.1.1 — tested against piaso-tools 1.2.6 · cosg 1.2.0 · cytome 0.3.6 · laris 0.14.0 · emergene 1.0.2 · cytorete 0.1.1 · COSGR 1.0.0 · cytome (R) 0.1.3 (2026-09-29).
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 plugin marketplace add genecell/PIASO-for-agents
claude plugin install piaso@PIASO-for-agents
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:
# from a clone of this repo:
cd dist/claude/skills && zip -r piaso-skill.zip piaso # -> upload piaso-skill.zip in claude.ai
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/:
curl -L https://raw.githubusercontent.com/genecell/PIASO-for-agents/master/dist/cursor/.cursor/rules/piaso.mdc \
-o .cursor/rules/piaso.mdc
GitHub Copilot — copy the instructions file into your repo:
curl -L https://raw.githubusercontent.com/genecell/PIASO-for-agents/master/dist/copilot/.github/copilot-instructions.md \
-o .github/copilot-instructions.md
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:
https://piaso.org/llms.txt # and https://piaso.org/llms-full.txt
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.
uvThe server runs via uvx, which ships with `uv`. This is the one thing "no packages needed" doesn't cover — install it once:
curl -LsSf https://astral.sh/uv/install.sh | sh # macOS / Linux
Then confirm it's reachable: uvx --version. If that says "command not found", uv's bin dir isn't on your PATH — either add it, or replace "uvx" in the configs below with the absolute path from which uvx (Windows: where uvx). First launch downloads the package (~30 s); later launches are cached.
The MCP config key and file location differ per client — pick your agent below.
mcpServersEasiest is the CLI (no hand-editing, and it handles the PATH issue in one line):
claude mcp add piaso --scope user -- uvx piaso-mcp
claude mcp add piaso --scope user -- "$(which uvx)" piaso-mcp
claude mcp get piaso # verify → Status: ✔ Connected
Or edit ~/.claude.json (user) / project .mcp.json:
{ "mcpServers": { "piaso": { "command": "uvx", "args": ["piaso-mcp"] } } }
mcpServersFile: ~/.cursor/mcp.json (global) or .cursor/mcp.json (per project). Same shape as Claude Code:
{ "mcpServers": { "piaso": { "command": "uvx", "args": ["piaso-mcp"] } } }
Enable it under Settings → MCP.
mcpServersFile: ~/.codeium/windsurf/mcp_config.json (open via Settings → Cascade → MCP Servers → Manage → raw config):
{ "mcpServers": { "piaso": { "command": "uvx", "args": ["piaso-mcp"] } } }
servers (note: not mcpServers)Workspace file .vscode/mcp.json, or user settings.json under "mcp". VS Code also wants a type:
// .vscode/mcp.json
{ "servers": { "piaso": { "type": "stdio", "command": "uvx", "args": ["piaso-mcp"] } } }
Or one-shot from the terminal:
codOnly the beginning is shown; read the rest in the repo