droidprobe

io.github.orhanbalci由 GitHub 账号 orhanbalci 发布v0.1.0更新于 Oct 24, 2026

Read-only MCP server to inspect an Android device over ADB: hardware, packages, permissions, logs.

已验证STDIO仅桌面开发者工具安全与监控

概览

AI 生成的概览

一个只读的 MCP 服务器,通过 ADB 检查 Android 设备,向助手提供硬件、应用包、权限和日志信息。

可以做什么
通过 ADB 查看设备与硬件概况,例如已连接设备的概览和状态。浏览已安装的应用包,包括包搜索和权限信息。检查应用组件,如 activity、service、receiver 和 provider。读取设备日志用于排查问题。所有工具均为只读,覆盖与配套终端界面相同的设备、应用包和日志范围。
适用场景
适合在调试或排查时让助手查看通过 USB 连接的 Android 设备:了解安装了哪些应用、某应用拥有哪些权限、声明了哪些组件,或日志内容,而无需离开对话。
运行要求
作为本地进程运行,需与 ADB 服务器及通过 USB 连接的设备在同一台机器上,并已启用并授权 USB 调试。可用 Rust 1.82+ 构建,或使用预编译二进制;在 MCP 客户端中注册为指向该二进制的 stdio 服务器。未声明任何环境变量或凭据。
安装前请注意
需要访问 ADB 服务器和已连接设备,无法访问不能执行 adb shell 的设备;远程或分离部署需将 ADB 隧道转发。设备上的日志和应用包数据会传给助手。工具声明为只读,但设备本身是实时目标。

安装

在 SourceWeft 中

  1. 打开 控制台中的 droidprobe,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

droidprobe

Modular Rust toolkit for inspecting an Android device over ADB (USB debugging). One shared core powers two front-ends: a terminal UI (droidprobe) and an MCP server (droidprobe-mcp) for agents.

See ARCHITECTURE.md for the full design and phased plan.

Screenshots

[droidprobe walkthrough]

Workspace layout

droidprobe/├── Cargo.toml                      # workspace + shared dep versions├── ARCHITECTURE.md└── crates/    ├── droidprobe-parser/   # raw text -> structured data (pure, no I/O)    ├── droidprobe-command/  # Command trait, Transport, built-in catalog    ├── droidprobe-core/     # Registry + Engine + Poller    ├── droidprobe-tui/      # ratatui binary  (bin: `droidprobe`)    └── droidprobe-mcp/      # rmcp binary     (bin: `droidprobe-mcp`)

Prerequisites

  • Rust 1.82+ (rustup recommended)
  • A running adb server (adb start-server) and a device with USB debugging enabled and authorized.

Build & test

bash
cargo build --workspacecargo test  --workspace        # parser + command tests run without a device

Run the TUI

bash
cargo run -p droidprobe-tui# Tab switches views, q quits. Logs are written to ./droidprobe.log

Run the MCP server

bash
cargo run -p droidprobe-mcp        # speaks MCP over stdio

Register it with an MCP client (e.g. Claude Desktop / Claude Code) by pointing the client at the built binary as a stdio server. Tools are read-only.

Register with Claude Code

bash
cargo build -p droidprobe-mcp --releaseclaude mcp add droidprobe -- "$(pwd)/target/release/droidprobe-mcp"claude mcp get droidprobe        # should show "Status: ✔ Connected"

This must run on the same machine as the adb server and the USB-attached device — the server has no way to reach a device it can't adb shell into, so there's no meaningful way to run it detached on remote infrastructure unless you tunnel adb back to it.

Register with Claude Desktop

Add to claude_desktop_config.json:

json
{  "mcpServers": {    "droidprobe": {      "command": "/absolute/path/to/target/release/droidprobe-mcp"    }  }}

Distributing droidprobe-mcp

Publish to crates.io

Path-dependent crates must publish in dependency order — each one needs its predecessors already live on crates.io before cargo publish will resolve:

bash
cargo login                                    # one-time, needs your crates.io API tokencargo publish -p droidprobe-parsercargo publish -p droidprobe-command            # only after droidprobe-parser is livecargo publish -p droidprobe-core               # only after droidprobe-command is livecargo publish -p droidprobe-mcp                # only after droidprobe-core is livecargo publish -p droidprobe-tui                # optional, same dependency floor as mcp

crates.io indexes new releases within a minute or two; cargo publish for a downstream crate will fail with "no matching package found" if you run it too soon after the one before it. Once droidprobe-mcp is published, anyone with Rust installed can run:

bash
cargo install droidprobe-mcp

Prebuilt binaries (no Rust toolchain needed)

.github/workflows/release.yml cross-builds both droidprobe (TUI) and droidprobe-mcp for macOS (Intel + Apple Silicon), Linux x86_64, and Windows x86_64 whenever a v*.*.* tag is pushed, and attaches the archives to a GitHub Release:

bash
git tag v0.1.0git push origin v0.1.0

List in the MCP registry

The official MCP registry publishes via a dedicated CLI and validates namespace ownership through GitHub OAuth. A starter server.json is included in this repo — update its version to match each crates.io release, then:

bash
brew install mcp-publishermcp-publisher login githubmcp-publisher publish        # validates server.json and submits it

Adding your own command

Implement Command, wrap it in TypedDyn, and register it:

rust
let mut registry = droidprobe_core::registry::Registry::with_builtins();registry.register(Box::new(droidprobe_command::TypedDyn(MyCommand)));

Status

10 tested parsers, 10 built-in commands, the registry/engine/poller, a TUI with Overview/Packages/Logs tabs (package search, permissions, and activity/service/receiver/provider component tabs), and a 10-tool MCP server covering the same device/package/log surface. Phases 2–6 (parser breadth, TUI depth, ATK command parity, MCP polish, robustness) are described in ARCHITECTURE.md.

License

MIT

来源:README.md,提交 2cda4ec

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分