[build-system] requires = ["setuptools>=77", "wheel"] build-backend = "setuptools.build_meta" [project] name = "trmm-mcp" version = "1.1.0" description = "An MCP server for TacticalRMM, with an out-of-band human approval gate for privileged actions." readme = "README.md" requires-python = ">=3.11" license = "AGPL-3.0-or-later" authors = [{ name = "Walker Computers" }] keywords = ["mcp", "tacticalrmm", "rmm", "model-context-protocol", "claude"] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: System Administrators", "Programming Language :: Python :: 3.11", "Topic :: System :: Systems Administration", ] # Pinned to the versions this code is written and tested against. MCP SDK 2.0 # is API-incompatible with 1.x, so this is a floor AND a ceiling on the major. dependencies = [ "mcp==2.0.0", "mcp-types==2.0.0", "httpx==0.28.1", "starlette==1.3.1", "uvicorn==0.52.1", "pyotp==2.10.0", "qrcode==8.2", ] [project.urls] Homepage = "https://github.com/shin2344234/trmm-mcp" Documentation = "https://github.com/shin2344234/trmm-mcp/blob/master/README.md" [project.scripts] trmm-mcp = "trmm_mcp.server:main" # Operator tooling. Without these an installed copy could run the server but # had no way to enrol the approval password + TOTP, which elevate mode needs. trmm-mcp-setup-auth = "trmm_mcp.cli_setup_auth:main" trmm-mcp-approve = "trmm_mcp.cli_approve:main" trmm-mcp-logs = "trmm_mcp.cli_logs:main" [tool.setuptools] packages = ["trmm_mcp"] [tool.setuptools.package-data] trmm_mcp = ["py.typed"]