内容
# @striderlabs/mcp-rover
一款适用于 [Rover](https://www.rover.com) 的模型上下文协议(MCP)连接器,Rover 是宠物服务市场平台。该连接器使 AI 助手能够搜索宠物保姆,管理预订,与保姆沟通,并通过 Rover 平台处理宠物资料。
## 功能特点
- 按位置、服务类型和日期搜索宠物保姆
- 查看包含评论和定价的保姆详细资料
- 浏览可用的服务类型(寄宿、遛狗、探访等)
- 请求预订和管理现有预订
- 与保姆发送和接收消息
- 管理宠物资料(添加、更新、列出)
- 为已完成的服务留下评论
- 查看收藏的保姆
## 前置条件
- Node.js 18+
- 一个 Rover 账户,访问 [rover.com](https://www.rover.com)
- 已安装 Playwright 浏览器
## 安装
```bash
npm install @striderlabs/mcp-rover
# 安装 Playwright 浏览器(仅需首次安装)
npx playwright install chromium
```
## MCP 配置
将以下内容添加到您的 MCP 客户端配置文件中(例如,Claude Desktop `claude_desktop_config.json`):
```json
{
"mcpServers": {
"rover": {
"command": "npx",
"args": ["-y", "@striderlabs/mcp-rover"]
}
}
}
```
或者,如果已全局安装:
```json
{
"mcpServers": {
"rover": {
"command": "mcp-rover"
}
}
}
```
## 可用工具
### 身份验证
#### `login`
登录您的 Rover 账户。
| 参数 | 类型 | 必填 | 描述 |
|-----------|------|----------|-------------|
| email | 字符串 | 是 | 您的 Rover 邮箱 |
| password | 字符串 | 是 | 您的 Rover 密码 |
### 保姆搜索
#### `search_sitters`
按位置和服务类型搜索宠物保姆。
| 参数 | 类型 | 必填 | 描述 |
|-----------|------|----------|-------------|
| location | 字符串 | 是 | 城市、社区或邮政编码 |
| serviceType | 枚举 | 是 | `boarding`, `house_sitting`, `drop_in`, `doggy_day_care`, `dog_walking` |
| startDate | 字符串 | 否 | YYYY-MM-DD 格式 |
| endDate | 字符串 | 否 | YYYY-MM-DD 格式 |
| petCount | 数字 | 否 | 宠物数量 |
| petSize | 枚举 | 否 | `small`, `medium`, `large`, `giant` |
#### `get_sitter_profile`
获取保姆的详细资料,包括评论和评分。
| 参数 | 类型 | 必填 | 描述 |
|-----------|------|----------|-------------|
| sitterIdOrUrl | 字符串 | 是 | 保姆用户名或完整的 Rover 个人资料网址 |
#### `search_services`
列出某个位置的所有可用服务类型。
| 参数 | 类型 | 必填 | 描述 |
|-----------|------|----------|-------------|
| location | 字符串 | 是 | 搜索位置 |
### 预订
#### `request_booking`
向保姆发送预订请求。需要登录。
| 参数 | 类型 | 必填 | 描述 |
|-----------|------|----------|-------------|
| sitterId | 字符串 | 是 | 保姆 ID 或个人资料网址 |
| serviceType | 枚举 | 是 | 服务类型 |
| startDate | 字符串 | 是 | YYYY-MM-DD |
| endDate | 字符串 | 是 | YYYY-MM-DD |
| petIds | 字符串数组 | 是 | 宠物 ID 数组 |
| message | 字符串 | 否 | 给保姆的消息 |
#### `get_bookings`
查看所有当前和过去的预订。需要登录。
### 消息
#### `message_sitter`
向保姆发送消息。需要登录。
| 参数 | 类型 | 必填 | 描述 |
|-----------|------|----------|-------------|
| sitterId | 字符串 | 是 | 保姆 ID 或个人资料网址 |
| message | 字符串 | 是 | 消息内容 |
#### `get_messages`
获取消息线程。需要登录。
| 参数 | 类型 | 必填 | 描述 |
|-----------|------|----------|-------------|
| sitterId | 字符串 | 否 | 过滤到特定的保姆线程 |
### 宠物管理
#### `add_pet_profile`
添加新的宠物到您的账户。需要登录。
| 参数 | 类型 | 必填 | 描述 |
|-----------|------|----------|-------------|
| name | 字符串 | 是 | 宠物的名字 |
| species | 枚举 | 是 | `dog`, `cat`, `other` |
| breed | 字符串 | 否 | 宠物的品种 |
| age | 数字 | 否 | 年龄(岁) |
| weight | 数字 | 否 | 体重(磅) |
| size | 枚举 | 否 | `small`, `medium`, `large`, `giant` |
| temperament | 字符串 | 否 | 个性描述 |
| specialNeeds | 字符串 | 否 | 医疗/护理需求 |
| vaccinated | 布尔值 | 否 | 是否接种疫苗 |
| spayedNeutered | 布尔值 | 否 | 是否绝育/阉割 |
#### `update_pet_profile`
更新现有的宠物资料。需要登录。
| 参数 | 类型 | 必填 | 描述 |
|-----------|------|----------|-------------|
| petId | 字符串 | 是 | 宠物的 Rover ID |
| ...fields | — | 否 | `add_pet_profile` 中的任意字段 |
#### `get_pets`
列出您账户上的所有宠物。需要登录。
### 评论和收藏
#### `leave_review`
为已完成的服务留下评论。需要登录。
| 参数 | 类型 | 必填 | 描述 |
|-----------|------|----------|-------------|
| bookingId | 字符串 | 是 | 预订 ID |
| rating | 数字 | 是 | 1-5 星 |
| reviewText | 字符串 | 是 | 评论内容 |
#### `get_favorites`
获取您收藏的保姆列表。需要登录。
## 使用示例
```
# 搜索西雅图的狗狗寄宿服务,时间为一周
search_sitters location="Seattle, WA" serviceType="boarding" startDate="2025-06-01" endDate="2025-06-07"
# 查看保姆的完整资料
get_sitter_profile sitterIdOrUrl="john-d"
# 预订保姆
request_booking sitterId="john-d" serviceType="boarding" startDate="2025-06-01" endDate="2025-06-07" petIds=["pet-123"] message="Hi! My dog Bella is friendly and loves to play."
# 发送消息
message_sitter sitterId="john-d" message="Hi, is your place good for large dogs?"
```
## 开发
```bash
# 安装依赖
npm install
# 编译 TypeScript
npm run build
# 以开发模式运行
npm run dev
```
## 架构
- **`src/index.ts`** — MCP 服务器入口点。定义所有工具,处理请求路由,格式化响应。
- **`src/browser.ts`** — 基于 Playwright 的浏览器自动化层。处理与 rover.com 的所有交互。
服务器使用 stdio 传输进行 MCP 通信,并启动一个无头 Chromium 浏览器与 Rover 的网站交互。
## 注意事项
- 此连接器使用浏览器自动化与 Rover 的网站交互,因为 Rover 不提供公共 API。
- 登录凭证仅用于当前会话,绝不会存储。
- 浏览器默认运行在无头模式。
## 许可证
MIT