[project] name = "legal-mcp" version = "0.1.0" description = "MCP server for AI-assisted legal decision drafting" requires-python = ">=3.10" dependencies = [ "mcp[cli]>=1.0.0", "asyncpg>=0.29.0", "pgvector>=0.3.0", "voyageai>=0.3.0", "python-dotenv>=1.0.0", "pydantic>=2.0.0", "pymupdf>=1.25.0", "python-docx>=1.1.0", "striprtf>=0.0.26", "redis>=5.0.0", "rq>=1.16.0", "pillow>=10.0.0", "google-cloud-vision>=3.7.0", "fastapi>=0.115.0", "uvicorn[standard]>=0.30.0", "httpx>=0.27.0", "infisicalsdk>=1.0.0", "aioboto3>=13.0.0", # X14 object storage (MinIO/S3) — services/storage.py ] [project.optional-dependencies] # Tier-1 court-verdict fetch (X13) — host-only. The container can't run a # browser, so these are NOT in the base deps; install on the host venv with # `pip install -e ".[court-fetch]" && python -m camoufox fetch`. faster-whisper # is only for the explicit-PDF-download reCAPTCHA fallback (the primary # image-API path needs no solving). court-fetch = [ "camoufox>=0.4.11", "faster-whisper>=1.0.0", "h2>=4.0.0", # Tier-0 supremedecisions uses httpx http2 ] # Durable execution for the local one-shot pipelines (X16 / INV-DUR1) — # final_halacha_pipeline / final_learning_pipeline gain crash/OOM resume via # scripts/_pipeline_runtime.py. HOST-ONLY (the pipelines run locally, not in the # container): install on the host venv with `pip install -e ".[durable]"`. The # runtime degrades gracefully to linear execution when these are absent, so the # run-halacha / run-learning buttons keep working until then. durable = [ "langgraph>=1.0,<2.0", "langgraph-checkpoint-sqlite>=3.0", ] [build-system] requires = ["setuptools>=68.0"] build-backend = "setuptools.build_meta" [tool.setuptools.packages.find] where = ["src"]