mcpField
D
droidprobe

droidprobe

本地服务
github.com/orhanbalci开发工具019 周前更新

关于 droidprobe

droidprobe 是面向开发者和 Agent 的 Rust 工具包,可通过 ADB 检查 Android 设备。它提供终端界面和 MCP 服务端,共用核心来检查设备、软件包和日志。

主要功能

  1. 01通过 ADB 检查 Android 设备
  2. 02查看硬件与软件包
  3. 03检查权限和组件
  4. 04浏览设备日志
  5. 05终端界面与共享核心

适用场景

  1. 01检查已安装软件包及权限
  2. 02查看 Android 设备日志
  3. 03通过 Agent 检查设备信息
  4. 04在终端界面浏览设备信息

MCP 相关

droidprobe-mcp 服务端向 MCP 客户端提供 10 个只读工具,用于检查设备、软件包和日志。它通过 stdio 通信,需能访问本地 ADB 服务和已连接的设备。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

droidprobe

用于通过 ADB(USB 调试)检查 Android 设备的模块化 Rust 工具包。 一个共享核心为两个前端提供支持:终端 UI(droidprobe)和供 Agent 使用的 MCP 服务(droidprobe-mcp)。

完整设计和分阶段计划请参阅 ARCHITECTURE.md。

截图

droidprobe 演示

概览软件包日志
概览选项卡软件包选项卡日志选项卡

工作区布局

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`)

前置条件

  • Rust 1.82+(推荐使用 rustup)
  • 正在运行的 adb 服务(adb start-server),以及已启用并授权 USB 调试的设备。

构建与测试

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

运行 TUI

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

运行 MCP 服务

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

将客户端指向构建好的二进制文件,并将其设为 stdio 服务,即可在 MCP 客户端(例如 Claude Desktop / Claude Code)中注册。工具均为只读。

在 Claude Code 中注册
cargo build -p droidprobe-mcp --release
claude mcp add droidprobe -- "$(pwd)/target/release/droidprobe-mcp"
claude mcp get droidprobe        # should show "Status: ✔ Connected"

这必须在运行 adb 服务并连接 USB 设备的同一台机器上执行——该服务无法访问无法通过 adb shell 连接的设备,因此除非将 adb 隧道连接回该服务,否则没有实际可行的方式将其与远程基础设施分离运行。

在 Claude Desktop 中注册

添加到 claude_desktop_config.json:

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

分发 droidprobe-mcp

发布到 crates.io

依赖路径的 crate 必须按依赖顺序发布——每个 crate 都需要其前置依赖已发布到 crates.io,cargo publish 才能解析:

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

crates.io 通常会在一两分钟内为新版本建立索引;如果在前一个 crate 发布后过早运行,下游 crate 的 cargo publish 会因“no matching package found”而失败。发布 droidprobe-mcp 后,任何安装了 Rust 的人都可以运行:

cargo install droidprobe-mcp
预构建二进制文件(无需 Rust 工具链)

每当推送 v*.*.* 标签时,.github/workflows/release.yml 都会为 macOS(Intel + Apple Silicon)、Linux x86_64 和 Windows x86_64 交叉构建 droidprobe(TUI)和 droidprobe-mcp,并将压缩包附加到 GitHub Release:

git tag v0.1.0
git push origin v0.1.0
列入 MCP 注册表

官方 MCP 注册表 通过专用 CLI 发布,并通过 GitHub OAuth 验证命名空间所有权。本仓库附带入门用的 server.json ——请将其 version 更新为与每个 crates.io 发布版本一致,然后:

brew install mcp-publisher
mcp-publisher login github
mcp-publisher publish        # validates server.json and submits it

添加自己的命令

实现 Command,将其包装在 TypedDyn 中,然后注册:

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

状态

包含 10 个经过测试的解析器、10 个内置命令、注册表/引擎/轮询器,以及一个包含概览/软件包/日志选项卡的 TUI(支持软件包搜索、权限,以及 activity/service/receiver/provider 组件选项卡);还有一个包含 10 个工具的 MCP 服务,涵盖相同的设备/软件包/日志范围。第 2–6 阶段(解析器覆盖范围、TUI 深度、ATK 命令对等、MCP 完善、稳健性)详见 ARCHITECTURE.md。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。