MCP server for tangled
1[project] 2name = "tangled-mcp" 3dynamic = ["version"] 4description = "MCP server for Tangled git collaboration platform" 5readme = "README.md" 6authors = [{ name = "nate", email = "zzstoatzz@protonmail.com" }] 7requires-python = ">=3.10" 8dependencies = [ 9 "atproto", 10 "fastmcp>=2.12.4", 11 "httpx>=0.28.1", 12 "pydantic-settings>=2.11.0", 13 "python-dotenv>=1.1.1", 14 "websockets>=15.0.1", 15] 16 17[project.scripts] 18tangled-mcp = "tangled_mcp.__main__:main" 19 20[build-system] 21requires = ["hatchling", "uv-dynamic-versioning>=0.7.0"] 22build-backend = "hatchling.build" 23 24[tool.hatch.version] 25source = "uv-dynamic-versioning" 26 27[tool.uv-dynamic-versioning] 28vcs = "git" 29style = "pep440" 30bump = true 31fallback-version = "0.0.0" 32 33[tool.hatch.metadata] 34allow-direct-references = true 35 36[tool.uv.sources] 37atproto = { git = "https://github.com/MarshalX/atproto.git", rev = "refs/pull/605/head" } 38 39[dependency-groups] 40dev = [ 41 "pre-commit>=4.3.0", 42 "pytest>=8.4.2", 43 "pytest-asyncio>=1.2.0", 44 "ruff>=0.14.0", 45 "ty>=0.0.1a22", 46] 47 48[tool.pytest.ini_options] 49asyncio_mode = "auto" 50asyncio_default_fixture_loop_scope = "session" 51testpaths = ["tests"] 52python_files = ["test_*.py"] 53python_classes = ["Test*"] 54python_functions = ["test_*"] 55filterwarnings = [ 56 # upstream atproto issue: https://github.com/MarshalX/atproto/issues/625 57 "ignore::pydantic.warnings.UnsupportedFieldAttributeWarning", 58 # upstream: atproto SDK uses deprecated httpx API 59 "ignore::DeprecationWarning:httpx", 60] 61 62[tool.ty.src] 63include = ["src", "tests"] 64exclude = ["**/node_modules", "**/__pycache__", ".venv", ".git", "dist"] 65 66[tool.ty.environment] 67python-version = "3.10" 68 69[tool.ruff.lint] 70extend-select = ["I", "UP"] 71 72[tool.ruff.lint.per-file-ignores] 73"__init__.py" = ["F401"]