[project] name = "target-mcp" version = "0.2.0" description = "MCP server operationalizing the TARGET reporting guideline (Cashin et al., JAMA/BMJ 2025) as a deterministic, provenanced scoring engine for target trial emulation studies" requires-python = ">=3.11" license = "Apache-2.0" license-files = ["LICENSE", "NOTICE"] authors = [{ name = "Black Swan Causal Labs" }] readme = "README.md" classifiers = [ "Programming Language :: Python :: 3", "Intended Audience :: Science/Research", "Topic :: Scientific/Engineering :: Medical Science Apps.", ] dependencies = [ # Upper bound is load-bearing, not caution: mcp 2.0 removed # `mcp.server.fastmcp`, which server.py imports at module scope, so an # unbounded ">=1.0" resolves to 2.x and the package fails to import on a # fresh install. This was not hypothetical — it broke `pip install # target-mcp` for 0.1.2 the moment mcp 2.0 shipped. Lift the bound only # together with a port to the 2.x server API. "mcp[cli]>=1.0,<2", "pypdf>=5.0", "pdfplumber>=0.11", "pyyaml>=6.0", "anthropic>=0.40", "httpx>=0.27", "python-docx>=1.1", ] [project.scripts] target-mcp = "target_mcp.server:main" target-mcp-corpus = "target_mcp.corpus_run:main" [build-system] requires = ["setuptools>=68"] build-backend = "setuptools.build_meta" [tool.setuptools.packages.find] include = ["target_mcp*"] [tool.setuptools.package-data] target_mcp = ["specs/*.yaml", "assets/*.png"]