Paw to paw. Shelter pets, one question away: adoptable pets near you, and how to reach the rescue.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Where we list pets (places and counts), where the listings come from, who runs this service, what it keeps, and how a rescue changes or removes its listings.
This tool takes no arguments.
Where we list pets (places and counts), where the listings come from, who runs this service, what it keeps, and how a rescue changes or removes its listings.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Search pets to adopt in the places we list (Taiwan, King County WA, Montgomery County MD, Zaragoza, Fukushima Prefecture, and Vienna, found pets only: marked found:true, not adoptable yet; found=exclude leaves them out). Nowhere else yet. Search near a place (nearest first), by species, age, size, sex, breed and color, or by words in any of 10 languages (q). No place and no country = everything we list. Returns names, short facts, distance, the rescue and a link to each listing, plus what q was understood as; an empty answer says what we do list.
| Argument | Type | Description |
|---|---|---|
| q | string | Words in the person's language: breeds, colors, ages, sizes, sex and places become filters, the rest is full-text ("黑色柴犬") |
| km | integer | Radius, kilometres |
| age | string | Taiwan says only Young or Adult |
| sex | string | |
| lang | string | The person's language: en, es, zh-Hant, zh-Hans, ko, ja, vi, fr, ar, tl (default en) |
| near | string | a Taiwan county or township in any language, a US ZIP, Zaragoza, Wien or Fukushima (福島県) (98101, 信義區, 臺北市), or lat,lon; never a street address. Nearest first; an uncovered place gets the nearest pets we hold, marked not nearby |
| page | integer | |
| size | string | Not stated in King County or Vienna |
| sort | string | photo = best photo first |
| breed | string | Breed name in any language, or Wikidata id |
| color | string | |
| found | string | Found pets (Vienna's, announced for their owners first) are included by default, marked found:true, NOT adoptable. exclude = adoptable only. Never call one adoptable |
| limit | integer | Pets per answer (find_pets default 10, show_pets 24) |
| miles | integer | Radius, miles (default 50) |
| photo | string | good: only pets whose best photo passed our checks; unanalysed pets are left out (only Taiwan's are analysed) |
| place | object | near as structured fields; never a street address |
| cursor | string | next_cursor from the previous answer |
| detail | string | find_pets default brief; full = every field of pet.v1 |
| facets | boolean | Add counts by species, size, age, sex, region |
| region | string | Taiwan county or city, e.g. Taipei City |
| country | string | TW (Taiwan), US (King County WA, Montgomery County MD only), ES (Zaragoza), AT (Vienna, found pets only) or JP (Fukushima Prefecture). Not needed with near |
| species | string | |
| good_with | array | Only pets whose listing says so; rarely stated. kids is not offered; if it is passed anyway, the answer lists pets whose listing does not say (good_with_soft, each not_stated). For such wishes prefer search_by_description |
| min_photo_px | integer | Best photo's longest side, at least, in pixels |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"q": {
"type": "string",
"maxLength": 200,
"description": "Words in the person's language: breeds, colors, ages, sizes, sex and places become filters, the rest is full-text (\"黑色柴犬\")"
},
"km": {
"type": "integer",
"maximum": 800,
"minimum": 1,
"description": "Radius, kilometres"
},
"age": {
"enum": [
"Baby",
"Young",
"Adult",
"Senior"
],
"type": "string",
"description": "Taiwan says only Young or Adult"
},
"sex": {
"enum": [
"Male",
"Female"
],
"type": "string"
},
"lang": {
"type": "string",
"maxLength": 20,
"description": "The person's language: en, es, zh-Hant, zh-Hans, ko, ja, vi, fr, ar, tl (default en)"
},
"near": {
"type": "string",
"maxLength": 60,
"description": "a Taiwan county or township in any language, a US ZIP, Zaragoza, Wien or Fukushima (福島県) (98101, 信義區, 臺北市), or lat,lon; never a street address. Nearest first; an uncovered place gets the nearest pets we hold, marked not nearby"
},
"page": {
"type": "integer",
"maximum": 10000,
"minimum": 1
},
"size": {
"enum": [
"Small",
"Medium",
"Large",
"X-Large"
],
"type": "string",
"description": "Not stated in King County or Vienna"
},
"sort": {
"enum": [
"relevance",
"newest",
"listed",
"distance",
"photo"
],
"type": "string",
"description": "photo = best photo first"
},
"breed": {
"type": "string",
"maxLength": 80,
"description": "Breed name in any language, or Wikidata id"
},
"color": {
"enum": [
"black",
"white",
"brown",
"yellow",
"grey",
"orange",
"cream",
"tabby",
"calico",
"spotted"
],
"type": "string"
},
"found": {
"enum": [
"include",
"exclude",
"only"
],
"type": "string",
"description": "Found pets (Vienna's, announced for their owners first) are included by default, marked found:true, NOT adoptable. exclude = adoptable only. Never call one adoptable"
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Pets per answer (find_pets default 10, show_pets 24)"
},
"miles": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Radius, miles (default 50)"
},
"photo": {
"enum": [
"good"
],
"type": "string",
"description": "good: only pets whose best photo passed our checks; unanalysed pets are left out (only Taiwan's are analysed)"
},
"place": {
"type": "object",
"properties": {
"area": {
"type": "string",
"maxLength": 60,
"description": "a Taiwan county or township in any language, a US ZIP, Zaragoza, Wien or Fukushima (福島県)"
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Only with longitude, if the person shared it"
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"postal_code": {
"type": "string",
"maxLength": 12,
"description": "A US ZIP"
}
},
"description": "near as structured fields; never a street address",
"additionalProperties": false
},
"cursor": {
"type": "string",
"maxLength": 80,
"description": "next_cursor from the previous answer"
},
"detail": {
"enum": [
"brief",
"full"
],
"type": "string",
"description": "find_pets default brief; full = every field of pet.v1"
},
"facets": {
"type": "boolean",
"description": "Add counts by species, size, age, sex, region"
},
"region": {
"type": "string",
"maxLength": 30,
"description": "Taiwan county or city, e.g. Taipei City"
},
"country": {
"enum": [
"TW",
"US",
"ES",
"AT",
"JP"
],
"type": "string",
"description": "TW (Taiwan), US (King County WA, Montgomery County MD only), ES (Zaragoza), AT (Vienna, found pets only) or JP (Fukushima Prefecture). Not needed with near"
},
"species": {
"enum": [
"Dog",
"Cat",
"Rabbit",
"Bird",
"Small pet",
"Reptile",
"Pig",
"Barnyard"
],
"type": "string"
},
"good_with": {
"type": "array",
"items": {
"enum": [
"dogs",
"cats"
],
"type": "string"
},
"maxItems": 3,
"description": "Only pets whose listing says so; rarely stated. kids is not offered; if it is passed anyway, the answer lists pets whose listing does not say (good_with_soft, each not_stated). For such wishes prefer search_by_description"
},
"min_photo_px": {
"type": "integer",
"maximum": 4000,
"minimum": 1,
"description": "Best photo's longest side, at least, in pixels"
}
}
}Shelters and rescues near a US ZIP, 'town, ST' or lat,lon that are not on Petnecto yet, nearest first: address, phone, website, their own adoptable-pets page, hours, directions, source and licence. Use it when find_pets finds nothing near the person.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| near | string | US ZIP or 'Republic, MO' |
| limit | integer | |
| radius_miles | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"near": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "US ZIP or 'Republic, MO'"
},
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1
},
"radius_miles": {
"type": "integer",
"maximum": 400,
"minimum": 1
}
}
}One pet by Petnecto ID, shelter pet ID, or PetHarbor listing URL: photos, stated facts, adoption fee, the shelter and how to reach it. Lists choices when an ID is shared.
| Argument | Type | Description |
|---|---|---|
| id* | string | Petnecto ID, shelter ID, or PetHarbor URL |
| lang | string | The person's language (default en) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 300,
"minLength": 1,
"description": "Petnecto ID, shelter ID, or PetHarbor URL"
},
"lang": {
"type": "string",
"maxLength": 20,
"description": "The person's language (default en)"
}
}
}One rescue or shelter by id (from a pet's rescue.id): where it is, its adoption page, email and phone.
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^(?:rg-org-[a-z0-9]{1,12}|tw-shelter-\\d{1,6}|us-shelter-(?:mc|kc)|es-shelter-zgz|jp-shelter-fks|at-shelter-(?:tqt|ma60|rfz))$"
}
}
}The countries and places we hold listings for, and per country how many live pets state each species, age, size, sex, colour and good-with value. Taiwan states no Baby or Senior ages, Vienna no sizes, and few listings anywhere say good-with: check here before suggesting a filter.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Turn a breed name in any language (貴賓犬, pit bull, perro salchicha, 시바견) into Wikidata breed ids, to pass to find_pets as breed or to compare listings across countries.
| Argument | Type | Description |
|---|---|---|
| text* | string | |
| species | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"species": {
"enum": [
"Dog",
"Cat",
"Rabbit",
"Bird",
"Small pet",
"Reptile",
"Pig",
"Barnyard"
],
"type": "string"
}
}
}Turn a Taiwan county or township in any language, a US ZIP, Zaragoza, Wien or Fukushima (福島県), or lat,lon into the point find_pets would search around, to confirm with the person before searching. It finds places we list no pets near too (any Japanese prefecture, big cities): find_pets then says so. Positions are rounded to about 1 km and nothing is stored.
| Argument | Type | Description |
|---|---|---|
| near* | string | a Taiwan county or township in any language, a US ZIP, Zaragoza, Wien or Fukushima (福島県), or lat,lon |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"near"
],
"properties": {
"near": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "a Taiwan county or township in any language, a US ZIP, Zaragoza, Wien or Fukushima (福島県), or lat,lon"
}
}
}Find pets from wishes in the person's own words, in any language (“a calm small dog good with kids near Seattle”). Use it for wishes listings rarely state, like calm or good with kids: each pet's match says, per wish, stated, inferred (read from its text, with a %) or not_stated, and pets that do not say are left out and counted in not_stated unless include_unknown=true. The answer's understood.chips say what was searched; drop a wrong one with off=[chip id]; a chip noted approx or hint is not a fact about any pet. Found pets (found:true) are not adoptable. Prefer find_pets for structured values.
| Argument | Type | Description |
|---|---|---|
| off | array | Chip ids from a previous answer's understood.chips to leave out, e.g. ["good_with:kids"] |
| lang | string | The person's language: en, es, zh-Hant, zh-Hans, ko, ja, vi, fr, ar, tl (default en) |
| near | string | Where, if it is not in the query: a Taiwan county or township in any language, a US ZIP, Zaragoza, Wien or Fukushima (福島県), or lat,lon |
| page | integer | |
| limit | integer | |
| query* | string | What the person wants, in their own words and language, e.g. “a senior dog in Zaragoza”, “a friendly cat near 98101”, “小型犬 台北” |
Show pets to adopt near a place as an interactive view: photos, facts, and a button to meet one at its rescue. Use it when someone wants to look at pets in a place we list (see the server instructions). Apps without interactive views get the same list as text.
| Argument | Type | Description |
|---|---|---|
| q | string | Words in the person's language: breeds, colors, ages, sizes, sex and places become filters, the rest is full-text ("黑色柴犬") |
| age | string | Taiwan says only Young or Adult |
| lang | string | The person's language: en, es, zh-Hant, zh-Hans, ko, ja, vi, fr, ar, tl (default en) |
| near | string | a Taiwan county or township in any language, a US ZIP, Zaragoza, Wien or Fukushima (福島県) (98101, 信義區, 臺北市), or lat,lon; never a street address. Nearest first; an uncovered place gets the nearest pets we hold, marked not nearby |
| page | integer | |
| size | string | Not stated in King County or Vienna |
| limit | integer | Pets shown (default 24) |
| country | string | TW (Taiwan), US (King County WA, Montgomery County MD only), ES (Zaragoza), AT (Vienna, found pets only) or JP (Fukushima Prefecture). Not needed with near |
Pets similar to one pet id (from search results): same kind of pet and size, nearest in meaning of their listings. Use it after the person likes one pet.
| Argument | Type | Description |
|---|---|---|
| id* | string | |
| lang | string | |
| limit | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^((rg|tw|sample)-\\d{1,12}|us-(mc|kc)-[A-Za-z0-9]{1,12}|[a-z]{2}-[a-z]+-[A-Za-z0-9]{1,12})$"
},
"lang": {
"type": "string",
"maxLength": 20
},
"limit": {
"type": "integer",
"maximum": 24,
"minimum": 1
}
}
}| country |
| string |
| TW (Taiwan), US (King County WA, Montgomery County MD only), ES (Zaragoza), AT (Vienna, found pets only) or JP (Fukushima Prefecture) |
| include_unknown | boolean | Also include pets whose listing does not say whether they are good with dogs/cats/kids (they are marked not_stated) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"off": {
"type": "array",
"items": {
"type": "string",
"maxLength": 48
},
"maxItems": 12,
"description": "Chip ids from a previous answer's understood.chips to leave out, e.g. [\"good_with:kids\"]"
},
"lang": {
"type": "string",
"maxLength": 20,
"description": "The person's language: en, es, zh-Hant, zh-Hans, ko, ja, vi, fr, ar, tl (default en)"
},
"near": {
"type": "string",
"maxLength": 60,
"description": "Where, if it is not in the query: a Taiwan county or township in any language, a US ZIP, Zaragoza, Wien or Fukushima (福島県), or lat,lon"
},
"page": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "What the person wants, in their own words and language, e.g. “a senior dog in Zaragoza”, “a friendly cat near 98101”, “小型犬 台北”"
},
"country": {
"enum": [
"TW",
"US",
"ES",
"AT",
"JP"
],
"type": "string",
"description": "TW (Taiwan), US (King County WA, Montgomery County MD only), ES (Zaragoza), AT (Vienna, found pets only) or JP (Fukushima Prefecture)"
},
"include_unknown": {
"type": "boolean",
"description": "Also include pets whose listing does not say whether they are good with dogs/cats/kids (they are marked not_stated)"
}
}
}| species | string |
| good_with | array | Only pets whose listing says so; rarely stated |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"q": {
"type": "string",
"maxLength": 200,
"description": "Words in the person's language: breeds, colors, ages, sizes, sex and places become filters, the rest is full-text (\"黑色柴犬\")"
},
"age": {
"enum": [
"Baby",
"Young",
"Adult",
"Senior"
],
"type": "string",
"description": "Taiwan says only Young or Adult"
},
"lang": {
"type": "string",
"maxLength": 20,
"description": "The person's language: en, es, zh-Hant, zh-Hans, ko, ja, vi, fr, ar, tl (default en)"
},
"near": {
"type": "string",
"maxLength": 60,
"description": "a Taiwan county or township in any language, a US ZIP, Zaragoza, Wien or Fukushima (福島県) (98101, 信義區, 臺北市), or lat,lon; never a street address. Nearest first; an uncovered place gets the nearest pets we hold, marked not nearby"
},
"page": {
"type": "integer",
"maximum": 10000,
"minimum": 1
},
"size": {
"enum": [
"Small",
"Medium",
"Large",
"X-Large"
],
"type": "string",
"description": "Not stated in King County or Vienna"
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Pets shown (default 24)"
},
"country": {
"enum": [
"TW",
"US",
"ES",
"AT",
"JP"
],
"type": "string",
"description": "TW (Taiwan), US (King County WA, Montgomery County MD only), ES (Zaragoza), AT (Vienna, found pets only) or JP (Fukushima Prefecture). Not needed with near"
},
"species": {
"enum": [
"Dog",
"Cat",
"Rabbit",
"Bird",
"Small pet",
"Reptile",
"Pig",
"Barnyard"
],
"type": "string"
},
"good_with": {
"type": "array",
"items": {
"enum": [
"dogs",
"cats"
],
"type": "string"
},
"maxItems": 3,
"description": "Only pets whose listing says so; rarely stated"
}
}
}