MCP服务器-os-level桌面自动化后端

使用说明(简要步骤):

  • 项目简介
    • 该仓库实现了一个基于 MCP 的后端服务器,能够接收 MCP 客户端发送的 JSON-RPC 请求,处理初始化、执行工具函数等操作,并通过 HTTP/STDIO 等传输方式与客户端通信。当前实现重点在 macOS 的桌面UI自动化能力,提供打开应用、读取文本、点击、输入文本、按键等工具函数的服务端执行能力。
  • 主要功能点
    • MCP协议核心处理:实现 initialize、executeToolFunction 等方法的请求解析与响应封装,符合 MCP 的请求/响应格式。
    • 服务器端实现:使用 Axum 构建 HTTP 服务,暴露 /mcp 等入口,处理 JSON-RPC 请求并返回标准 JSON-RPC 响应。
    • 工具函数与交互:提供 openApplication、openUrl、listInteractableElements、clickByIndex、typeByIndex、pressKeyByIndex、inputControl 等工具函数的后端实现,便于 LLM 调用外部功能。
    • 跨平台框架雏形:包含 macOS Accessibility 引擎实现(MacOSEngine、MacOSUIElement 等),并提供对 Linux/Windows 的占位实现,方便未来扩展。
    • 会话与权限:包含对 macOS Accessibility 权限的检查与提示机制,确保在具备权限环境中运行。
  • 安装步骤
    • 需要 Rust 环境,推荐使用最新版 Rust 工具链。
    • 构建与运行(本地开发环境示例):
      • 进入 mcp-server-os-level 目录后,执行 cargo build 或 cargo run --bin server(在该仓库中 server.rs 是主入口二进制)。
      • 服务器启动后默认监听 http://127.0.0.1:8080/mcp,供 MCP 客户端连接。
    • 说明:该实现的服务器目标是提供 MCP 协议的后端处理与 API,具体部署方式可根据生产环境调整。
  • 服务器配置(MCP客户端需要配置的启动信息) 以下配置用于 MCP 客户端在启动阶段连接并使用该服务器。请将以下 JSON 作为 MCP 客户端的启动配置输入。该配置仅用于客户端启动参数,不包含客户端具体代码逻辑: { "server_name": "desktop-ui-automation-backend", "command": ["cargo", "run", "--bin", "server", "--release"], "args": [] } 说明:
    • server_name:服务器名称,标识当前 MCP 服务端实现。
    • command:启动后端服务器的命令,这里建议使用 cargo run --bin server(夜间构建阶段请使用实际可执行文件路径,如直接执行 cargo run 或已打包的 server 可执行文件路径)。
    • args:启动参数(如需要额外开启特性或指定配置文件等,可在此填写),当前实现默认使用端口 8080 的 HTTP 服务。
  • 基本使用方法
    • 启动后端服务,确保能访问 http://127.0.0.1:8080/mcp。
    • 通过 MCP 客户端进行初始化请求(initialize),以声明能力(工具、资源等)。
    • 使用 executeToolFunction 调用已注册的工具函数,例如 openApplication、openUrl、listInteractableElements、clickByIndex、typeByIndex、pressKeyByIndex、inputControl 等。
    • 客户端可根据需要扩展资源、提供自定义工具及能力描述,后端将按照 MCP 协议返回相应的 JSON-RPC 响应。

服务器信息