使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 的服务器,专为 Windows 桌面自动化设计。它利用 node-autoit-koffi 库,将 AutoIt 的强大自动化功能通过 MCP 协议暴露给 LLM 应用,使得 LLM 能够以标准化的方式与 Windows 桌面进行交互,执行各种自动化任务。

主要功能点

  • 全面的自动化工具: 封装了所有 AutoIt 功能作为 MCP 工具,包括鼠标、键盘操作,窗口管理,进程控制,UI 元素(控件)交互等。
  • 灵活的资源访问: 提供文件系统访问和屏幕截图资源,允许 LLM 获取本地文件内容和桌面图像。
  • 便捷的 Prompt 模板: 内置常用自动化任务的 Prompt 模板,例如窗口交互、表单填写、任务自动化和监控等,方便用户快速上手。
  • 多种传输协议支持: 支持 Stdio (标准输入输出) 和 WebSocket 两种传输协议,满足不同应用场景的需求。
  • 类型安全: 使用 TypeScript 开发,代码类型严格,提高稳定性和可维护性。

安装步骤

  1. 克隆仓库

    git clone https://github.com/mario-andreschak/mcp-windows-desktop-automation.git
    cd mcp-windows-desktop-automation
  2. 安装依赖

    npm install
  3. 构建项目

    npm run build

服务器配置

MCP 客户端需要配置以下信息以连接到此 MCP 服务器。以下是 JSON 格式的配置信息,请根据您的实际需求进行调整。

{
  "serverName": "Windows Desktop Automation",
  "command": "npm",
  "args": [ "start" ],
  "注": "以上为默认 Stdio 传输配置,服务器启动命令为 'npm start',无额外参数。",
  "示例配置-WebSocket传输": {
    "command": "npm",
    "args": [ "start", "--", "--transport=websocket", "--port=3000" ],
    "注": "使用 WebSocket 传输,端口设置为 3000。需要添加 '--' 符号来分隔 npm start 命令和服务器参数。"
  },
  "示例配置-Verbose日志": {
    "command": "npm",
    "args": [ "start", "--", "--verbose" ],
    "注": "启用详细日志输出,方便调试。需要添加 '--' 符号来分隔 npm start 命令和服务器参数。"
  }
}

配置参数说明:

  • 'serverName': 服务器名称,固定为 "Windows Desktop Automation"。
  • 'command': 启动服务器的命令,通常为 'npm' 或 'node'。
  • 'args': 传递给启动命令的参数,以数组形式提供。
    • 默认配置 '["start"]': 使用 Stdio 传输启动服务器。
    • WebSocket 传输配置 '["start", "--", "--transport=websocket", "--port=3000"]': 启动 WebSocket 传输模式,并设置端口为 3000。您可以根据需要修改端口号。注意:'--transport' 和 '--port' 参数前需要添加 '--' 分隔符,以确保参数正确传递给服务器程序。
    • Verbose 日志配置 '["start", "--", "--verbose"]': 启用详细日志输出,方便开发和调试。注意:'--verbose' 参数前需要添加 '--' 分隔符。

基本使用方法

  1. 启动服务器: 根据您的配置选择合适的命令启动服务器。例如,使用默认 Stdio 传输,在项目根目录下运行 'npm start'。如需使用 WebSocket 传输,请参考上述配置示例修改启动命令。

  2. 连接 MCP 客户端: 在您的 MCP 客户端应用中,配置上述服务器配置信息,连接到正在运行的 MCP 服务器。

  3. 调用工具、资源和 Prompt: 连接成功后,您可以使用 MCP 客户端调用服务器提供的各种工具(例如鼠标点击 'mouseClick'、窗口激活 'winActivate' 等)、访问资源(例如读取文件 'file'、获取屏幕截图 'screenshot' 等)以及使用 Prompt 模板来辅助完成复杂的自动化任务。

可用工具类别:

  • 鼠标操作 (mouse)
  • 键盘操作 (keyboard)
  • 窗口管理 (window)
  • 进程管理 (process)
  • 控件交互 (control)

可用资源:

  • 文件访问 (file)
  • 屏幕截图 (screenshot)

可用 Prompt 模板:

  • 窗口交互 (window interaction)
  • 表单填写 (form filling)
  • 任务自动化 (automation tasks)
  • 监控 (monitoring)

请参考仓库中的 'src/tools'、'src/resources' 和 'src/prompts' 目录下的代码,了解每个工具、资源和 Prompt 模板的具体功能和参数。

信息

分类

桌面与硬件