Labsco
MCP SERVER

ChatSpatial

by cafferychen777

Run spatial transcriptomics analysis by describing it, with the LLM choosing validated tools rather than writing scripts.

Biomedical: Genomics & Clinical Data
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