Android 远程控制 MCP 服务器

使用说明

  • 项目简介

    • 该应用是一个在 Android 设备上运行的服务器型应用,按 MCP(Model Context Protocol)协议提供上下文服务,核心职责包括托管资源、注册和执行工具、定义并渲染提示模板,并通过 JSON-RPC 的 HTTP/HTTPS 接口与客户端通信。服务器可在本地或公网环境通过隧道暴露,便于 AI 模型访问并控制设备。
  • 主要功能点

    • MCP 服务器:在设备上暴露 /mcp 端点,支持基于 JSON-RPC 的请求和响应,提供流式 HTTP 传输(非 SSE)和 Bearer Token 身份认证。
    • 资源与数据访问:提供对设备数据和资源的读取、查询等能力。
    • 工具注册与执行:提供多类工具接口,覆盖屏幕、系统动作、文本输入、文件操作、相机、通知等。
    • 提示模板支持:定义与渲染用于与 LLM 交互的提示模板。
    • 安全与部署:支持自签证书、HTTPS、端口/绑定地址配置、隧道公开访问、基于前台服务的持续运行等。
    • 传输与会话:支持多传输协议、会话管理、能力声明等,确保安全、可扩展的上下文服务。
  • 安装步骤

    1. 构建应用
      • 使用项目提供的构建脚本在本地或 CI 环境构建 APK。
    2. 部署到设备/模拟器
      • 将应用安装到设备或模拟器中。
    3. 授权与权限
      • 启用无障碍服务、授予相机/麦克风等权限(如有需要)。
    4. 启动 MCP 服务器
      • 在应用内点击“Start Server”,默认监听 http://127.0.0.1:8080,HTTPS 可选启用。
    5. 远端连接(可选)
      • 如服务器绑定本地地址,需要在主机端进行端口转发,或通过隧道暴露公网上的 URL。
    6. 与客户端对接
      • 使用客户端提供的 Bearer Token 进行身份验证,向 /mcp 端点发送 JSON-RPC 请求。
  • 服务器配置(供 MCP 客户端理解的描述,JSON 格式示例描述;注意:客户端通常不需要直接执行此配置,该部分用于描述如何从客户端了解服务器启动参数) server_name: “AndroidRemoteControlMCP” command: [ "adb", "shell", "am", "start", "-n", "com.danielealbano.androidremotecontrolmcp/.services.mcp.AdbServiceTrampolineActivity", "--es", "action", "start" ] args: { "bearer_token": "<设备端自动生成的令牌,客户端需提供该值进行鉴权>", "binding_address": "127.0.0.1", "port": 8080, "https_enabled": false, "certificate_source": "AUTO_GENERATED", "tunnel_enabled": false, "device_slug": "" }

  • 基本使用方法

    • 客户端连接:使用 Bearer Token(在设备连接信息中可查看/复制)向服务器 /mcp 发送 JSON-RPC 请求,例如查询可用工具、调用具体工具、获取屏幕状态等。
    • 常见操作示例:列出工具、调用具体工具(如模拟点击、输入文本、截屏等),并通过工具返回的结果进行后续处理。
    • 安全注意:仅在受信任网络中暴露服务器,开启 HTTPS 时使用自签证书或自有证书链,确保 Bearer Token 的安全性。

服务器信息