[project] name = "sauce-api-mcp" version = "1.2.2" description = "MCP servers for Sauce Labs APIs (Core & RDC OpenAPI)" authors = [{name = "Sauce Labs Open Source", email = "opensource@saucelabs.com"}] license = {text = "Apache-2.0"} readme = "README.md" requires-python = ">=3.10" dependencies = [ "httpx>=0.28.1", "pydantic>=2.12.5", "mcp>=1.24.0", "pyyaml>=6.0.3", "fastmcp>=3.2.0", ] classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", ] [project.scripts] sauce-api-mcp = "sauce_api_mcp.main:main" sauce-api-mcp-rdc = "sauce_api_mcp.rdc_dynamic:main" [project.optional-dependencies] test = [ "pytest>=9.0.3", "pytest-asyncio>=1.3.0" ] [build-system] requires = ["setuptools>=64", "wheel"] build-backend = "setuptools.build_meta" [tool.pytest.ini_options] testpaths = ["tests"] python_files = ["test_*.py"] asyncio_mode = "auto" addopts = "--strict-markers --verbose" markers = [ "slow: marks tests as slow (allocate real devices, cost minutes)", "integration: marks tests as integration tests", "live: marks tests that hit live Sauce Labs APIs (require credentials)", ] [tool.setuptools.packages.find] where = ["src"] include = ["sauce_api_mcp*"] [tool.setuptools.package-dir] "" = "src" # --------------------------------------------------------------------------- # python-semantic-release # --------------------------------------------------------------------------- [tool.semantic_release] version_toml = ["pyproject.toml:project.version"] tag_format = "v{version}" commit_message = "chore(release): v{version} [skip ci]" build_command = '''jq --arg v "$NEW_VERSION" '.version = $v | .packages[0].version = $v' server.json > server.tmp && mv server.tmp server.json''' assets = ["server.json"] [tool.semantic_release.branches.main] match = "main" prerelease = false