[package]
name = "native-devtools-mcp"
version = "0.10.1"
edition = "2021"
license = "MIT"
description = "MCP server for computer use & browser automation — screenshot, OCR, click, type, find_text, Chrome/Electron CDP, template matching. macOS, Windows & Android."
repository = "https://github.com/sh3ll3x3c/native-devtools-mcp"
keywords = ["mcp", "computer-use", "ui-automation", "android", "screenshot"]
categories = ["development-tools::testing", "accessibility"]
exclude = ["*.gif"]
[features]
default = ["find_image_fast", "cdp"]
find_image_fast = ["find_image_simd", "find_image_parallel"]
find_image_simd = ["dep:wide"]
find_image_parallel = ["dep:rayon"]
cdp = ["dep:chromiumoxide"]
[dependencies]
rmcp = { version = "1", features = ["server", "transport-io", "macros"] }
tokio = { version = "1", features = ["full"] }
tokio-util = { version = "0.7", features = ["rt"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
base64 = "0.22"
image = { version = "0.25", default-features = false, features = ["png", "jpeg"] }
tempfile = "3"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
thiserror = "2"
tokio-tungstenite = "0.24"
futures-util = "0.3"
url = "2.5"
sha2 = "0.10.9"
ureq = "3"
rayon = { version = "1.10", optional = true }
wide = { version = "0.7", optional = true }
chromiumoxide = { version = "0.9", optional = true, default-features = false }
adb_client = "3"
quick-xml = "0.39"
[target.'cfg(target_os = "macos")'.dependencies]
core-graphics = "0.24"
core-foundation = "0.10"
cocoa = "0.26"
objc = "0.2"
[target.'cfg(target_os = "windows")'.dependencies]
windows = { version = "0.58", features = [
"implement",
"Win32_Foundation",
"Win32_Graphics_Gdi",
"Win32_Graphics_Dwm",
"Win32_UI_WindowsAndMessaging",
"Win32_UI_Input_KeyboardAndMouse",
"Win32_UI_HiDpi",
"Win32_UI_Accessibility",
"Win32_System_Com",
"Win32_System_Threading",
"Win32_System_ProcessStatus",
"Win32_System_SystemServices",
"Graphics_Imaging",
"Media_Ocr",
"Storage_Streams",
"Foundation",
"Foundation_Collections",
]}
[lints.rust]
unexpected_cfgs = "allow"
[dev-dependencies]
tempfile = "3"
criterion = "0.5"
[[bench]]
name = "find_image_bench"
harness = false