forked from AtomDancing/tlbm-mcp
137 lines
3.5 KiB
Markdown
137 lines
3.5 KiB
Markdown
# TLBM MCP Server
|
||
|
||
TLBM 无人车运营 API 的 MCP 封装,支持 Hermes、Claude Code 等 AI Agent 直接调用运营接口。
|
||
|
||
## 功能
|
||
|
||
- **车辆状态查询**:实时状态、不可用统计、工作时长指标、行驶距离
|
||
- **车辆轨迹回放**:指定日期的轨迹和状态信息
|
||
- **订单管理**:运单汇总查询、SDK订单操作、车辆绑定
|
||
- **用户管理**:用户注册、角色查询
|
||
- **微信登录**:小程序登录、手机号获取
|
||
- **内部管理**:重新聚合、状态推导(需Admin Key)
|
||
|
||
## 安装
|
||
|
||
### 方式一:一键安装(推荐)
|
||
|
||
```bash
|
||
curl -fsSL https://git.atomdancing.com/AtomDancing/tlbm-mcp/raw/branch/main/install.sh | bash
|
||
```
|
||
|
||
### 方式二:从源码安装
|
||
|
||
```bash
|
||
git clone https://git.atomdancing.com/AtomDancing/tlbm-mcp.git
|
||
cd tlbm-mcp
|
||
npm install
|
||
npm run build
|
||
npm link
|
||
```
|
||
|
||
## 配置
|
||
|
||
### Hermes Agent
|
||
|
||
在 `~/.hermes/config.yaml` 中添加:
|
||
|
||
```yaml
|
||
mcp_servers:
|
||
tlbm:
|
||
command: npx
|
||
args: ["-y", "tlbm-mcp"]
|
||
env:
|
||
TLBM_API_URL: "https://www.atomdancing.com/pm"
|
||
TLBM_ADMIN_KEY: "" # 可选,用于内部管理接口
|
||
```
|
||
|
||
### Claude Code / Claude Desktop
|
||
|
||
在 `~/.claude/settings.json` 中添加:
|
||
|
||
```json
|
||
{
|
||
"mcpServers": {
|
||
"tlbm": {
|
||
"command": "npx",
|
||
"args": ["-y", "tlbm-mcp"],
|
||
"env": {
|
||
"TLBM_API_URL": "https://www.atomdancing.com/pm",
|
||
"TLBM_ADMIN_KEY": ""
|
||
}
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
## 工具列表
|
||
|
||
| 工具名 | 功能 |
|
||
|--------|------|
|
||
| `mcp_tlbm_list_vehicle_status` | 查询所有车辆最新状态 |
|
||
| `mcp_tlbm_get_vehicle_status` | 查询指定车辆状态 |
|
||
| `mcp_tlbm_list_vehicle_by_status` | 按状态码筛选车辆 |
|
||
| `mcp_tlbm_get_vehicle_metrics` | 查询工作时长指标 |
|
||
| `mcp_tlbm_get_vehicle_unavailability` | 统计不可用时长 |
|
||
| `mcp_tlbm_list_vehicle_unavailability` | 所有车辆不可用统计 |
|
||
| `mcp_tlbm_get_vehicle_drive_mile` | 统计行驶距离 |
|
||
| `mcp_tlbm_get_vehicle_path_playback` | 轨迹回放 |
|
||
| `mcp_tlbm_get_vehicle_detail` | 车辆详情(含司机) |
|
||
| `mcp_tlbm_get_order_summary` | 查询运单汇总 |
|
||
| `mcp_tlbm_get_today_orders` | 当日运单列表 |
|
||
| `mcp_tlbm_get_orders_by_date` | 指定日期运单 |
|
||
| `mcp_tlbm_get_unfinished_orders` | 未完成运单 |
|
||
| `mcp_tlbm_get_sdk_order_list` | SDK订单列表 |
|
||
| `mcp_tlbm_get_sdk_order_detail` | SDK订单详情 |
|
||
| `mcp_tlbm_bind_vehicle_to_order` | 绑定车辆到订单 |
|
||
| `mcp_tlbm_get_user_roles` | 查询用户角色 |
|
||
| `mcp_tlbm_get_user_by_openid` | 按OpenID查询用户 |
|
||
| `mcp_tlbm_register_user` | 注册用户 |
|
||
| `mcp_tlbm_wx_login` | 微信小程序登录 |
|
||
| `mcp_tlbm_wx_get_phone` | 获取微信手机号 |
|
||
|
||
## 车辆状态码说明
|
||
|
||
| 状态码 | 状态名称 |
|
||
|--------|----------|
|
||
| 0 | 关机 |
|
||
| 1 | 开机 |
|
||
| 2 | 任务中 |
|
||
| 3 | 故障 |
|
||
| 4 | 充电中 |
|
||
| 5 | 不可接单 |
|
||
| 6 | OTA升级中 |
|
||
| 71 | 有任务装货开门 |
|
||
| 72 | 有任务卸货开门 |
|
||
| 8 | 非营运时间 |
|
||
|
||
## 使用示例
|
||
|
||
重启 Hermes 后,直接对话即可调用:
|
||
|
||
```
|
||
用户:查询所有车辆状态
|
||
Hermes:[调用 mcp_tlbm_list_vehicle_status]
|
||
京A12345 电量85% 任务中...
|
||
京B67890 电量42% 充电中...
|
||
|
||
用户:查看京A12345今天的轨迹
|
||
Hermes:[调用 mcp_tlbm_get_vehicle_path_playback]
|
||
09:00 从起点出发...
|
||
10:30 到达终点...
|
||
|
||
用户:有哪些未完成的订单?
|
||
Hermes:[调用 mcp_tlbm_get_unfinished_orders]
|
||
OUT20260318001 运送中...
|
||
```
|
||
|
||
## 发布
|
||
|
||
```bash
|
||
npm login
|
||
npm publish --access public
|
||
```
|
||
|
||
## License
|
||
|
||
Apache-2.0 |