多机器人控制MCP Agent
该项目创建了一个MCP(模型上下文协议)服务器,允许AI代理通过现有的FastAPI机器人控制服务器控制多个机器人。
特性
- 同时控制多个机器人
- 控制机器人运动(向前、向后、向左、向右)
- 通过机器人的扬声器播放声音
- 获取机器人状态信息
- 精确的速度控制
- 访问机器人摄像头图像
- 具有端口规范的统一API
先决条件
- Python 3.10+
- UV(Python包管理器)
- 多个正在运行的机器人控制FastAPI服务器(如示例所示)
设置
- 确保Python 3.10环境处于活动状态
- 使用UV安装依赖项:
uv pip install -e .用法
- 启动机器人控制FastAPI服务器:
- 8000端口上的第一个机器人 - 8001、8002等上的任何其他机器人
- 重要更新: Claude桌面客户端现在会自动为您运行MCP服务器
- 无需手动启动服务器 python server.py - MCP服务器功能直接集成到Claude桌面客户端中
- 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}:获取有关特定机器人能力的信息
例子
# Get status from robot on port 8000
status_robot1 = await client.robot_status(port=8000)
# Get status from robot on port 8001
status_robot2 = await client.robot_status(port=8001)
# Make both robots beep with different tones
await client.beep(port=8000, frequency=440, duration=1.0) # A4 note on robot 1
await client.beep(port=8001, frequency=523.25, duration=1.0) # C5 note on robot 2
# Get a list of all available robots
robots = await client.list_available_robots()图像处理注意事项
相机图像工具使用MCP的原生 Image 用于处理图像数据的类。这允许AI代理以客户端可以正确处理的格式接收图像数据,而不需要额外的转换。
