Native DevTools MCP

使用说明(Markdown 格式)

  • 项目简介

    • 这是一个基于 MCP(Model Context Protocol)的后端服务器实现,面向在本地桌面环境中为 AI 模型提供“眼睛”和“手”的能力。通过注册和执行多种工具(Tool),实现诸如截图、OCR、窗口与应用管理、以及模板图像匹配等功能,并可与具备 AppDebugKit 的应用进行深度交互。
  • 主要功能点

    • 提供通用工具(如 take_screenshot、click、type_text、find_text、load_image、find_image、get_displays、get_displays 等)以支持“看见”和“操作”桌面应用。
    • 支持 AppDebugKit 的应用调试工具集合(app_connect、app_disconnect、app_get_info、app_get_tree、app_query、app_get_element、app_click、app_type、app_focus、app_screenshot 等)。
    • 通过 JSON-RPC 2.0 风格的请求/响应进行通信,服务端实现了 MCP 的核心服务端接口:
      • 获取服务器信息(get_info)
      • 列出工具(list_tools)
      • 调用工具(call_tool)
    • 本地化运行:当前实现通过 stdio 传输,具备在本地、离线环境中对 AI 模型进行上下文提供和功能执行的能力;未来可扩展为 SSE/WebSocket 等传输。
  • 安装步骤

    • 构建与运行(本项目以 Rust 编写,提供两种常用方式):
      • 直接从源码构建并运行(Release 构建后运行二进制)。
      • 使用现成发行包或通过包管理器安装后直接运行。
    • 运行后,MCP 服务器将通过标准输入输出对外提供 JSON-RPC 服务,客户端通过该通道发起请求。
  • 服务器配置(MCP 客户端所需信息)

    • 说明:MCP 客户端需要提供一个配置,用于指明要连接的 MCP 服务器的启动信息。该配置通常包含服务器名称、服务器启动命令(command)以及启动参数(args)。配置内容需为 JSON 格式,并包含以下字段:
      • serverName(字符串):服务器在本地配置中的名称,如 "native-devtools"。
      • command(字符串):启动 MCP 服务器的可执行文件路径或命令名,例如本仓库编译出的二进制名 "native-devtools-mcp"。
      • args(数组):启动命令的参数列表,若无参数则为空数组。
    • 配置示例(描述性文本,不作为代码呈现,便于理解):在客户端的配置中为该 MCP 服务器设置一个唯一名称,指向服务器二进制以及任何需要的启动参数,以便客户端在需要时能够启动并连接到 MCP 服务器。
  • 基本使用方法

    • 启动服务器:根据你的环境选择上述任一方式启动服务器。
    • 配置客户端连接:在 MCP 客户端的配置中添加该服务器的启动信息(serverName、command、args),以便客户端能够通过指定的命令启动并连接 MCP 服务器。
    • 客户端与服务器交互:通过 JSON-RPC 的请求/响应格式,客户端可以调用服务器暴露的工具,例如 take_screenshot、find_text、app_connect、app_disconnect 等,服务器将返回执行结果或错误信息。
    • 安全与权限:部分桌面交互工具在 macOS 需要系统权限(屏幕录制、辅助功能等),请按照服务器运行环境的要求完成系统权限配置。

服务器信息