[build-system] # Pinned: an unpinned backend silently changed the emitted # Metadata-Version between 0.1.0 (2.4) and 0.2.0 (2.5) with no change # here, which older twine then rejected. Builds should be reproducible. requires = ["hatchling>=1.32,<2"] build-backend = "hatchling.build" [project] name = "mcp-gatehouse" version = "0.2.0" description = "Permission tiers, approval gates, and audit logging for MCP servers — the server is the gatekeeper." readme = "README.md" license = "MIT" requires-python = ">=3.10" authors = [{ name = "Nick George", email = "nick@nickgeorgeai.com" }] keywords = [ "mcp", "model-context-protocol", "ai-agents", "security", "audit-log", "permissions", ] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Software Development :: Libraries", "Topic :: Security", ] dependencies = ["mcp>=2,<3"] [project.scripts] mcp-gatehouse-demo = "mcp_gatehouse.demo:main" # Alias so `uvx mcp-gatehouse` / `pipx run mcp-gatehouse` resolve without --from. mcp-gatehouse = "mcp_gatehouse.demo:main" [project.urls] Homepage = "https://nickgeorgeai.com/mcp" Repository = "https://github.com/nickgeorgeseo/mcp-gatehouse" [project.optional-dependencies] dev = [ "pytest>=8", "anyio>=4", "build", # <7 monkeypatches packaging to cap Metadata-Version at 2.4, which # rejects the 2.5 metadata hatchling emits. "twine>=7", ] [tool.hatch.build.targets.wheel] packages = ["src/mcp_gatehouse"] [tool.pytest.ini_options] testpaths = ["tests"]