[project]
name = "scmcp"
dynamic = ["version"]
description = "An MCP server for scRNA-Seq analysis with natural language!"
readme = "README.md"
license = { file = "LICENSE" }
authors = [
{ name = "shuang", email = "hsh-me@outlook.com" }
]
keywords = [
"mcp",
"model context protocol",
"llm",
"agent",
"scRNA-seq",
"single cell",
"bioinformatics",
"AI"
]
requires-python = ">=3.10"
dependencies = [
"nest_asyncio",
"scmcp-shared>=0.6.0",
"scanpy-mcp",
"cellrank-mcp",
"liana-mcp",
"decoupler-mcp",
"infercnv-mcp",
"mcp>=1.8.0",
"fastmcp>=2.10.0",
"agno",
"lancedb"
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project.scripts]
scmcp = "scmcp.cli:cli.run"
[dependency-groups]
dev = [
"pytest>=8.3.3",
"pytest-asyncio>=0.23.5",
]
[tool.hatch.version]
path = "src/scmcp/__init__.py"
[project.urls]
Homepage = "http://scmcphub.org/"
Repository = "https://github.com/scmcphub/scmcp"
Documentation = "https://docs.scmcphub.org/"
[tool.pytest.ini_options]
asyncio_mode = "strict"
asyncio_default_fixture_loop_scope = "function"