load_dataLABSCO SUMMARY
Schema-enforced orchestration instead of ad-hoc code generation — that is the reproducibility claim.
The design choice is that the LLM selects from a curated registry rather than writing arbitrary scripts, so the same natural-language request lands on the same validated method across sessions and clients. The 20 tools are the stable surface; the 66 methods behind them are chosen by parameters, which is why one tool covers a whole family of domain-identification algorithms.
What it is
A server that exposes 20 schema-validated MCP tools orchestrating 66 spatial transcriptomics methods across 15 analytical categories, for 10x Visium, Xenium, Slide-seq v2, MERFISH and seqFISH data.
What you get
- load_data, preprocess_data and compute_embeddings handle I/O, QC, normalization, HVG and PCA
- identify_spatial_domains runs SpaGCN, STAGATE, GraphST, BANKSY and others; deconvolve_data runs Cell2location, RCTD, Tangram and more
- annotate_cell_types, find_markers and compare_conditions cover annotation and differential expression
- analyze_spatial_statistics computes Moran's I, Geary's C, Ripley's K and neighborhood enrichment; find_spatial_genes runs SpatialDE and SPARK-X
- analyze_cell_communication, analyze_enrichment, analyze_trajectory_data, analyze_velocity_data and analyze_cnv cover the remaining categories
- integrate_samples, register_spatial_data, visualize_data and export_data round out the workflow
- The tools are the stable interface; the analysis backend is picked through tool parameters
Requirements
uv, then register with uvx --from chatspatial chatspatial server — uvx builds an isolated environment on first launch, no Python environment to manage. Python 3.11 to 3.14. The standard runtime covers the core tools; uvx --from 'chatspatial[full]' chatspatial server adds the portable Python method families, while R bridges and large-runtime backends stay separate. STDIO is the local default.
Setup effort
One command — uvx --from chatspatial chatspatial server
USE CASES
Getting from a data file to a first look at tissue structure
Load the file, preprocess, and identify spatial domains — the LLM picks the method, you stay in natural language.
Working out cell-type composition per spot
Run deconvolution against one of several backends selected through the tool's parameters.
Finding genes that vary across space
Run spatially variable gene detection, then compute spatial statistics like Moran's I.
Comparing two conditions
Annotate the cell types, then run differential expression between the groups.
Producing the figure for a result
Send the analysed data into a spatial plot or embedding view.
20 tools
Listed in project docs. Your client may show a different list.
preprocess_datacompute_embeddingsexport_datareload_dataanalyze_spatial_statisticsfind_spatial_genesidentify_spatial_domainsannotate_cell_typesdeconvolve_dataanalyze_cell_communicationfind_markerscompare_conditionsanalyze_enrichmentanalyze_velocity_dataanalyze_trajectory_dataanalyze_cnvintegrate_samplesregister_spatial_datavisualize_dataBEFORE YOU INSTALL
What to know first
Tools you get
20 tools named in the project's documentation.
Requires
uvx on PATH
INSTALLATION
Connect your client
Server setup
uvx --from chatspatial chatspatial serverMCP Clients
Codex
codex mcp add chatspatial -- uvx --from chatspatial chatspatial serverClaude Code
claude mcp add --scope user chatspatial -- \
uvx --from chatspatial chatspatial server