[project] name = "docsonar" version = "0.1.1" description = "Local document search MCP server — chat with your folders, fully offline." readme = "README.md" requires-python = ">=3.11" license = "MIT" license-files = ["LICENSE"] authors = [{ name = "Ribhav Jain" }] keywords = ["mcp", "search", "rag", "local", "documents", "fts5", "sqlite"] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Text Processing :: Indexing", ] dependencies = [ "mcp>=1.10.0", "platformdirs>=4.0.0", "sentence-transformers>=3.0.0", "sqlite-vec>=0.1.6", "pypdf>=5.0.0", "python-docx>=1.1.0", "numpy>=1.26.0", ] [project.urls] Homepage = "https://github.com/ribhav-jain/docsonar" Repository = "https://github.com/ribhav-jain/docsonar" Issues = "https://github.com/ribhav-jain/docsonar/issues" [project.scripts] docsonar = "docsonar.cli:main" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [dependency-groups] dev = [ "pytest>=8.0.0", "ruff>=0.8.0", "mypy>=1.13.0", ] [tool.ruff] line-length = 100 target-version = "py311" [tool.ruff.lint] select = ["E", "F", "W", "I", "UP", "B", "SIM", "RUF"] [tool.mypy] # 3.12, not 3.11: numpy's stubs use PEP 695 syntax that mypy rejects under 3.11 # semantics. Runtime support remains 3.11 (requires-python above). python_version = "3.12" strict = true warn_unreachable = true [[tool.mypy.overrides]] module = ["sentence_transformers", "sentence_transformers.*", "sqlite_vec"] ignore_missing_imports = true [tool.pytest.ini_options] testpaths = ["tests"] addopts = "-q"