[build-system] requires = ["setuptools>=68", "wheel"] build-backend = "setuptools.build_meta" [project] name = "jarca-ledger-mcp" version = "0.1.5" description = "Jarca household ledger MCP server for transactions, accounts, budgets, cashflow, and investable cashflow analysis" readme = "README.md" requires-python = ">=3.11" dependencies = [ "mcp>=1.0.0", "pymupdf>=1.24.0", "python-dotenv>=1.0.0", "openpyxl>=3.1.0", "msoffcrypto-tool>=5.4.0", ] [project.optional-dependencies] dev = ["pytest>=8.0.0", "ruff>=0.6.0", "websockets>=15.0,<17.0"] dashboard = [ "streamlit>=1.58.0,<1.59.0", "plotly>=5.20.0", "pandas>=2.2.0", "itsdangerous>=2.2.0,<3.0", "starlette>=0.40.0,<2.0", "uvicorn>=0.30.0,<1.0", ] [project.scripts] jarca-ledger-mcp = "jarca_ledger_mcp.server:main" [tool.pytest.ini_options] addopts = "-q" testpaths = ["tests"] [tool.ruff] target-version = "py311" line-length = 240 [tool.ruff.lint] # Conservative initial required gate for BAT-007: block syntax/undefined-name # regressions without reformatting the existing codebase in this delivery. select = ["E9", "F"] [tool.setuptools.packages.find] include = ["jarca_ledger_mcp*"] exclude = ["dashboard*"]