[project]
name = "decoupler-mcp"
dynamic = ["version"]
description = "Natural language interface for biological activities analysis with decoupler through MCP."
readme = "README.md"
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 = [
"fastmcp>=2.3.5",
"dcor",
"decoupler>=2.0.1",
"scanpy",
"nest_asyncio",
"agno",
"lancedb",
"scmcp-shared>=0.5.0",
]
[dependency-groups]
dev = [
"pytest>=8.3.3",
"pytest-asyncio>=0.23.5",
]
[project.scripts]
decoupler-mcp = "decoupler_mcp.cli:cli.run"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.version]
path = "src/decoupler_mcp/__init__.py"
[tool.pytest.ini_options]
asyncio_mode = "strict"
asyncio_default_fixture_loop_scope = "function"
[project.urls]
Homepage = "http://scmcphub.org/"
Repository = "https://github.com/scmcphub/decoupler-mcp"
Documentation = "https://docs.scmcphub.org/"