# ChatSpatial

ChatSpatial lets an MCP client run spatial transcriptomics analyses through schema-defined tools. Use it to explore spatial data without asking a model to invent analysis scripts.

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

## What it does

The server exposes 20 MCP tools that cover 67 methods in 13 analytical categories. Available work includes data preparation, spatial plots, domain detection, gene expression analysis, and cell-cell communication. Supported platforms include 10x Visium, Xenium, Slide-seq v2, MERFISH, and seqFISH.

Rather than writing arbitrary code, the model picks a tool and its parameters from a curated registry. This keeps workflows more consistent across sessions and clients. STDIO is the local connection mode; Streamable HTTP requires explicit setup.

For Claude Code, register the server with `claude mcp add chatspatial -- uvx chatspatial`, then restart the MCP client. Some analysis methods need extra components: SpaGCN, for instance, requires the `spatial-domains` extra.

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

## Install

### Claude Code (native platform)

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

### Codex

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

### Cursor

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

### GitHub Copilot

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

### Gemini CLI

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

## When to use it
- prepare spatial data for analysis
- plot gene expression across spatial coordinates
- identify spatial domains in a tissue sample
- analyze communication between cell types
- compare gene expression across groups

## Example prompts
- Load the spatial dataset and plot a gene's expression across its coordinates.
- Identify spatial domains in this dataset using Leiden.
- Analyze communication between the cell types in this sample.

## Similar
- [Zotero MCP](https://affpapa.org/en/nevibecode/mcp/zotero-mcp.md) — MCP server · ★ 5548
- [arxiv-mcp-server](https://affpapa.org/en/nevibecode/mcp/arxiv-mcp-server.md) — MCP server · ★ 3231
- [PaperBanana](https://affpapa.org/en/nevibecode/mcp/paperbanana.md) — MCP server · ★ 2417
- [MATLAB MCP Server](https://affpapa.org/en/nevibecode/mcp/matlab-mcp-server.md) — MCP server · ★ 1716
- [Hex Research](https://affpapa.org/en/nevibecode/mcp/hex-research.md) — MCP server · ★ 583
- [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
