Skip to content
plugmcp
DirectorySkillsCategoriesBlog
EN/δΈ­ζ–‡
Sign inSign up
Home/Servers/Cxg Census

Cxg Census

I
by io.github.MaxMLang

MCP server for the CZ CELLxGENE Census. Single-cell, ontology-aware. Community, unaffiliated.

Power your agent

Add this server

The publisher's own command. Not a PlugMCP endpoint.

Local command
uvx cxg-census-mcp==0.1.2
Provider
Claude Code
claude mcp add io.github.maxmlang-cxg-census-mcp -- uvx cxg-census-mcp==0.1.2

Run in a terminal.

Claude Desktop
{
  "mcpServers": {
    "io.github.maxmlang-cxg-census-mcp": {
      "command": "uvx",
      "args": [
        "cxg-census-mcp==0.1.2"
      ]
    }
  }
}

claude_desktop_config.json

Step-by-step: add this in Claude

Remote URL or a command on your machine? How the two installs differ

Run on PlugMCP

Host a copy with our keys and logs.

A new server you create. It is not this listing's official endpoint. Use the publisher install when you want their URL and their credentials.

Launch

Related MCP

View more
  • FirecrawlπŸ”₯ Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients.
  • N
    NotionToken-auth Notion MCP: pages, databases, blocks, comments, files. Runs headless in CI and agents.
  • Context7Context7 Platform -- Up-to-date code documentation for LLMs and AI code editors

Related skills

View all
  • reaReverse engineer anything with agents, from app behavior down to native binaries.
  • rea-changelog-updatePrepare or rewrite REA release changelogs and GitHub release notes from pinned Git history, with verified contributor thanks and Release Please synchronization.
  • rea-tool-designDesign or change REA investigation tools, CLI/MCP contracts, provider capabilities, and Evidence semantics.

MCP server for the CZ CELLxGENE Census. Single-cell, ontology-aware. Community, unaffiliated.

cxg-census-mcp

An MCP server that lets LLM agents query the CZ CELLxGENE Discover Census single-cell atlas without lying about it β€” ontology-aware filters, cost caps, full provenance + attribution on every response. Drop it into Cursor / Claude Desktop / Claude Code and ask questions like "Visualize the cell-type composition of the human lung" in plain English.

Independent / unaffiliated. Not affiliated with, endorsed by, or sponsored by the Chan Zuckerberg Initiative (CZI), EMBL-EBI, the U.S. Census Bureau, or anyone else. "CELLxGENE" is a CZI mark; references here are descriptive (nominative) use only.

No warranty. MIT-licensed source, "as is". Research/exploration tool β€” not a clinical or diagnostic instrument. Always verify results before publication. See LICENSE for the full trademark and content attribution notice, and SECURITY.md for the threat model and known-issues policy.

Alpha (v0.1.2). CHANGELOG.md

Demos

Healthy vs COVID-19 lung, side-by-side. Two parallel queries, the disease_multi_value_v7 schema-drift rewrite kicks in for the COVID cohort, attribution from both contributing dataset sets surfaces in the same chat turn.

https://github.com/user-attachments/assets/c836f225-5075-4643-87aa-70d311bc5fd2

Cell-type composition of human lung in one query. Free-text "lung" resolved to UBERON:0002048, routed through tissue_general, every CURIE labeled, all in a single Tier-0 call.

https://github.com/user-attachments/assets/b0e10ca7-e46b-4e5f-ae63-11949d328c4d

(Videos render on GitHub. On PyPI they appear as bare URLs β€” head to the GitHub README to watch.)

More prompts in docs/example-questions.md.

Architecture at a glance

                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
   MCP client    β”‚   tools/        thin MCP wrappers, no logic  β”‚
   (Claude,  ─►  β”‚     β”‚                                        β”‚
    Cursor,      β”‚     β–Ό                                        β”‚
    Code, …)     β”‚   planner/      FilterSpec β†’ QueryPlan,      β”‚
                 β”‚     β”‚           cost estimate, tier routing  β”‚
                 β”‚     β–Ό                                        β”‚
                 β”‚   ontology/     OLS4 + hint overlay,         β”‚
                 β”‚     β”‚           CL/UBERON/MONDO expansion    β”‚
                 β”‚     β–Ό                                        β”‚
                 β”‚   execution/    Tier 0  facet counts         β”‚
                 β”‚     β”‚           Tier 1  chunked obs scan     β”‚
                 β”‚     β”‚           Tier 2  expression aggregate β”‚
                 β”‚     β”‚           Tier 9  refuse β†’ snippet     β”‚
                 β”‚     β–Ό                                        β”‚
                 β”‚   clients/      OLS4 (HTTPS) + Census/SOMA   β”‚
                 β”‚                                              β”‚
                 β”‚   caches/       OLS, facet, plan, filter LRU β”‚
                 β”‚   models/       Response envelope w/         β”‚
                 β”‚                 attribution + provenance     β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                    β”‚
                                    β–Ό
                       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                       β”‚ EBI OLS4 (ontology)    β”‚
                       β”‚ CZ CELLxGENE Census    β”‚
                       β”‚ (CC BY 4.0 data)       β”‚
                       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Full architecture notes: docs/architecture.md. Tool reference: docs/tool-reference.md. Example questions: docs/example-questions.md.

Install

From PyPI (recommended):

uv tool install "cxg-census-mcp[census]"
cxg-census-mcp                       # speaks MCP over stdio

Or with pip:

pip install "cxg-census-mcp[census]"

Without the [census] extra you get mock mode (deterministic fixtures) β€” handy for offline demos and verifying your MCP client config without pulling tiledbsoma's ~1 GB of native deps.

From source (for development):

git clone https://github.com/MaxMLang/cxg-census-mcp
cd cxg-census-mcp
uv sync --extra dev --extra census
uv run cxg-census-mcp

MCP client config

Cursor (~/.cursor/mcp.json) and Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json on macOS) both expect the same shape. Cleanest is uvx once installed from PyPI:

{
  "mcpServers": {
    "cxg-census": {
      "command": "/absolute/path/to/uvx",
      "args": ["--from", "cxg-census-mcp[census]", "cxg-census-mcp"]
    }
  }
}

Use the absolute path to uvx (which uvx from your shell). MCP clients spawn the server in a non-interactive subprocess that doesn't source your shell rc, so a bare "uvx" will fail with No such file or directory.

If you cloned from source instead, point at the checkout:

{
  "mcpServers": {
    "cxg-census": {
      "command": "/absolute/path/to/uv",
      "args": ["--directory", "/path/to/cxg-census-mcp", "run", "cxg-census-mcp"]
    }
  }
}

Claude Code:

claude mcp add cxg-census -- /absolute/path/to/uvx --from "cxg-census-mcp[census]" cxg-census-mcp

Quit + relaunch your client (⌘Q on macOS β€” closing the window isn't enough) and the server should show up in the MCP panel with 13 tools.

Tools (13 total)

Workflow: census_summary, get_census_versions, count_cells, list_datasets, gene_coverage, aggregate_expression, preview_obs, export_snippet, get_server_limits.

Inspection: resolve_term, expand_term, term_definition, list_available_values.

Plus MCP resources (markdown docs at cxg-census-mcp://docs/{slug}), prompts (census_workflow, disambiguation), and cooperative progress / cancellation notifications. Details in docs/tool-reference.md.

Configuration

All env vars use the CXG_CENSUS_MCP_ prefix. Most useful:

VariableDefaultPurpose
CXG_CENSUS_MCP_CENSUS_VERSIONstableCensus release to pin
CXG_CENSUS_MCP_CACHE_DIRplatformdirs defaultDisk cache root
CXG_CENSUS_MCP_MOCK_MODE0If 1, never opens a real Census handle
CXG_CENSUS_MCP_LOG_LEVELWARNINGstdlib log level

Full list and validation: src/cxg_census_mcp/config.py.

Development & operations

Quick loop:

make install-all                 # uv sync --extra dev --extra census
make lint typecheck test         # ruff + mypy + pytest (mock mode)
make cov                         # tests + coverage HTML in ./htmlcov
make audit                       # pip-audit on locked production deps

Operational tasks (cache pre-warm, schema diff, container build, metrics dump, plan-cache vacuum, weekly hint/facet refresh) live in the Makefile and are documented in docs/operational-playbook.md.

Documentation index

TopicWhere
System architecturedocs/architecture.md
Tool referencedocs/tool-reference.md
Example agent questionsdocs/example-questions.md
Ontology resolutiondocs/ontology-resolution.md
Schema-drift handlingdocs/schema-drift-format.md
Census version pinningdocs/version-pinning.md
Progress / cancellationdocs/progress-and-cancellation.md
Error modeldocs/error-model.md
Known limitationsdocs/limitations.md
Ops runbookdocs/operational-playbook.md
ChangelogCHANGELOG.md

License & attribution

Source code: MIT. The MIT license covers only the code in this repository, not the upstream data, ontologies, or third-party trademarks.

  • Data. Tool responses are derived (filtered/aggregated) from the CZ CELLxGENE Discover Census, distributed by the Chan Zuckerberg Initiative under CC BY 4.0. Every response carries an attribution field; downstream users must preserve attribution and indicate that changes were made.
  • Ontologies are fetched via EBI Ontology Lookup Service (OLS4) from CL, UBERON, MONDO, EFO, HANCESTRO, and others; each carries its own license.
  • Trademarks ("CELLxGENE", "Cursor", "Claude", "Anthropic", "Model Context Protocol", …) belong to their respective owners. Use here is descriptive only and does not imply affiliation.

This project is a client of the CZ CELLxGENE Discover Census; it does not host, mirror, or redistribute Census data.

Full notice in LICENSE.

How do I install Cxg Census?
Copy the stdio config for Cursor, Claude Desktop, Claude Code, or VS Code on this page. It uses the publisher's install, not a PlugMCP proxy.
Does Cxg Census need an API key?
No required environment variable is listed on this record.
What transport does Cxg Census use?
Cxg Census runs locally over stdio.
When was Cxg Census last checked?
Last checked 2026-10-16. MCP server for the CZ CELLxGENE Census. Single-cell, ontology-aware. Community, unaffiliated.

No tool list yet. Remote servers get one after the first health check.

plugmcp

Plug any tool into any agent. MCP servers for people who do not write servers. Gateway for volume, n8n for apps.

  • github.com/TODO
  • x.com/TODO
  • linkedin.com/company/TODO

PlugMCP, 2026

Product
  • Browse
  • Install
  • Host your own
  • Voice mode
  • Browser
Directory
  • All MCP servers
  • Agent skills
  • Categories
  • New
  • Voice
  • Submit a server
Developers
  • Docs
  • Blog
  • What is MCP
  • What is WebMCP
  • Status
Company
  • About
  • Contact
  • Terms
  • Privacy
  • DPA