
Mbotmcp
deemkeen
README
MBotMcp
https://github.com/user-attachments/assets/a11d68c5-dc52-4dab-9741-bc1cf47e2ec9
本项目演示了如何使用 Spring AI 和模型上下文协议 (MCP) 控制 mBot2 机器人。 通过此设置,AI 模型可以通过简单的自然语言命令(如“探索”或“向左转”)来控制物理机器人。
概述
该系统包括:
- 一个实现模型上下文协议的 Spring Boot 应用程序
- 一个用于消息传递的 MQTT 代理
- 在 mBot2 机器人上运行的 Python 代码
- AI 客户端集成功能
Spring 应用程序将机器人控制命令公开为 AI 可调用函数, 允许 AI 模型通过自然语言控制物理机器人。
前提条件
- Java 21
- Maven
- mBot2 机器人和 mBlock IDE
- MQTT 代理(可以在 Docker 中运行)
- 基础 Java 知识
设置说明
1. MQTT 代理设置(可选,如果您没有)
运行包含的 Docker Compose 文件来设置 MQTT 代理:
cd mbotmcp/assets
docker-compose up -d
这将创建一个消息队列,用于在您的应用程序和机器人之间传递命令。
2. 配置 Spring Boot 应用程序
设置以下环境变量:
MQTT_USERNAME=your_username # 如果未配置,则留空
MQTT_PASSWORD=your_password # 如果未配置,则留空
MQTT_SERVER_URI=tcp://your_server:1883
这些变量告诉您的应用程序如何连接到 MQTT 代理。
3. mBot2 设置
要将 Python 脚本上传到您的 mBot2:
- 通过 USB 将您的 mBot2 连接到您的计算机
- 在您的计算机上打开 mBlock IDE
- 单击“文件”菜单并选择“打开”
- 导航到存储库中的
/assets
目录 - 打开
mbot-mqtt.py
文件 - 修改脚本以包含您的个人 WiFi 和 MQTT 配置:
ssid = "<您的 wifi ssid>" ssid_password = "<您的 wifi 密码>" mqtt_ip = "<mqtt 代理的 IP 地址>" mqtt_port = 1883 mqtt_user = "<您的 mqtt 用户名>" mqtt_password = "<您的 mqtt 密码>"
- 将脚本上传到您的 mBot2
- 启动您的 mBot2
4. 构建 Spring Boot 应用程序
mvn clean package
测试设置
- 确保您的 MQTT 代理正在运行
- 启动您的 mBot2 并确保它已连接到 WiFi
- 运行测试客户端:
mvn test -Dtest=ClientStdioTest
- 观看您的机器人执行带有蓝色 LED 灯的“beep”命令!
可用的机器人命令
BotService 类定义了所有 MCP 工具,您的机器人可以理解:
mbotExplore()
- 执行“探索”例程mbotStop()
- 停止机器人mbotBeep()
- 使机器人发出哔哔声mbotLeft()
- 将机器人向左转mbotRight()
- 将机器人向右转mbotForward()
- 使机器人向前移动mbotBackward()
- 使机器人向后移动
与 AI 模型集成
一切正常后,您可以与支持 MCP 的 LLM 客户端集成。 我个人推荐 Goose 用于此目的。 只需将这些客户端指向您的服务器,它们就可以根据自然语言请求自主控制您的机器人。
示例自然语言命令:
- "探索房间"
- "向右转并前进"
- "发出哔哔声"
工作原理
- Spring 应用程序使用
@Tool
注释将机器人命令公开为工具 - Spring 中的 MCP 服务器将这些工具连接到外部世界
- 当 AI 想要控制您的机器人时,它通过协议调用这些方法
- 命令通过 MQTT 发送到机器人
- 机器人根据收到的消息执行命令
免责声明
如果您的机器人开始计划统治世界,作者不承担任何责任。 只需拔掉电源并逃跑! 😂
许可证
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
MCP Package Docs Server
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
mermaid-mcp-server
一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。
Jira-Context-MCP
MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

Linear MCP Server
一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。
Curri MCP Server
通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。