rescuedogs-mcp-server 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +201 -0
- package/dist/constants.d.ts +22 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +22 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +585 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/index.d.ts +213 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +209 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/services/api-client.d.ts +46 -0
- package/dist/services/api-client.d.ts.map +1 -0
- package/dist/services/api-client.js +183 -0
- package/dist/services/api-client.js.map +1 -0
- package/dist/services/cache-service.d.ts +27 -0
- package/dist/services/cache-service.d.ts.map +1 -0
- package/dist/services/cache-service.js +76 -0
- package/dist/services/cache-service.js.map +1 -0
- package/dist/services/formatters.d.ts +13 -0
- package/dist/services/formatters.d.ts.map +1 -0
- package/dist/services/formatters.js +352 -0
- package/dist/services/formatters.js.map +1 -0
- package/dist/services/image-service.d.ts +9 -0
- package/dist/services/image-service.d.ts.map +1 -0
- package/dist/services/image-service.js +67 -0
- package/dist/services/image-service.js.map +1 -0
- package/dist/types.d.ts +275 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +54 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 ssatama
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
# rescuedogs-mcp-server
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/rescuedogs-mcp-server)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
|
|
6
|
+
### Search by lifestyle
|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
### Get detailed profiles
|
|
10
|
+

|
|
11
|
+
|
|
12
|
+
MCP server for discovering rescue dogs from European and UK organizations. Search, filter, and get detailed profiles of dogs available for adoption.
|
|
13
|
+
|
|
14
|
+
## Installation
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npm install -g rescuedogs-mcp-server
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Claude Desktop Configuration
|
|
21
|
+
|
|
22
|
+
Add to `~/.config/claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):
|
|
23
|
+
|
|
24
|
+
```json
|
|
25
|
+
{
|
|
26
|
+
"mcpServers": {
|
|
27
|
+
"rescuedogs": {
|
|
28
|
+
"command": "npx",
|
|
29
|
+
"args": ["-y", "rescuedogs-mcp-server"]
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Available Tools
|
|
36
|
+
|
|
37
|
+
### rescuedogs_search_dogs
|
|
38
|
+
|
|
39
|
+
Search for rescue dogs with comprehensive filtering.
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
"Find medium-sized dogs good for first-time owners"
|
|
43
|
+
"Show me golden retrievers available to adopt in the UK"
|
|
44
|
+
"Find low-energy dogs suitable for apartments"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Parameters:**
|
|
48
|
+
- `query` - Free-text search
|
|
49
|
+
- `breed` - Filter by breed name
|
|
50
|
+
- `breed_group` - Filter by FCI group (Herding, Sporting, etc.)
|
|
51
|
+
- `size` - Tiny, Small, Medium, Large, XLarge
|
|
52
|
+
- `age_category` - puppy, young, adult, senior
|
|
53
|
+
- `sex` - male, female
|
|
54
|
+
- `energy_level` - low, medium, high, very_high
|
|
55
|
+
- `experience_level` - first_time_ok, some_experience, experienced_only
|
|
56
|
+
- `home_type` - apartment_ok, house_preferred, house_required
|
|
57
|
+
- `adoptable_to_country` - ISO country code (GB, IE, FR, DE)
|
|
58
|
+
- `include_images` - Include dog photos (default: false)
|
|
59
|
+
|
|
60
|
+
### rescuedogs_get_dog_details
|
|
61
|
+
|
|
62
|
+
Get full details for a specific dog including AI-generated personality profile.
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
"Tell me about the dog with slug 'buddy-12345'"
|
|
66
|
+
"Show me details for Max"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**Parameters:**
|
|
70
|
+
- `slug` - Dog's URL slug (required)
|
|
71
|
+
- `include_image` - Include photo (default: true)
|
|
72
|
+
|
|
73
|
+
### rescuedogs_list_breeds
|
|
74
|
+
|
|
75
|
+
Get available breeds with counts and statistics.
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
"What breeds are available?"
|
|
79
|
+
"Show me herding breeds with at least 10 dogs"
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Parameters:**
|
|
83
|
+
- `breed_group` - Filter by FCI group
|
|
84
|
+
- `min_count` - Minimum dogs available
|
|
85
|
+
- `limit` - Number of breeds to return
|
|
86
|
+
|
|
87
|
+
### rescuedogs_get_statistics
|
|
88
|
+
|
|
89
|
+
Get overall platform statistics.
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
"How many rescue dogs are available?"
|
|
93
|
+
"Show me platform statistics"
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### rescuedogs_get_filter_counts
|
|
97
|
+
|
|
98
|
+
Get available filter options with counts based on current filters.
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
"What filter options are available if I've selected Labrador breed?"
|
|
102
|
+
"Show me available sizes for dogs in Spain"
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### rescuedogs_list_organizations
|
|
106
|
+
|
|
107
|
+
List rescue organizations with their statistics.
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
"Which rescue organizations are in the UK?"
|
|
111
|
+
"Show me all organizations"
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### rescuedogs_match_preferences
|
|
115
|
+
|
|
116
|
+
Find dogs matching your lifestyle preferences.
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
"I live in an apartment, have moderate activity, and am a first-time dog owner"
|
|
120
|
+
"Find dogs for an active family with a house and garden"
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
**Parameters:**
|
|
124
|
+
- `living_situation` - apartment, house_small_garden, house_large_garden, rural
|
|
125
|
+
- `activity_level` - sedentary, moderate, active, very_active
|
|
126
|
+
- `experience` - first_time, some, experienced
|
|
127
|
+
- `has_children`, `has_other_dogs`, `has_cats` - boolean
|
|
128
|
+
- `adoptable_to_country` - ISO country code
|
|
129
|
+
|
|
130
|
+
### rescuedogs_get_adoption_guide
|
|
131
|
+
|
|
132
|
+
Get information about the rescue dog adoption process.
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
"How does rescue dog adoption work?"
|
|
136
|
+
"Tell me about transport for adopting to the UK"
|
|
137
|
+
"What fees should I expect?"
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**Parameters:**
|
|
141
|
+
- `topic` - overview, transport, fees, requirements, timeline
|
|
142
|
+
- `country` - ISO code for country-specific info
|
|
143
|
+
|
|
144
|
+
## Geographic Scope
|
|
145
|
+
|
|
146
|
+
This server covers **European and UK rescue organizations only**:
|
|
147
|
+
|
|
148
|
+
- United Kingdom
|
|
149
|
+
- Ireland
|
|
150
|
+
- Germany
|
|
151
|
+
- France
|
|
152
|
+
- Spain
|
|
153
|
+
- Italy
|
|
154
|
+
- Romania
|
|
155
|
+
- Greece
|
|
156
|
+
- Bulgaria
|
|
157
|
+
- Cyprus
|
|
158
|
+
- And more...
|
|
159
|
+
|
|
160
|
+
US, Canadian, and Australian rescues are not supported.
|
|
161
|
+
|
|
162
|
+
## Country Codes
|
|
163
|
+
|
|
164
|
+
Use these codes for the `adoptable_to_country` parameter:
|
|
165
|
+
|
|
166
|
+
| Code | Country |
|
|
167
|
+
|------|---------|
|
|
168
|
+
| GB | United Kingdom (UK also accepted) |
|
|
169
|
+
| IE | Ireland |
|
|
170
|
+
| DE | Germany |
|
|
171
|
+
| FR | France |
|
|
172
|
+
| ES | Spain |
|
|
173
|
+
| IT | Italy |
|
|
174
|
+
| NL | Netherlands |
|
|
175
|
+
| BE | Belgium |
|
|
176
|
+
| AT | Austria |
|
|
177
|
+
| RO | Romania |
|
|
178
|
+
| GR | Greece |
|
|
179
|
+
| BG | Bulgaria |
|
|
180
|
+
| CY | Cyprus |
|
|
181
|
+
|
|
182
|
+
Dogs can be adopted to countries where the rescue organization ships to. Use `rescuedogs_list_organizations` to see which countries each organization serves.
|
|
183
|
+
|
|
184
|
+
## Data Source
|
|
185
|
+
|
|
186
|
+
All data comes from [rescuedogs.me](https://www.rescuedogs.me), aggregating listings from vetted rescue organizations.
|
|
187
|
+
|
|
188
|
+
- 1,500+ available dogs
|
|
189
|
+
- 12+ rescue organizations
|
|
190
|
+
- 370+ breeds
|
|
191
|
+
- 96% AI personality profile coverage
|
|
192
|
+
|
|
193
|
+
The platform is powered by the open-source [rescue-dog-aggregator](https://github.com/ssatama/rescue-dog-aggregator) project, which handles web scraping, data standardization, AI-powered personality extraction, and the public API.
|
|
194
|
+
|
|
195
|
+
## Contributing
|
|
196
|
+
|
|
197
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md). Issues and PRs welcome!
|
|
198
|
+
|
|
199
|
+
## License
|
|
200
|
+
|
|
201
|
+
MIT
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare const API_BASE_URL = "https://api.rescuedogs.me";
|
|
2
|
+
export declare const CHARACTER_LIMIT = 25000;
|
|
3
|
+
export declare const CACHE_TTL: {
|
|
4
|
+
readonly BREEDS: number;
|
|
5
|
+
readonly STATISTICS: number;
|
|
6
|
+
readonly ORGANIZATIONS: number;
|
|
7
|
+
readonly FILTER_COUNTS: number;
|
|
8
|
+
readonly IMAGES: number;
|
|
9
|
+
};
|
|
10
|
+
export declare const IMAGE_TRANSFORMS: {
|
|
11
|
+
readonly thumbnail: "w=200,h=200,fit=cover,q=70,f=jpeg";
|
|
12
|
+
readonly medium: "w=400,h=400,fit=cover,q=75,f=jpeg";
|
|
13
|
+
};
|
|
14
|
+
export declare const IMAGE_BASE_URL = "https://images.rescuedogs.me";
|
|
15
|
+
export declare const DEFAULT_LIMIT = 10;
|
|
16
|
+
export declare const MAX_LIMIT = 50;
|
|
17
|
+
export declare const MIN_LIMIT = 1;
|
|
18
|
+
export declare const PAGINATION_DEFAULTS: {
|
|
19
|
+
readonly limit: 10;
|
|
20
|
+
readonly offset: 0;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,8BAA8B,CAAC;AAExD,eAAO,MAAM,eAAe,QAAQ,CAAC;AAErC,eAAO,MAAM,SAAS;;;;;;CAMZ,CAAC;AAEX,eAAO,MAAM,gBAAgB;;;CAGnB,CAAC;AAEX,eAAO,MAAM,cAAc,iCAAiC,CAAC;AAE7D,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,eAAO,MAAM,SAAS,IAAI,CAAC;AAE3B,eAAO,MAAM,mBAAmB;;;CAGtB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export const API_BASE_URL = "https://api.rescuedogs.me";
|
|
2
|
+
export const CHARACTER_LIMIT = 25000;
|
|
3
|
+
export const CACHE_TTL = {
|
|
4
|
+
BREEDS: 10 * 60 * 1000, // 10 minutes
|
|
5
|
+
STATISTICS: 10 * 60 * 1000, // 10 minutes
|
|
6
|
+
ORGANIZATIONS: 10 * 60 * 1000, // 10 minutes
|
|
7
|
+
FILTER_COUNTS: 5 * 60 * 1000, // 5 minutes
|
|
8
|
+
IMAGES: 30 * 60 * 1000, // 30 minutes
|
|
9
|
+
};
|
|
10
|
+
export const IMAGE_TRANSFORMS = {
|
|
11
|
+
thumbnail: "w=200,h=200,fit=cover,q=70,f=jpeg",
|
|
12
|
+
medium: "w=400,h=400,fit=cover,q=75,f=jpeg",
|
|
13
|
+
};
|
|
14
|
+
export const IMAGE_BASE_URL = "https://images.rescuedogs.me";
|
|
15
|
+
export const DEFAULT_LIMIT = 10;
|
|
16
|
+
export const MAX_LIMIT = 50;
|
|
17
|
+
export const MIN_LIMIT = 1;
|
|
18
|
+
export const PAGINATION_DEFAULTS = {
|
|
19
|
+
limit: DEFAULT_LIMIT,
|
|
20
|
+
offset: 0,
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,2BAA2B,CAAC;AAExD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AAErC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACrC,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACzC,aAAa,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IAC5C,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,YAAY;IAC1C,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;CAC7B,CAAC;AAEX,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,SAAS,EAAE,mCAAmC;IAC9C,MAAM,EAAE,mCAAmC;CACnC,CAAC;AAEX,MAAM,CAAC,MAAM,cAAc,GAAG,8BAA8B,CAAC;AAE7D,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC;AAC5B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC;AAE3B,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,KAAK,EAAE,aAAa;IACpB,MAAM,EAAE,CAAC;CACD,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|