[project] name = "t3code-mcp" version = "0.1.0" description = "MCP connector to T3 Code servers: dispatch coding threads on Бобёр's machines" readme = "README.md" authors = [ { name = "h", email = "h@kotikot.com" } ] requires-python = ">=3.13" dependencies = [ "fastmcp>=3.4.7", "httpx>=0.28", "pydantic>=2.13", "pydantic-settings>=2.14", "websockets>=15", ] [project.scripts] t3code-mcp = "t3code_mcp:main" [build-system] requires = ["uv_build>=0.11.14,<0.12.0"] build-backend = "uv_build" [dependency-groups] dev = [ "pytest>=9", "pytest-asyncio>=1.3", "ruff>=0.15.13", "ty>=0.0.37", ] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] [tool.ruff] target-version = "py313" [tool.ruff.lint] select = ["ALL"] ignore = [ "D203", "D212", "COM812", "T201", "D1", "PLC0415", "ANN401", "PLR0913", "PLR2004", "C901", "PLR0911", "PLR0912", "PLR0915", "PLR0917", "CPY001", "RUF001", "RUF002", "RUF003", "S104", ] unfixable = ["F401"] [tool.ruff.lint.per-file-ignores] "tests/*" = ["ALL"] "scripts/*" = ["INP001", "T201"] [tool.ruff.lint.pydocstyle] convention = "google" [tool.ruff.lint.isort] split-on-trailing-comma = false [tool.ruff.format] docstring-code-format = true skip-magic-trailing-comma = true