自动化控制服务器

Brobot MCP服务器是一个连接AI代理和Brobot Java自动化框架的中间件,通过RESTful API提供GUI自动化控制功能。

  • by jspinak
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 jspinak/brobot-mcp-server

使用说明

Brobot MCP服务器

模型上下文协议(MCP)服务器,使AI代理能够控制Brobot自动化应用程序并与之交互。

概述

Brobot MCP服务器提供了人工智能代理和Brobot Java自动化框架之间的桥梁。它通过RESTful API展示了Brobot的GUI自动化功能,允许人工智能系统:

  • 查询应用程序的当前状态结构
  • 通过屏幕截图和活动状态信息观察当前状态
  • 执行自动化操作(单击、键入、拖动等)

建筑

服务器充当中间件层:

AI Agent <--> Python MCP Server <--> Java Brobot CLI <--> Target Application

主要特点

  • 状态管理:查询并理解应用程序的状态结构
  • 实时观测:获取屏幕截图和活动状态信息
  • 动作执行:通过API执行GUI自动化操作
  • 基于FastAPI:现代、快速且文档齐全的API
  • 类型安全:完整的Pydantic模型验证
  • 开发者友好:API自动文档 /docs

安装

先决条件

  • Python 3.8或更高版本
  • Java 11或更高版本(适用于Brobot CLI)
  • Brobot框架

设置

  1. 克隆存储库:
git clone https://github.com/yourusername/brobot-mcp-server.git
cd brobot-mcp-server
  1. 安装软件包:
pip install -e .
  1. 对于开发,请使用dev依赖项进行安装:
pip install -e .[dev]

用法

启动服务器

使用以下命令运行服务器:

python -m mcp_server.main

或者使用已安装的命令:

brobot-mcp-server

服务器将于启动 http://localhost:8000 默认情况下。

API文档

服务器运行后,请访问:

  • 交互式API文档: http://localhost:8000/docs
  • 备选文件: http://localhost:8000/redoc

健康检查

验证服务器是否正在运行:

curl http://localhost:8000/health

预期响应:

{"status": "ok"}

CLI集成

服务器可以在两种模式下运行:

1.模拟模式(默认)

使用硬编码的模拟数据进行测试和开发。

2.CLI模式

与Brobot Java CLI集成,实现真正的自动化控制。

设置CLI模式:

  1. 构建Brobot CLI:
cd brobot-cli
gradle shadowJar  # or ./gradlew shadowJar
  1. 配置服务器: 创建一个 .env 文件:
USE_MOCK_DATA=false
BROBOT_CLI_JAR=brobot-cli/build/libs/brobot-cli.jar
  1. 启动服务器:
python -m mcp_server.main

服务器将自动检测并使用CLI(如果可用)。

API终点

核心终点

  • GET /api/v1/state_structure -获取应用程序的状态模型
  • GET /api/v1/observation -使用屏幕截图获取当前观察结果
  • POST /api/v1/execute -执行自动化操作
  • GET /api/v1/health -使用CLI状态进行扩展健康检查

Python客户端库

Python客户端库可用于轻松集成:

pip install brobot-client

快速示例:

from brobot_client import BrobotClient

with BrobotClient() as client:
    # Get current state
    observation = client.get_observation()
    
    # Perform actions
    client.click("button.png")
    client.type_text("Hello, Brobot!")

请参阅 客户文件 了解全部细节。

发展

运行测试

pytest

代码质量

运行linting和格式化:

black mcp_server tests
flake8 mcp_server tests
mypy mcp_server

贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

路线图

里程碑1:核心服务器和API合同定义✅

  • [x] 使用FastAPI进行初始项目设置
  • [x] 模拟API端点实现

里程碑2:Brobot集成✅

  • [x] 创建Brobot Java CLI包装器
  • [x] 将API端点连接到实时Brobot CLI

里程碑3:开发者体验

  • [x] Python客户端库
  • []综合文件

里程碑4:质量和自动化

  • []单元和集成测试
  • []CI/CD管道

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

支持

有关问题和功能请求,请使用 GitHub问题跟踪器.