{
  "markdown": "# native-devtools-mcp\n\n> **An MCP server for computer use on native desktop and mobile apps — macOS, Windows, Android, and Chrome/Electron via CDP.**\n\n![Version](https://img.shields.io/npm/v/native-devtools-mcp?style=flat-square)\n![License](https://img.shields.io/npm/l/native-devtools-mcp?style=flat-square)\n![Platform](https://img.shields.io/badge/platform-macOS%20%7C%20Windows%20%7C%20Android-blue?style=flat-square)\n![Downloads](https://img.shields.io/npm/dt/native-devtools-mcp?style=flat-square)\n\n**Add to your client in one click:**\n\n[![Add to Cursor](https://img.shields.io/badge/Add%20to-Cursor-000000?style=flat-square)](cursor://anysphere.cursor-deeplink/mcp/install?name=native-devtools&config=eyJjb21tYW5kIjogIm5weCIsICJhcmdzIjogWyIteSIsICJuYXRpdmUtZGV2dG9vbHMtbWNwIl19)\n[![Install in VS Code](https://img.shields.io/badge/Install%20in-VS%20Code-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=native-devtools&config=%7B%22name%22%3A%20%22native-devtools%22%2C%20%22command%22%3A%20%22npx%22%2C%20%22args%22%3A%20%5B%22-y%22%2C%20%22native-devtools-mcp%22%5D%7D)\n\n**Claude Code:** `claude mcp add native-devtools -- npx -y native-devtools-mcp`\n\n`native-devtools-mcp` gives AI agents and MCP clients direct control over native desktop apps, Chrome/Electron browsers, and Android devices — screenshots, OCR, accessibility-first element lookup, input simulation, window management, Chrome DevTools Protocol (CDP), and ADB — all in one local server. Works with [Claude Desktop](https://claude.ai/download), [Claude Code](https://docs.anthropic.com/en/docs/claude-code), [Cursor](https://cursor.com), and other MCP-compatible clients.\n\n## Quickstart\n\n```bash\nnpx -y native-devtools-mcp\n```\n\n<div align=\"center\">\n<table>\n<tr>\n<td align=\"center\"><strong>macOS</strong></td>\n<td align=\"center\"><strong>Windows</strong></td>\n</tr>\n<tr>\n<td><img src=\"demo.gif\" width=\"450\" alt=\"macOS Demo\"></td>\n<td><img src=\"windows-demo-1.gif\" width=\"450\" alt=\"Windows Demo\"></td>\n</tr>\n</table>\n</div>\n\n---\n\n## 🚀 Features\n\n- **👀 Computer Vision:** Screenshots of screens, windows, or regions with built-in OCR (Vision on macOS, Windows Media OCR on Windows).\n- **🖱️ Input Simulation:** Click, drag, scroll, type — global coordinates, window-relative, and screenshot-relative targeting.\n- **🎯 Element-Precise AX Dispatch (macOS):** `take_ax_snapshot` → `ax_click` / `ax_set_value` / `ax_select` — dispatch against Accessibility-tree elements without moving the mouse or stealing focus. The preferred path for native macOS apps.\n- **🌐 Browser Automation (CDP):** Chrome DevTools Protocol for Chrome and Electron apps (Signal, Discord, VS Code, Slack) — DOM-level click, fill, navigate, and JS evaluation without a separate Node.js server.\n- **📱 Android (ADB):** Screenshots, uiautomator-based text lookup, input, and app management over USB or Wi-Fi.\n- **🧩 Template Matching:** `load_image` + `find_image` for icons, toggles, and custom controls OCR can't identify.\n- **🪟 Window Management:** List, focus, launch, and quit apps; record windows as timestamped JPEG frames.\n- **🔍 Hover Tracking:** Observe user navigation patterns with dwell-filtered hover events — designed for LLMs watching a user work.\n- **🔒 Local & Private:** 100% local execution. Screenshots and input never leave your machine.\n\n## 🧭 Three Approaches to Interaction\n\nPick the approach that matches your target app.\n\n| Approach              | Best for                                                                 | Key tools                                                               |\n|-----------------------|--------------------------------------------------------------------------|-------------------------------------------------------------------------|\n| **Visual** (universal)| Any app — games, Qt, custom renderers, anything without an AX tree       | `take_screenshot`, `find_text`, `click`, `type_text`, `find_image`      |\n| **AX Dispatch** (macOS — *preferred for native macOS apps*) | AppKit / SwiftUI apps — System Settings, Finder, Mail, Xcode, Notes | `take_ax_snapshot`, `ax_click`, `ax_set_value`, `ax_select`             |\n| **CDP** (Chrome / Electron) | Web content, Electron apps with `--remote-debugging-port`          | `cdp_connect`, `cdp_find_elements`, `cdp_take_dom_snapshot`, `cdp_click`, `cdp_fill` |\n\n> For macOS native apps, **AX Dispatch is the preferred path** — it's element-precise, doesn't move the mouse, and doesn't steal focus. See the [Native App AX Dispatch recipe](./examples/native-app-ax-dispatch-flow.md).\n\nThere's also a fourth, niche path: **AppDebugKit** (`app_connect` / `app_query` / `app_click`) for apps instrumented with the AppDebugKit library. Mostly useful for developers testing their own apps.\n\n## 🆚 How it compares\n\nThe most honest peers are other **MCP servers for computer use**. This table compares `native-devtools-mcp` against the leading MCP servers and two widely used non-MCP libraries.\n\n| Capability                     | native-devtools-mcp | [Playwright MCP][pw-mcp] | [Windows-MCP][win-mcp] | [Appium][appium] | [pywinauto][pwa] |\n|--------------------------------|:-------------------:|:------------------------:|:----------------------:|:----------------:|:----------------:|\n| Native macOS apps              | ✅ AX + screenshots | ❌ browser only           | ❌ Windows only        | ❌ mobile focus  | ❌ Windows only  |\n| Native Windows apps            | ✅ UIA + input      | ❌ browser only           | ✅                     | ◐ limited        | ✅                |\n| Web / DOM automation           | ✅ via CDP          | ✅                        | ◐ via Windows UIA      | ◐ mobile-web     | ❌                |\n| Electron apps                  | ✅ CDP + AX         | ✅ first-class `_electron`| ◐ if UIA exposed       | ❌                | ◐ if UIA exposed |\n| Android devices (ADB)          | ✅ built-in         | ◐ experimental            | ❌                     | ✅ first-class    | ❌                |\n| MCP-native                     | ✅                  | ✅                        | ✅                     | ❌                | ❌                |\n| Local, no API key              | ✅                  | ✅                        | ✅                     | ✅ self-hosted    | ✅                |\n\n[pw-mcp]: https://github.com/microsoft/playwright-mcp\n[win-mcp]: https://github.com/CursorTouch/Windows-MCP\n[appium]: https://github.com/appium/appium\n[pwa]: https://github.com/pywinauto/pywinauto\n\n**Where `native-devtools-mcp` stands out:** one local MCP server covering macOS + Windows + Chrome/Electron (CDP) + Android in the same session, plus element-precise macOS AX dispatch that doesn't move the cursor or steal focus.\n\n**Honest limits:**\n- **No Linux** (contributions welcome — see [Linux Desktop MCP](https://github.com/BeckhamLabsLLC/linux-desktop-mcp) for an AT-SPI2-based alternative in the meantime)\n- **Browser automation is Chrome / Electron only** via CDP — no Firefox, no WebKit (for those, use [Playwright MCP][pw-mcp])\n- **Headed only** — depends on real-machine permissions; not a headless CI test grid\n- **No iOS**\n\nIf you need *just* web automation, [Playwright MCP][pw-mcp] is more mature. If you need *just* mobile (iOS + Android + deep device features), [Appium][appium] is more mature. This server is for the cross-cutting native-desktop + Chrome/Electron + Android case.\n\n## 📦 Installation\n\nThe install steps are identical on macOS and Windows.\n\n### Option 1: Run with `npx` (no install needed)\n\n```bash\nnpx -y native-devtools-mcp\n```\n\n### Option 2: Global install\n\n```bash\nnpm install -g native-devtools-mcp\n```\n\n### Option 3: Build from source (Rust)\n\n<details>\n<summary>Click to expand build instructions</summary>\n\n**Using the build script** (clones, builds, and runs setup):\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/sh3ll3x3c/native-devtools-mcp/master/scripts/build-from-source.sh | bash\n```\n\n**Or manually:**\n\n```bash\ngit clone https://github.com/sh3ll3x3c/native-devtools-mcp\ncd native-devtools-mcp\ncargo build --release\n# Binary: ./target/release/native-devtools-mcp\n```\n\n</details>\n\n### Manual configuration (without the setup wizard)\n\n<details>\n<summary>Click to expand MCP client config snippets</summary>\n\n#### macOS — Claude Desktop\n\nConfig file: `~/Library/Application Support/Claude/claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"native-devtools\": {\n      \"command\": \"/Applications/NativeDevtools.app/Contents/MacOS/native-devtools-mcp\"\n    }\n  }\n}\n```\n\n#### Windows — Claude Desktop\n\nConfig file: `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n#### Claude Code, Cursor, and other MCP clients\n\n```json\n{\n  \"mcpServers\": {\n    \"native-devtools\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"native-devtools-mcp\"]\n    }\n  }\n}\n```\n\nRequires Node.js 18+.\n\n</details>\n\n> **macOS permissions:** the server needs **Accessibility** and **Screen Recording** permissions. The setup wizard opens the right System Settings panes for you. Without both, clicks silently fail and screenshots return a black rectangle.\n\n> **Linux is not supported yet.** The server uses platform-specific APIs (Core Graphics + Accessibility on macOS, Win32 + UI Automation on Windows) that don't exist on Linux. Contributions welcome — X11/Wayland screenshot, input, and AT-SPI paths would be a good first issue.\n\n## 🏁 Getting Started\n\nAfter installing, run the setup wizard:\n\n```bash\nnpx native-devtools-mcp setup\n```\n\nThis will:\n1. **Check permissions** (macOS) — verifies Accessibility and Screen Recording, opens System Settings if needed.\n2. **Detect your MCP clients** — finds Claude Desktop, Claude Code, and Cursor.\n3. **Write the configuration** — generates the correct JSON config and offers to write it for you.\n\nThen restart your MCP client and you're ready to go.\n\n> **Claude Desktop on macOS** requires the signed app bundle (Gatekeeper blocks npx). Download `NativeDevtools-X.X.X.dmg` from [GitHub Releases](https://github.com/sh3ll3x3c/native-devtools-mcp/releases), drag to `/Applications`, then run setup — it will detect the app and configure Claude Desktop to use it.\n\n> **VS Code, Windsurf, and other clients:** `setup` doesn't auto-detect these yet. Run `setup` for the permission checks, then see the manual configuration above for the JSON config snippet.\n\n> **Claude Code tip:** To avoid approving every tool call (clicks, screenshots), add this to `.claude/settings.local.json`:\n> ```json\n> { \"permissions\": { \"allow\": [\"mcp__native-devtools__*\"] } }\n> ```\n\n### ⚠️ Operational safety\n\n- **Hands off:** when the agent is \"driving\" (clicking / typing), don't move your mouse or type. Real hardware inputs conflict with simulated ones and clicks land in the wrong place.\n- **Focus matters:** ensure the window you want the agent to use is visible. If a popup steals focus mid-flow, the agent may type into the wrong window unless it re-checks first.\n- **Prefer AX Dispatch on macOS** when you want to keep using the machine — AX calls don't move the cursor and don't steal focus from whatever window is active.\n\n## 📚 Recipes and Examples\n\n- [Recipes Index](./examples/README.md)\n- [Claude Desktop Setup](./examples/claude-desktop-setup.md) · [Claude Code Setup](./examples/claude-code-setup.md) · [Cursor Setup](./examples/cursor-setup.md)\n- [End-to-End Desktop Flow](./examples/end-to-end-desktop-flow.md)\n- [Native App AX Dispatch Flow (macOS)](./examples/native-app-ax-dispatch-flow.md) — **preferred for native macOS apps**\n- [Native App Click Flow](./examples/native-app-click-flow.md)\n- [OCR Fallback and Element Inspection](./examples/ocr-fallback-and-element-inspection.md)\n- [Template Matching Flow](./examples/template-matching-flow.md)\n- [Android Quickstart](./examples/android-quickstart.md)\n\n## 🌐 Browser Automation (CDP)\n\nConnect to Chrome or Electron apps via the Chrome DevTools Protocol for DOM-level automation — more reliable than coordinate-based clicking for web content.\n\n```bash\n# Launch Chrome with remote debugging\nlaunch_app(app_name=\"Google Chrome\", args=[\"--remote-debugging-port=9222\", \"--user-data-dir=/tmp/chrome-profile\"])\n\n# Connect and automate\ncdp_connect(port=9222)\ncdp_navigate(url=\"https://example.com\")\ncdp_find_elements(query=\"search\")    # DOM walker with element UIDs (d1, d2, ...)\ncdp_fill(uid=\"d1\", value=\"search query\")\ncdp_press_key(key=\"Enter\")\ncdp_wait_for(text=[\"Results\"])\n```\n\n**18 CDP tools** — DOM snapshot, find elements, click, hover, fill, type, press key, navigate, handle dialogs, manage tabs, evaluate JS, element inspection, and more. Works with Chrome 136+, Chromium, and Electron apps (Signal, Discord, VS Code, Slack). See [`AGENTS.md`](./AGENTS.md) for the full tool reference.\n\n> **Chrome 136+ note:** requires `--user-data-dir=<path>` alongside `--remote-debugging-port` — Chrome silently ignores the debug port with the default profile. Electron apps only need `--remote-debugging-port`.\n\n## 📱 Android Support\n\nAndroid support is built-in. The server communicates with Android devices over ADB (USB or Wi-Fi), providing screenshots, input simulation, UI element search, and app management.\n\n### Prerequisites\n\n1. **ADB installed** on the host (`brew install android-platform-tools` on macOS, or via [Android SDK](https://developer.android.com/tools/releases/platform-tools)).\n2. **USB debugging enabled** on the device (Settings > Developer options > USB debugging).\n3. **ADB server running** — starts automatically when you run `adb devices`.\n\n### Tools\n\nAll Android tools are prefixed with `android_` and appear dynamically after connecting to a device:\n\n| Tool | Description |\n|------|-------------|\n| `android_list_devices` | List all ADB-connected devices (always available) |\n| `android_connect` | Connect to a device by serial number |\n| `android_disconnect` | Disconnect from the current device |\n| `android_screenshot` | Capture the device screen |\n| `android_find_text` | Find UI elements by text (via uiautomator) |\n| `android_click` | Tap at screen coordinates |\n| `android_swipe` | Swipe between two points |\n| `android_type_text` | Type text on the device |\n| `android_press_key` | Press a key (e.g., `KEYCODE_HOME`, `KEYCODE_BACK`) |\n| `android_launch_app` | Launch an app by package name |\n| `android_list_apps` | List installed packages |\n| `android_get_display_info` | Get screen resolution and density |\n| `android_get_current_activity` | Get the current foreground activity |\n\n### Typical workflow\n\n```\nandroid_list_devices           → find your device serial\nandroid_connect(serial=\"...\")  → connect (unlocks android_* tools)\nandroid_screenshot             → see what's on screen\nandroid_find_text(text=\"OK\")   → locate a button\nandroid_click(x=..., y=...)    → tap it\n```\n\n<details>\n<summary><strong>Known issues & advanced setup</strong></summary>\n\n**MIUI / HyperOS (Xiaomi, Redmi, POCO devices):** input injection (`android_click`, `android_type_text`, `android_press_key`, `android_swipe`) and `android_find_text` (via uiautomator) require an additional security toggle:\n\n> **Settings > Developer options > USB debugging (Security settings)** — enable this toggle. MIUI may require you to sign in with a Mi account to enable it.\n\nWithout this, you'll see `INJECT_EVENTS permission` errors for input tools and `could not get idle state` errors for `android_find_text`. Screenshot and device info tools work without this toggle.\n\n**Wireless ADB:** to connect without a USB cable, first connect via USB and run:\n```bash\nadb tcpip 5555\nadb connect <phone-ip>:5555\n```\nThen use the `<phone-ip>:5555` serial in `android_connect`.\n\n**Smoke tests:** verify all Android tools against a real connected device. They are `#[ignore]`d by default:\n```bash\ncargo test --test android_smoke_tests -- --ignored --test-threads=1\n```\nTests must run sequentially since they share a single physical device. The device must be unlocked and awake.\n\n</details>\n\n## 🔐 Security & Trust\n\nThis tool requires Accessibility and Screen Recording permissions — that's a lot of trust. Here's how to verify it deserves it.\n\n### Verify your binary\n\n```bash\nnative-devtools-mcp verify\n```\n\nComputes the SHA-256 hash of the running binary and checks it against the official checksums published on the [GitHub Releases](https://github.com/sh3ll3x3c/native-devtools-mcp/releases) page. If the hash matches, you're running an unmodified official build.\n\n### Audit the code\n\n[`SECURITY_AUDIT.md`](SECURITY_AUDIT.md) documents exactly which permissions are used, where in the source code, and includes an LLM audit prompt you can paste into any AI model for an independent security review.\n\n### What this server does NOT do\n\n- **No unsolicited network access.** The server never phones home. Network is only used when the MCP client explicitly invokes `app_connect` (WebSocket to a local debug server) or when you run the `verify` subcommand (fetches checksums from GitHub).\n- **No file scanning.** Does not read or index your files. The only file reads are `load_image` (a path the MCP client explicitly provides) and short-lived temp files for screenshots (deleted immediately after capture).\n- **No background persistence.** Exits when the MCP client disconnects.\n- **No data exfiltration.** Screenshots are returned to the MCP client via stdout, never stored or transmitted elsewhere.\n\n## ❓ FAQ\n\n**Does it work on Linux?** Not yet — macOS, Windows, and Android only. The server uses Core Graphics + Accessibility APIs on macOS and Win32 + UI Automation on Windows. An X11/Wayland + AT-SPI port would be a welcome contribution.\n\n**Does it need an API key?** No. The server runs entirely locally and makes no outbound API calls. Your MCP client may need its own LLM API key (Anthropic, OpenAI, etc.), but the server itself does not.\n\n**How is this different from Claude Computer Use?** Claude Computer Use is an [Anthropic API beta tool](https://docs.anthropic.com/en/docs/build-with-claude/computer-use) — it works with Claude Opus, Sonnet, and Haiku behind a beta header and requires an Anthropic API key. It operates via screenshots + coordinate-based mouse/keyboard actions. `native-devtools-mcp` is model-agnostic (anything that speaks MCP), runs 100% locally with no API dependency, and adds element-precise macOS AX dispatch, Chrome DevTools Protocol, and Android over ADB.\n\n**Does it work with local models (Ollama, LM Studio, etc.)?** Yes — as long as the client speaks MCP. Any MCP-compatible client can connect. Non-MCP clients can wrap the server behind a bridge.\n\n**Is it free / open source?** Yes, MIT-licensed. See [`LICENSE`](./LICENSE).\n\n**Does it record what I'm doing?** No — unless you explicitly call `start_recording`, which writes to a directory you specify and stops on `stop_recording`. Hover tracking likewise runs only while `start_hover_tracking` is active. Nothing is recorded or sent anywhere otherwise.\n\n**How does it compare to Playwright or [Playwright MCP](https://github.com/microsoft/playwright-mcp)?** Playwright is the mature choice for pure web automation — Chromium, Firefox, and WebKit, plus first-class Electron support via `_electron.launch()` and experimental Android automation. Playwright MCP wraps it as an MCP server for AI agents. If you only need web / Electron automation, use Playwright MCP. `native-devtools-mcp` covers native macOS / Windows apps and Android devices in addition to Chrome/Electron, in one local MCP server — which Playwright MCP does not.\n\n## 🏗️ Architecture\n\n```mermaid\ngraph TD\n    Client[Claude / LLM Client] <-->|JSON-RPC 2.0| Server[native-devtools-mcp]\n    Server -->|Direct API| Sys[System APIs]\n    Server -->|CDP / WebSocket| Chrome[Chrome / Electron]\n    Server -->|WebSocket| Debug[AppDebugKit]\n    Server -->|ADB Protocol| Android[Android Device]\n\n    subgraph \"Your Machine\"\n        Sys -->|Screen/OCR| macOS[CoreGraphics / Vision]\n        Sys -->|Input| Win[Win32 / SendInput]\n        Sys -->|Text Search| UIA[UI Automation]\n        Sys -->|AX Snapshot + Dispatch| AXapi[Accessibility API - macOS]\n        Chrome -.->|DOM-level| ChromeApp[Web Page / Electron UI]\n        Debug -.->|Inspect| App[Instrumented App]\n    end\n\n    subgraph \"Android Device (USB/Wi-Fi)\"\n        Android -->|screencap| Screen[Screenshots]\n        Android -->|input| Input[Tap / Swipe / Type]\n        Android -->|uiautomator| UITree[UI Hierarchy]\n    end\n```\n\n<details>\n<summary><strong>🔧 Technical Details (Under the Hood)</strong></summary>\n\n| OS | Feature | API Used |\n|----|---------|----------|\n| **macOS** | Screenshots | `screencapture` (CLI) |\n| | Input | `CGEvent` (CoreGraphics) |\n| | Text Search (`find_text`) | `Accessibility API` (primary), Vision OCR (fallback) |\n| | AX Snapshot + Dispatch (`take_ax_snapshot` / `ax_click` / `ax_set_value` / `ax_select`) | Accessibility API — AX tree walk, `AXPress` action, `kAXValueAttribute` write, `AXSelectedRows` write (focus-preserving, no mouse movement) |\n| | Element Inspection (`element_at_point`) | `AXUIElementCopyElementAtPosition` + AX tree walk fallback |\n| | Hover Tracking (`start_hover_tracking`) | `CGEvent` cursor + Accessibility API polling |\n| | Screen Recording (`start_recording`) | `CGWindowListCreateImage` at configurable fps |\n| | OCR | `VNRecognizeTextRequest` (Vision Framework) |\n| **Windows** | Screenshots | `BitBlt` (GDI) |\n| | Input | `SendInput` (Win32) |\n| | Text Search (`find_text`) | `UI Automation` (primary), WinRT OCR (fallback) |\n| | Element Inspection (`element_at_point`) | `IUIAutomation::ElementFromPoint` |\n| | Hover Tracking (`start_hover_tracking`) | `GetCursorPos` + UI Automation polling |\n| | Screen Recording (`start_recording`) | `BitBlt` (GDI) at configurable fps |\n| | OCR | `Windows.Media.Ocr` (WinRT) |\n| **Android** | Screenshots | `screencap` / ADB framebuffer |\n| | Input | `adb shell input` (tap, swipe, text, keyevent) |\n| | Text Search (`find_text`) | `uiautomator dump` (accessibility tree) |\n| | Device Communication | `adb_client` crate (native Rust ADB protocol) |\n| **Chrome / Electron** | DOM-level automation | Chrome DevTools Protocol via `chromiumoxide` |\n\n### Screenshot Coordinate Precision\n\nScreenshots include metadata for accurate coordinate conversion:\n\n- `screenshot_origin_x/y`: Screen-space origin of the captured area (in points)\n- `screenshot_scale`: Display scale factor (e.g., 2.0 for Retina displays)\n- `screenshot_pixel_width/height`: Actual pixel dimensions of the image\n- `screenshot_window_id`: Window ID (for window captures)\n\n**Coordinate conversion:**\n```\nscreen_x = screenshot_origin_x + (pixel_x / screenshot_scale)\nscreen_y = screenshot_origin_y + (pixel_y / screenshot_scale)\n```\n\n**Implementation notes:**\n- **Window captures** (macOS): uses `screencapture -o` which excludes window shadow. Captured dimensions match `kCGWindowBounds × scale` exactly, so click coordinates derived from screenshots land on intended UI elements.\n- **Region captures:** origin coordinates are aligned to integers to match the actual captured area.\n\n</details>\n\n## 🪟 Windows Notes\n\nWorks out of the box on **Windows 10/11**.\n\n- Uses standard Win32 APIs (GDI, SendInput).\n- `find_text` uses **UI Automation (UIA)** as the primary search mechanism, querying the accessibility tree for element names. This is the same accessibility-first approach used on macOS. Falls back to OCR automatically when UIA finds no matches.\n- OCR uses the built-in Windows Media OCR engine (offline).\n- **Cannot interact with \"Run as Administrator\" windows** unless the MCP server itself is also running as Administrator.\n- **Screen recording** uses GDI/BitBlt at configurable fps (default 5). For higher fps or game capture, DXGI Desktop Duplication API would provide hardware-accelerated capture — a planned future upgrade.\n\n## 🤖 For AI Agents\n\nAgent-oriented usage — intent definitions, schema examples, reasoning patterns — lives in [**`AGENTS.md`**](./AGENTS.md). It's a compact, token-optimized reference designed for ingestion by LLMs (Claude, Gemini, GPT, local models). If you're an AI agent reading this README to decide whether to use the server, go there next.\n\n## ⭐ Star History\n\n<a href=\"https://www.star-history.com/?repos=sh3ll3x3c%2Fnative-devtools-mcp&type=date&legend=bottom-right\">\n <picture>\n   <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/chart?repos=sh3ll3x3c/native-devtools-mcp&type=date&theme=dark&legend=bottom-right\" />\n   <source media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/chart?repos=sh3ll3x3c/native-devtools-mcp&type=date&legend=bottom-right\" />\n   <img alt=\"Star History Chart\" src=\"https://api.star-history.com/chart?repos=sh3ll3x3c/native-devtools-mcp&type=date&legend=bottom-right\" />\n </picture>\n</a>\n\n## 📜 License\n\nMIT © [sh3ll3x3c](https://github.com/sh3ll3x3c)\n",
  "bytes": 24781,
  "sha": "30f5a07a874357c367d1ed789663e566ee6247079c36a0fdea09a509be5e9acb",
  "repo_slug": "sh3ll3x3c/native-devtools-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_sh3ll3x3c_native_devtools_148b5f08/readme"
}