[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "u2-mcp" version = "0.4.0" description = "MCP server for Rocket Universe/UniData MultiValue databases" readme = "README.md" license = "Apache-2.0" requires-python = ">=3.10" authors = [ { name = "Peter", email = "peter@example.com" } ] keywords = ["mcp", "universe", "unidata", "multivalue", "pick", "database"] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Database", ] dependencies = [ "mcp>=1.24.0,<2", "uopy>=1.0.0", "pydantic-settings>=2.0.0", "uvicorn>=0.30.0", "httpx>=0.25.0", "starlette>=0.27.0", ] [project.optional-dependencies] dev = [ "pytest>=7.0.0", "pytest-cov>=4.0.0", "pytest-mock>=3.0.0", "pytest-asyncio>=0.21.0", "ruff>=0.1.0", "mypy>=1.0.0", ] [project.scripts] u2-mcp = "u2_mcp.server:main" [project.urls] Homepage = "https://github.com/bpamiri/u2-mcp" Documentation = "https://github.com/bpamiri/u2-mcp#readme" Repository = "https://github.com/bpamiri/u2-mcp" Issues = "https://github.com/bpamiri/u2-mcp/issues" [tool.hatch.build.targets.wheel] packages = ["src/u2_mcp"] [tool.ruff] line-length = 100 target-version = "py310" [tool.ruff.lint] select = ["E", "F", "I", "UP", "B", "SIM"] [tool.mypy] python_version = "3.10" warn_return_any = true disallow_untyped_defs = true # Relax checks for third-party libraries without type stubs ignore_missing_imports = true # FastMCP decorators and pydantic validators don't have full type annotations # call-arg disabled because pydantic-settings loads values from env vars at runtime disable_error_code = ["misc", "untyped-decorator", "call-arg"] [tool.pytest.ini_options] testpaths = ["tests"] markers = [ "integration: marks tests as integration tests (deselect with '-m \"not integration\"')", ] addopts = "-v"