内容
# robosimtools-mcp
一个 [MCP](https://modelcontextprotocol.io) 服务器,暴露了 [robosimtools.com](https://robosimtools.com) 的 12 种机器人/仿真工具,供 AI 代理使用。这里的工具逻辑与 robosimtools.com 为浏览器提供的代码**相同**,并被移植到 `lib/` 目录中,因此该服务器是自包含的。所有计算都在本地进行;不会上传任何数据。
> 这是 robosimtools.com 的开源 MCP 服务器。网站本身是一个独立的项目;只有它已经公开提供的浏览器工具被包含在这里(参见 [移植模块](#vendored-modules))。
## 工具
| 工具 | 功能 |
|------|--------------|
| `robosim_convert_rotation` | 四元数 ↔ 欧拉角(12 种序列)↔ 3×3 矩阵 ↔ 轴角 ↔ URDF 滚转-俯仰-偏航。 |
| `robosim_dh_to_urdf` | Denavit-Hartenberg 表 → URDF 联动链(标准或修改/Craig)。 |
| `robosim_diff_ardupilot_params` | 差异两个 ArduPilot `.param` 文件;更改 / 添加 / 删除。 |
| `robosim_mesh_mass_properties` | STL/OBJ → 质量,重心,全惯性张量。 |
| `robosim_validate_urdf` | URDF 结构验证 — 树,惯性合理性,关节限制。 |
| `robosim_inspect_urdf` | URDF → 链接,关节,运动根,自由度。 |
| `robosim_xacro_to_urdf` | 展开 Xacro 属性,宏,条件,包含 → URDF。 |
| `robosim_urdf_to_mjcf` | URDF → MuJoCo MJCF。 |
| `robosim_sdf_to_urdf` | Gazebo SDF → URDF,具有正确的相对关节原点。 |
| `robosim_step_to_urdf` | STEP/IGES CAD → URDF,具有每个实体的惯性(OCCT WASM 内核)。 |
| `robosim_generate_sbom` | Lockfile(npm/pip/cargo/go)→ CycloneDX 1.6 SBOM。 |
| `robosim_cra_readiness` | 欧盟网络弹性法案范围向导。 |
每个工具都是只读的,没有副作用。
## 安装
```bash
git clone https://github.com/RahulRajelli/robosimtools-mcp
cd robosimtools-mcp
npm install
```
## 使用
服务器通过标准输入/输出进行通信,因此任何支持本地 MCP 服务器的客户端都可以使用。替换下面的路径为你克隆仓库的实际路径。
### Claude Desktop
在 `claude_desktop_config.json` 中添加并重启:
```json
{
"mcpServers": {
"robosimtools": {
"command": "node",
"args": ["ABSOLUTE/PATH/TO/robosimtools-mcp/src/index.js"]
}
}
}
```
### OpenAI Codex CLI
在 `~/.codex/config.toml` 中添加并重启 Codex:
```toml
[mcp_servers.robosimtools]
command = "node"
args = ["ABSOLUTE/PATH/TO/robosimtools-mcp/src/index.js"]
```
> ChatGPT 自己的连接器针对**远程**(HTTP)MCP 服务器 — 对于此本地标准输入/输出服务器,请使用 Codex CLI 或 Claude Desktop。
然后询问,例如: *"将四元数(w=0.707,x=0,y=0,z=0.707)转换为 URDF 滚转-俯仰-偏航"*, 或 *"将此 STEP 文件转换为具有计算惯性的 URDF。"*
## 测试
```bash
npm test # 39 个已知答案检查,涵盖所有 12 种工具
npm run test:e2e # 通过标准输入/输出连接一个真正的 MCP 客户端
```
## 移植模块
`lib/` 目录包含工具逻辑 — 与 robosimtools.com 在 `robosimtools.com/js/*.js` 目录下提供的 ES 模块**相同**。它们被移植(不是在运行时获取)以使软件包自包含。要从本地站点克隆刷新它们:
```bash
node scripts/sync-from-site.mjs /path/to/site/public/js
```
## 设计笔记
- **Node 中的 DOM。** 四个工具(URDF 验证器,Xacro,MJCF,SDF 转换器)使用浏览器 `DOMParser`/`XMLSerializer`。`src/browser-globals.js` 通过 [linkedom](https://github.com/WebReflection/linkedom) 提供这些功能,以便模块运行不变(其 `XMLSerializer` 删除 linkedom 添加的 XML 前言,以匹配浏览器)。
- **CAD 内核。** `robosim_step_to_urdf` 加载 `occt-import-js`(OpenCascade 的 7.6 MB WASM 版本)并在首次使用时延迟加载。
- **纯 JS ESM**,零构建步骤。
## 许可证
MIT