内容
# 机器人工作室 MCP 服务器桥
一种模型上下文协议(MCP)服务器,允许 AI 助手与 ABB 机器人工作室交互。系统由两部分组成:
1. **C# 加载项**:在机器人工作室中运行的 .NET Framework DLL,在 8080 端口上公开本地 HTTP REST API
2. **TypeScript MCP 服务器**:公开 MCP 工具并与 C# 加载项通信的 Node.js 应用程序
## 项目结构
```
/robotstudio-mcp
/src
server.ts # TypeScript MCP 服务器
package.json
tsconfig.json
/addin
RobotStudioAddin.cs # 加载项的 C# 源代码
RobotStudioMcpAddin.csproj
addin.xml # 加载项清单
packages.config # NuGet 依赖项
```
## 前置条件
- ABB 机器人工作室 2024(或兼容版本)
- .NET Framework 4.8 SDK
- Node.js 18 或更高版本
- Visual Studio 2022(或 MSBuild)
## 构建 C# 加载项
### 1. 更新 SDK 引用
编辑 `addin/RobotStudioMcpAddin.csproj` 并更新 RobotStudio SDK 路径以匹配您的安装:
```xml
<Reference Include="ABB.Robotics.RobotStudio">
<HintPath>C:\Program Files (x86)\ABB\RobotStudio 2024\Bin\ABB.Robotics.RobotStudio.dll</HintPath>
</Reference>
```
### 2. 恢复 NuGet 包
```bash
cd addin
nuget restore
```
或使用 Visual Studio,右键单击解决方案并选择“恢复 NuGet 包”。
### 3. 构建加载项
使用 MSBuild:
```bash
cd addin
msbuild RobotStudioMcpAddin.csproj /p:Configuration=Release
```
或在 Visual Studio 中打开 `RobotStudioMcpAddin.csproj` 并构建。
构建后事件将自动将 DLL 复制到:
```
%LocalAppData%\ABB\RobotStudio\Addins\RobotStudioMcpAddin\
```
### 4. 手动安装(如果需要)
如果构建后事件未运行,请手动复制这些文件:
```
addin\bin\Release\RobotStudioMcpAddin.dll
addin\bin\Release\Newtonsoft.Json.dll
addin\addin.xml
```
到:
```
%LocalAppData%\ABB\RobotStudio\Addins\RobotStudioMcpAddin\
```
## 构建 TypeScript MCP 服务器
```bash
cd src
npm install
npm run build
```
## 运行系统
### 1. 启动机器人工作室
1. 启动 ABB 机器人工作室
2. 打开或创建带有虚拟控制器的站点
3. 加载项自动加载并在 8080 端口上启动 HTTP 服务器
4. 在机器人工作室输出窗口中检查:“机器人工作室 MCP 加载项已启动。在 8080 端口上监听”
### 2. 验证加载项正在运行
直接测试 HTTP API:
```bash
curl http://localhost:8080/health
curl http://localhost:8080/status
curl http://localhost:8080/joints
```
### 3. 配置 Claude Desktop
将以下内容添加到您的 Claude Desktop 配置中(`%AppData%\Claude\claude_desktop_config.json`):
```json
{
"mcpServers": {
"robotstudio": {
"command": "node",
"args": ["C:/Users/YOUR_USERNAME/robotstudio-mcp/src/dist/server.js"]
}
}
}
```
用您的实际 Windows 用户名替换 `YOUR_USERNAME`。
### 4. 重启 Claude Desktop
更新配置后,重启 Claude Desktop 以加载 MCP 服务器。
## 可用的 MCP 工具
### `get_robot_joints`
从机器人工作室虚拟控制器中的活动机器人读取实时关节位置(J1-J6)。以度为单位返回关节角度。
**示例响应:**
```
机器人关节位置(度):
J1:0.000°
J2:0.000°
J3:0.000°
J4:0.000°
J5:90.000°
J6:0.000°
```
### `control_simulation`
启动或停止机器人工作室仿真。
**参数:**
- `action`:`"start"` 或 `"stop"`
### `get_station_status`
获取机器人工作室的当前状态,包括站点是否打开、仿真状态和虚拟控制器信息。
## HTTP API 端点(加载项)
| 端点 | 方法 | 描述 |
|----------|--------|-------------|
| `/health` | GET | 健康检查 |
| `/status` | GET | 站点和仿真状态 |
| `/joints` | GET | 当前关节位置 |
| `/simulation` | POST | 控制仿真(`{"action": "start\|stop"}`) |
## 故障排除
### “无法连接到机器人工作室”
- 确保机器人工作室正在运行
- 检查加载项是否已加载(在输出窗口中查找消息)
- 验证 8080 端口是否未被防火墙阻止
- 使用 `curl http://localhost:8080/health` 进行测试
### “未找到虚拟控制器”
- 在机器人工作室中打开包含虚拟控制器的站点
- 虚拟控制器必须正在运行(已启动)
### 加载项未加载
- 检查加载项文件夹:`%LocalAppData%\ABB\RobotStudio\Addins\RobotStudioMcpAddin\`
- 确保 `addin.xml`、`RobotStudioMcpAddin.dll` 和 `Newtonsoft.Json.dll` 存在
- 在 `addin.xml` 中检查机器人工作室版本兼容性
### SDK 引用构建错误
- 更新 `.csproj` 文件中的 `<HintPath>` 元素以匹配您的机器人工作室安装路径
- 常见路径:
- `C:\Program Files (x86)\ABB\RobotStudio 2024\Bin\`
- `C:\Program Files\ABB\RobotStudio 2024\Bin\`
## 许可证
MIT