返回市场
括号机器人-MCP

括号机器人-MCP

作者:BracketBotCapstone3 星标更新:2025-03-14

项目介绍

多机器人控制MCP代理

该项目创建了一个MCP(模型上下文协议)服务器,允许AI代理通过现有的FastAPI机器人控制系统来控制多个机器人。

功能

  • 同时控制多个机器人
  • 控制机器人移动(前进、后退、左转、右转)
  • 通过机器人的扬声器播放声音
  • 获取机器人状态信息
  • 精确速度控制
  • 访问机器人摄像头图像
  • 统一API并指定端口

预备条件

  • Python 3.10+
  • UV(Python包管理器)
  • 多个运行中的机器人控制FastAPI服务器(如示例中提供的)

安装

  1. 确保激活了Python 3.10环境
  2. 使用UV安装依赖项:
    uv pip install -e .
    

使用方法

  1. 启动机器人控制FastAPI服务器:

    • 第一个机器人在8000端口
    • 其他机器人在8001、8002等端口
  2. 重要更新: Claude桌面客户端现在会自动为你运行MCP服务器

    • 不需要手动启动服务器 python server.py
    • MCP服务器功能已直接集成到Claude桌面客户端中
  3. MCP服务器允许AI代理控制多个机器人并访问它们的摄像头。

可用工具

所有工具都接受一个port参数(默认:8000),用于指定要控制哪个机器人。

移动控制

  • drive_forward:向前移动机器人
  • drive_backward:向后移动机器人
  • turn_left:左转机器人
  • turn_right:右转机器人
  • stop:停止机器人移动
  • drive:使用精确的速度值进行控制

音频控制

  • beep:通过机器人的扬声器播放声音

摄像头访问

  • get_camera_image:获取机器人摄像头的图像

系统信息

  • robot_status:获取机器人状态信息
  • list_available_robots:列出所有可用的机器人及其状态

可用资源

  • robot://info/{port}:获取特定机器人能力的信息

示例

# 从8000端口的机器人获取状态
status_robot1 = await client.robot_status(port=8000)

# 从8001端口的机器人获取状态
status_robot2 = await client.robot_status(port=8001)

# 让两个机器人发出不同音调的声音
await client.beep(port=8000, frequency=440, duration=1.0)  # 机器人1发出A4音符
await client.beep(port=8001, frequency=523.25, duration=1.0)  # 机器人2发出C5音符

# 列出所有可用的机器人
robots = await client.list_available_robots()

关于图像处理的说明

摄像头图像工具使用MCP的原生Image类来处理图像数据。这使得AI代理可以接收一种能够被客户端正确处理的图像数据格式,而无需额外转换。