[project] name = "mcp-virtual-computer" version = "0.2.11" description = "A persistent Docker or Fly computer with a cinematic Three.js MCP App" authors = [ {name = "Steve Cosman, Chesterfield Laboratories Inc", email = "scosman@users.noreply.github.com"} ] classifiers = [ "License :: OSI Approved :: MIT License", "Intended Audience :: Developers", ] readme = "README.md" requires-python = ">=3.13" dependencies = [ "certifi>=2026.1.4", "mcp>=1.26.0,<2", "websockets>=15.0.1,<16", ] [project.urls] Homepage = "https://github.com/flujo-app/mcp-virtual-computer" Repository = "https://github.com/flujo-app/mcp-virtual-computer" Issues = "https://github.com/flujo-app/mcp-virtual-computer/issues" Upstream = "https://github.com/Kiln-AI/Kilntainers" [project.scripts] mcp-virtual-computer = "kilntainers.cli:main" [project.entry-points."kilntainers.backends"] docker = "kilntainers.backends.docker:DockerBackend" fly = "kilntainers.backends.fly:FlyBackend" [tool.hatch.build.targets.wheel] packages = ["src/kilntainers"] [tool.hatch.build.targets.wheel.force-include] "src/kilntainers/dashboard.html" = "kilntainers/dashboard.html" "src/kilntainers/desktop_image" = "kilntainers/desktop_image" [tool.uv] package = true [tool.uv.sources] [tool.setuptools.package-data] "kilntainers" = ["dashboard.html", "desktop_image/*"] [dependency-groups] dev = [ "coverage>=7.13.4", "diff-cover>=10.2.0", "dotenv>=0.9.9", "pytest>=9.0.2", "pytest-asyncio>=0.26.0", "pytest-cov>=7.0.0", "pytest-timeout>=2.4.0", "pytest-xdist>=3.6.0", "ruff==0.15.4", "ty==0.0.20", ] [tool.ty.src] exclude = ["**/.venv", "build"] [tool.ruff] exclude = [] [tool.ruff.lint] # I is import sorting # F401 is unused imports # RUF is ruff rules. In particular 012+008 are mutable defaults (important) select = ["E4", "E7", "E9", "F"] extend-select = ["I","F401","RUF","TID"] [tool.pytest.ini_options] asyncio_mode = "auto" timeout = 65 timeout_method = "thread" markers = [ "integration: marks integration tests that require a backend (deselect with '-m \"not integration\"')", "e2e: marks end-to-end tests that run full server lifecycles (deselect with '-m \"not e2e\"')", "http_integration: marks HTTP transport integration tests (deselect with '-m \"not http_integration\"')", ]