[build-system] requires = ["hatchling>=1.27"] build-backend = "hatchling.build" [project] name = "catalyst-edge-mcp" version = "0.1.8" description = "Source-linked market intelligence for AI agents" readme = "README.md" requires-python = ">=3.10" license = { text = "MIT" } authors = [{ name = "Ryan Monroe" }] dependencies = [ "feedparser>=6.0.12,<7", "httpx>=0.28,<1", "lxml>=6.1,<7", "mcp>=1.27,<2", "pydantic>=2.11,<3", "rapidfuzz>=3.14,<4", ] [project.urls] Homepage = "https://catalyst.ryanmonroe.ai" Documentation = "https://github.com/rm0nroe/catalyst-edge-mcp#readme" Repository = "https://github.com/rm0nroe/catalyst-edge-mcp" Issues = "https://github.com/rm0nroe/catalyst-edge-mcp/issues" [project.optional-dependencies] dev = [ "jsonschema>=4.20,<5", "pytest>=8.3,<10", "pytest-asyncio>=0.25,<2", "pyyaml>=6.0.2,<7", "ruff>=0.12,<1", ] diagnostic = [ "yfinance>=0.2.65,<1", ] [project.scripts] catalyst-edge-mcp = "catalyst_edge_mcp.server:main" catalyst-edge-score = "catalyst_edge_mcp.cli:main" catalyst-edge-smoke = "catalyst_edge_mcp.smoke:main" catalyst-edge-refresh-gdelt = "catalyst_edge_mcp.gdelt_refresh:main" catalyst-edge-refresh-bluesky = "catalyst_edge_mcp.bluesky_refresh:main" catalyst-edge-purge-bluesky-cache = "catalyst_edge_mcp.bluesky_cache:main" catalyst-edge-health = "catalyst_edge_mcp.collection_lifecycle:health_main" catalyst-edge-synthetic-model = "catalyst_edge_mcp.replay.pipeline:main" [tool.hatch.build.targets.wheel] packages = ["catalyst_edge_mcp"] [tool.hatch.build.targets.sdist] include = [ "/.env.example", "/LICENSE", "/README.md", "/server.json", "/catalyst_edge_mcp", "/docs/demo/five-ticker-demo-runbook.md", "/pyproject.toml", "/scripts/run_design_partner_demo.py", "/uv.lock", ] [tool.pytest.ini_options] addopts = "-q" asyncio_mode = "auto" testpaths = ["tests"] [tool.ruff] line-length = 100 target-version = "py310" [tool.ruff.lint] select = ["E", "F", "I", "UP", "B", "SIM", "RUF"] [tool.ruff.lint.per-file-ignores] "tests/*" = ["S101"]