内容
# 救援犬MCP服务器
[](https://www.npmjs.com/package/rescuedogs-mcp-server)
[](https://opensource.org/licenses/MIT)
### 按生活方式搜索

### 获取详细资料

用于从欧洲和英国组织发现救援犬的MCP服务器。搜索、筛选和获取可供领养的犬的详细资料。
## 安装
```bash
npm install -g rescuedogs-mcp-server
```
## 克劳德桌面配置
添加到 `~/.config/claude/claude_desktop_config.json` (macOS)或 `%APPDATA%\Claude\claude_desktop_config.json` (Windows):
```json
{
"mcpServers": {
"rescuedogs": {
"command": "npx",
"args": ["-y", "rescuedogs-mcp-server"]
}
}
}
```
## 可用工具
### rescuedogs_search_dogs
搜索救援犬,具备全面的筛选功能。
```
"寻找适合第一次养狗的人的中型犬"
"显示英国可领养的金毛猎犬"
"寻找适合公寓的低能量犬"
```
**参数:**
- `query` - 自由文本搜索
- `breed` - 按品种名称筛选
- `breed_group` - 按FCI组(牧羊犬、狩猎犬等)筛选
- `size` - 微型、小型、中型、大型、超大型
- `age_category` - 幼犬、青年犬、成年犬、老年犬
- `sex` - 公犬、母犬
- `energy_level` - 低、中、高、非常高
- `experience_level` - 适合第一次养狗的人、有一定经验、有丰富经验
- `home_type` - 适合公寓、适合有房子、有大房子
- `adoptable_to_country` - ISO国家代码(GB、IE、FR、DE)
- `include_images` - 包含犬照片(默认:false)
### rescuedogs_get_dog_details
获取特定犬的完整资料,包括AI生成的性格简介。
```
"告诉我关于slug为'buddy-12345'的犬"
"显示Max的资料"
```
**参数:**
- `slug` - 犬的URL slug(必填)
- `include_image` - 包含照片(默认:true)
### rescuedogs_list_breeds
获取可用品种及其数量和统计数据。
```
"有哪些品种可用?"
"显示至少有10只犬的牧羊犬品种"
```
**参数:**
- `breed_group` - 按FCI组筛选
- `min_count` - 最少可用犬数量
- `limit` - 返回品种数量
### rescuedogs_get_statistics
获取整体平台统计数据。
```
"有多少只救援犬可用?"
"显示平台统计数据"
```
### rescuedogs_get_filter_counts
获取基于当前筛选条件的可用筛选选项及数量。
```
"如果我选择拉布拉多犬品种,有哪些筛选选项可用?"
"显示西班牙犬的可用大小"
```
### rescuedogs_list_organizations
列出救援组织及其统计数据。
```
"英国有哪些救援组织?"
"显示所有组织"
```
### rescuedogs_match_preferences
根据生活方式偏好匹配犬。
```
"我住在公寓,活动适中,是第一次养狗的人"
"为有房有院子的活跃家庭找犬"
```
**参数:**
- `living_situation` - 公寓、小房子带小院子、大房子带大院子、农村
- `activity_level` - 久坐、适中、活跃、非常活跃
- `experience` - 初次养狗、有一定经验、有丰富经验
- `has_children`、`has_other_dogs`、`has_cats` - 布尔值
- `adoptable_to_country` - ISO国家代码
### rescuedogs_get_adoption_guide
获取关于救援犬领养流程的信息。
```
"救援犬领养流程是怎样的?"
"告诉我关于领养到英国的运输"
"应该期待什么费用?"
```
**参数:**
- `topic` - 概述、运输、费用、要求、时间线
- `country` - ISO代码,用于获取特定国家的资讯
## 地理范围
该服务器仅涵盖**欧洲和英国的救援组织**:
- 英国
- 爱尔兰
- 德国
- 法国
- 西班牙
- 意大利
- 罗马尼亚
- 希腊
- 保加利亚
- Cyprus
- 更多...
不支持美国、加拿大和澳大利亚的救援组织。
## 国家代码
使用以下代码作为 `adoptable_to_country` 参数:
| 代码 | 国家 |
|------|---------|
| GB | 英国(UK也接受) |
| IE | 爱尔兰 |
| DE | 德国 |
| FR | 法国 |
| ES | 西班牙 |
| IT | 意大利 |
| NL | 荷兰 |
| BE | 比利时 |
| AT | 奥地利 |
| RO | 罗马尼亚 |
| GR | 希腊 |
| BG | 保加利亚 |
| CY | Cyprus |
犬可以领养到有救援组织运送的国家。使用 `rescuedogs_list_organizations` 查看每个组织服务的国家。
## 数据来源
所有数据来自 [rescuedogs.me](https://www.rescuedogs.me),聚合了经过审查的救援组织的信息。
- 1500+ 可用犬
- 12+ 救援组织
- 370+ 品种
- 96% AI性格简介覆盖率
该平台由开源 [rescue-dog-aggregator](https://github.com/ssatama/rescue-dog-aggregator) 项目驱动,处理网页抓取、数据标准化、AI驱动的性格提取和公共API。
## Docker
```bash
docker build -t rescuedogs-mcp .
docker run -i rescuedogs-mcp
```
## 环境变量
| 变量 | 描述 | 默认值 |
|----------|-------------|---------|
| `RESCUEDOGS_API_URL` | rescuedogs API的基础URL | `https://api.rescuedogs.me` |
| `RESCUEDOGS_IMAGE_URL` | 图片CDN的基础URL | `https://images.rescuedogs.me` |
## 架构
```
src/
├── index.ts # 入口点 — 服务器设置和stdio传输
├── constants.ts # 共享常量(API URL、缓存TTL、显示限制)
├── types.ts # API响应类型定义
├── schemas/
│ └── index.ts # 所有工具的Zod输入模式
├── services/
│ ├── api-client.ts # 基于Axios的API客户端,带重试逻辑
│ ├── cache-service.ts # 带TTL支持的内存缓存
│ ├── formatters.ts # API响应的Markdown格式化器
│ └── image-service.ts # 图片获取和CDN转换URL
├── tools/
│ ├── index.ts # 工具注册桶,带日志包装器
│ ├── search-dogs.ts # rescuedogs_search_dogs处理器
│ ├── get-dog-details.ts
│ ├── list-breeds.ts
│ ├── get-statistics.ts
│ ├── get-filter-counts.ts
│ ├── list-organizations.ts
│ ├── match-preferences.ts
│ └── get-adoption-guide.ts
├── utils/
│ └── mappings.ts # 值映射(年龄、性别、国家、偏好)
└── data/
└── adoption-guides.ts # 静态领养指南内容
```
## 开发
```bash
# 安装依赖
npm install
# 运行测试
npm test
# 运行测试并生成覆盖率报告
npm run test:coverage
# 类型检查
npm run typecheck
# 校验
npm run lint
# 校验并自动修复
npm run lint:fix
# 构建
npm run build
# 开发模式(tsx)
npm run dev
```
## 贡献
参见 [CONTRIBUTING.md](CONTRIBUTING.md)。欢迎提交问题和拉取请求!
## 许可证
MIT