mcp-adb/pyproject.toml
Ryan Malloy 7c414f8015 Refactor to MCPMixin architecture with injection-safe shell execution
Replaces single-file server with modular mixin architecture:
- 6 domain mixins (devices, input, apps, screenshot, ui, files)
- Injection-safe run_shell_args() using shlex.quote() for all tools
- Persistent developer mode config (~/.config/adb-mcp/config.json)
- Pydantic models for typed responses
- MCP elicitation for destructive operations
- Dynamic screen dimensions for scroll gestures
- Intent flag name resolution for activity_start
- 50 tools, 5 resources, tested on real hardware
2026-02-10 18:30:34 -07:00

61 lines
1.5 KiB
TOML

[project]
name = "android-mcp-server"
version = "0.3.1"
description = "Android ADB MCP Server for device automation via Model Context Protocol"
authors = [
{name = "Ryan Malloy", email = "ryan@supported.systems"}
]
readme = "README.md"
license = {text = "MIT"}
keywords = ["mcp", "android", "adb", "automation", "fastmcp"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Software Development :: Testing",
"Topic :: System :: Hardware :: Hardware Drivers",
]
dependencies = [
"fastmcp>=2.14.0,<3.0.0",
"pydantic>=2.12.0",
]
requires-python = ">=3.11"
[project.urls]
Homepage = "https://github.com/supported-systems/android-mcp-server"
Documentation = "https://github.com/supported-systems/android-mcp-server#readme"
Repository = "https://github.com/supported-systems/android-mcp-server"
[project.scripts]
android-mcp-server = "src.server:main"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[dependency-groups]
dev = [
"pytest>=9.0.0",
"pytest-asyncio>=1.3.0",
"ruff>=0.15.0",
"mypy>=1.19.0",
]
[tool.ruff]
target-version = "py311"
line-length = 88
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B", "SIM"]
[tool.mypy]
python_version = "3.11"
strict = true
[tool.hatch.build.targets.wheel]
packages = ["src"]