Skip to main content
Glama

Show pets to adopt

show_pets
Read-onlyIdempotent

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.

Input Schema

NameRequiredDescriptionDefault
qNoWords in the person's language: breeds, colors, ages, sizes, sex and places become filters, the rest is full-text ("黑色柴犬")
ageNoTaiwan says only Young or Adult
langNoThe person's language: en, es, zh-Hant, zh-Hans, ko, ja, vi, fr, ar, tl (default en)
nearNoa 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
pageNo
sizeNoNot stated in King County or Vienna
limitNoPets shown (default 24)
countryNoTW (Taiwan), US (King County WA, Montgomery County MD only), ES (Zaragoza), AT (Vienna, found pets only) or JP (Fukushima Prefecture). Not needed with near
speciesNo
good_withNoOnly pets whose listing says so; rarely stated

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / country / description
      Previous value: -"TW, US (King County WA, Montgomery County MD only), ES (Zaragoza) or AT (Vienna, found pets only). Not needed with near"New value: +"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"
    • changedInput schema / properties / country / enum
      Previous value: -[
      -  "TW",
      -  "US",
      -  "ES",
      -  "AT"
      -]New value: +[
      +  "TW",
      +  "US",
      +  "ES",
      +  "AT",
      +  "JP"
      +]
    • changedInput schema / properties / near / description
      Previous value: -"A US ZIP (98101), lat,lon, a Taiwan county or township in any language (信義區, 臺北市), Zaragoza or Wien; never a street address. Nearest first; an uncovered place gets the nearest pets we hold, marked not nearby"New value: +"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"
  2. Changed21 schema fields changed
    • changedInput schema / properties / age / description
      Previous value: -"Taiwan's shelters say only Young or Adult"New value: +"Taiwan says only Young or Adult"
    • removedInput schema / properties / breed
      Removed value: -{
      -  "description": "A breed name in any language, or its Wikidata id (Q39315)",
      -  "maxLength": 80,
      -  "type": "string"
      -}
    • removedInput schema / properties / color
      Removed value: -{
      -  "enum": [
      -    "black",
      -    "white",
      -    "brown",
      -    "yellow",
      -    "grey",
      -    "orange",
      -    "cream",
      -    "tabby",
      -    "calico",
      -    "spotted"
      -  ],
      -  "type": "string"
      -}
    • changedInput schema / properties / country / description
      Previous value: -"Which country's listings: TW (Taiwan, every public shelter), US (King County WA and Montgomery County MD only), ES (Zaragoza) or AT (Vienna, found pets only). Not needed with near"New value: +"TW, US (King County WA, Montgomery County MD only), ES (Zaragoza) or AT (Vienna, found pets only). Not needed with near"
    • removedInput schema / properties / cursor
      Removed value: -{
      -  "description": "next_cursor from the previous answer: the next page, without re-reading the earlier ones",
      -  "maxLength": 80,
      -  "type": "string"
      -}
    • removedInput schema / properties / detail
      Removed value: -{
      -  "description": "find_pets default brief (short pets; get_pet has the full record); full = every field of pet.v1",
      -  "enum": [
      -    "brief",
      -    "full"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / properties / facets
      Removed value: -{
      -  "description": "Add counts by species, size, age, sex, region and good-with",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / found
      Removed value: -{
      -  "description": "Found pets (Vienna's list, announced for their owners first; a pet can stay listed for months) are included by default, each marked found:true and NOT adoptable yet. exclude = adoptable pets only; only = found pets only. Never call a found pet adoptable",
      -  "enum": [
      -    "include",
      -    "exclude",
      -    "only"
      -  ],
      -  "type": "string"
      -}
    • changedInput schema / properties / good_with / description
      Previous value: -"Only pets whose listing says so. Rarely stated: a few dozen Taiwan listings, none elsewhere. No listing states good with kids, so kids is not offered; if it is passed anyway, the answer lists pets whose listing does not say (good_with_soft, each not_stated) and says so. For such wishes prefer search_by_description (stated / not_stated per pet)"New value: +"Only pets whose listing says so; rarely stated"
    • removedInput schema / properties / km
      Removed value: -{
      -  "description": "Radius in kilometres, instead of miles",
      -  "maximum": 800,
      -  "minimum": 1,
      -  "type": "integer"
      -}
    • changedInput schema / properties / lang / description
      Previous value: -"The person's language for names and text: en, es, zh-Hant, zh-Hans, ko, ja, vi, fr, ar, tl (default en)"New value: +"The person's language: en, es, zh-Hant, zh-Hans, ko, ja, vi, fr, ar, tl (default en)"
    • changedInput schema / properties / limit / description
      Previous value: -"Pets per answer (find_pets default 10, show_pets 24)"New value: +"Pets shown (default 24)"
    • removedInput schema / properties / miles
      Removed value: -{
      -  "description": "Radius in miles (default 50)",
      -  "maximum": 500,
      -  "minimum": 1,
      -  "type": "integer"
      -}
    • removedInput schema / properties / min_photo_px
      Removed value: -{
      -  "description": "Only pets whose best photo is at least this many pixels on its longest side",
      -  "maximum": 4000,
      -  "minimum": 1,
      -  "type": "integer"
      -}
    • changedInput schema / properties / near / description
      Previous value: -"Where the person is: a US ZIP (98101, 20850), lat,lon (25.03,121.56; rounded to ~1 km), a Taiwan county or township in any language (信義區, Xinyi, 臺北市), Zaragoza or Wien. Sorted by distance; a place we do not cover gets the nearest pets we hold, marked as not nearby. Prefer this or place over free text"New value: +"A US ZIP (98101), lat,lon, a Taiwan county or township in any language (信義區, 臺北市), Zaragoza or Wien; never a street address. Nearest first; an uncovered place gets the nearest pets we hold, marked not nearby"
    • removedInput schema / properties / photo
      Removed value: -{
      -  "description": "good: only pets whose best photo passed our checks (analysed; not blurry, dark, tiny, or without a pet in it). Pets not analysed yet are left out, and so far only Taiwan's photos are analysed",
      -  "enum": [
      -    "good"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / properties / place
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "The same as near, as structured fields (do not put a street address or a whole sentence here; the server resolves it against its own place table)",
      -  "properties": {
      -    "area": {
      -      "description": "A Taiwan county or township in any language, Zaragoza or Wien",
      -      "maxLength": 60,
      -      "type": "string"
      -    },
      -    "latitude": {
      -      "description": "Only with longitude, and only if the person shared their location",
      -      "maximum": 90,
      -      "minimum": -90,
      -      "type": "number"
      -    },
      -    "longitude": {
      -      "maximum": 180,
      -      "minimum": -180,
      -      "type": "number"
      -    },
      -    "postal_code": {
      -      "description": "A US ZIP (we list King County WA and Montgomery County MD only)",
      -      "maxLength": 12,
      -      "type": "string"
      -    }
      -  },
      -  "type": "object"
      -}
    • changedInput schema / properties / q / description
      Previous value: -"Words in the person's own language: breeds, colors, ages, sizes, sex and places become filters (\"black shiba girl\", \"黑色柴犬\", \"perro mayor\"); other words are full-text search"New value: +"Words in the person's language: breeds, colors, ages, sizes, sex and places become filters, the rest is full-text (\"黑色柴犬\")"
    • removedInput schema / properties / region
      Removed value: -{
      -  "description": "Taiwan county or city, e.g. Taipei City, New Taipei City, Taoyuan City",
      -  "maxLength": 30,
      -  "type": "string"
      -}
    • removedInput schema / properties / sex
      Removed value: -{
      -  "enum": [
      -    "Male",
      -    "Female"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / properties / sort
      Removed value: -{
      -  "description": "distance is the default when near is given and needs it; photo = best photo first",
      -  "enum": [
      -    "relevance",
      -    "newest",
      -    "listed",
      -    "distance",
      -    "photo"
      -  ],
      -  "type": "string"
      -}
  3. Changed1 schema field changed
    • changedInput schema / properties / found / description
      Previous value: -"Found pets (Vienna's list, announced for their owners for 30 days) are included by default, each marked found:true and NOT adoptable yet. exclude = adoptable pets only; only = found pets only. Never call a found pet adoptable"New value: +"Found pets (Vienna's list, announced for their owners first; a pet can stay listed for months) are included by default, each marked found:true and NOT adoptable yet. exclude = adoptable pets only; only = found pets only. Never call a found pet adoptable"
  4. Changed2 schema fields changed
    • changedInput schema / properties / good_with / description
      Previous value: -"Only pets whose listing says so. Rarely stated: a few dozen Taiwan listings, none elsewhere; no listing states good with kids, so it is not offered. For such wishes prefer search_by_description (stated / not_stated per pet)"New value: +"Only pets whose listing says so. Rarely stated: a few dozen Taiwan listings, none elsewhere. No listing states good with kids, so kids is not offered; if it is passed anyway, the answer lists pets whose listing does not say (good_with_soft, each not_stated) and says so. For such wishes prefer search_by_description (stated / not_stated per pet)"
    • changedInput schema / properties / good_with / maxItems
      Previous value: -2New value: +3
  5. Changed18 schema fields changed
    • addedInput schema / properties / age / description
      Added value: +"Taiwan's shelters say only Young or Adult"
    • changedInput schema / properties / country / description
      Previous value: -"Which country's shelters: US, CA, TW (Taiwan), ES (Spain) or AT (Austria). Optional when near is a US ZIP or a Taiwan place"New value: +"Which country's listings: TW (Taiwan, every public shelter), US (King County WA and Montgomery County MD only), ES (Zaragoza) or AT (Vienna, found pets only). Not needed with near"
    • changedInput schema / properties / country / enum
      Previous value: -[
      -  "US",
      -  "CA",
      -  "TW",
      -  "ES",
      -  "AT"
      -]New value: +[
      +  "TW",
      +  "US",
      +  "ES",
      +  "AT"
      +]
    • addedInput schema / properties / cursor
      Added value: +{
      +  "description": "next_cursor from the previous answer: the next page, without re-reading the earlier ones",
      +  "maxLength": 80,
      +  "type": "string"
      +}
    • addedInput schema / properties / detail
      Added value: +{
      +  "description": "find_pets default brief (short pets; get_pet has the full record); full = every field of pet.v1",
      +  "enum": [
      +    "brief",
      +    "full"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / good_with / description
      Previous value: -"Only pets the rescue says are good with these"New value: +"Only pets whose listing says so. Rarely stated: a few dozen Taiwan listings, none elsewhere; no listing states good with kids, so it is not offered. For such wishes prefer search_by_description (stated / not_stated per pet)"
    • changedInput schema / properties / good_with / items / enum
      Previous value: -[
      -  "dogs",
      -  "cats",
      -  "kids"
      -]New value: +[
      +  "dogs",
      +  "cats"
      +]
    • changedInput schema / properties / good_with / maxItems
      Previous value: -3New value: +2
    • addedInput schema / properties / limit / description
      Added value: +"Pets per answer (find_pets default 10, show_pets 24)"
    • changedInput schema / properties / near / description
      Previous value: -"Where the person is: a US ZIP (65738), lat,lon (25.03,121.56; rounded to ~1 km), or a Taiwan county or township in any language (信義區, Xinyi, 臺北市). Results are sorted by distance. Prefer this or place over free text"New value: +"Where the person is: a US ZIP (98101, 20850), lat,lon (25.03,121.56; rounded to ~1 km), a Taiwan county or township in any language (信義區, Xinyi, 臺北市), Zaragoza or Wien. Sorted by distance; a place we do not cover gets the nearest pets we hold, marked as not nearby. Prefer this or place over free text"
    • changedInput schema / properties / page / maximum
      Previous value: -100New value: +10000
    • changedInput schema / properties / photo / description
      Previous value: -"good: only pets whose best photo passed our checks (analysed; not blurry, dark, tiny, or without a pet in it). Pets not analysed yet are left out"New value: +"good: only pets whose best photo passed our checks (analysed; not blurry, dark, tiny, or without a pet in it). Pets not analysed yet are left out, and so far only Taiwan's photos are analysed"
    • changedInput schema / properties / place / properties / area / description
      Previous value: -"A Taiwan county or township, in any language"New value: +"A Taiwan county or township in any language, Zaragoza or Wien"
    • changedInput schema / properties / place / properties / postal_code / description
      Previous value: -"US ZIP or Canadian postal code"New value: +"A US ZIP (we list King County WA and Montgomery County MD only)"
    • changedInput schema / properties / q / description
      Previous value: -"Words in the person's own language: breeds, colors, ages, sizes, sex and places become filters (\"black shiba girl Taipei\", \"黑色柴犬\", \"perro mayor\"); other words are full-text search"New value: +"Words in the person's own language: breeds, colors, ages, sizes, sex and places become filters (\"black shiba girl\", \"黑色柴犬\", \"perro mayor\"); other words are full-text search"
    • addedInput schema / properties / size / description
      Added value: +"Not stated in King County or Vienna"
    • changedInput schema / properties / sort / description
      Previous value: -"photo = best photo first"New value: +"distance is the default when near is given and needs it; photo = best photo first"
    • changedInput schema / properties / species / enum
      Previous value: -[
      -  "Dog",
      -  "Cat",
      -  "Rabbit",
      -  "Bird",
      -  "Horse",
      -  "Small pet",
      -  "Reptile",
      -  "Pig",
      -  "Barnyard"
      -]New value: +[
      +  "Dog",
      +  "Cat",
      +  "Rabbit",
      +  "Bird",
      +  "Small pet",
      +  "Reptile",
      +  "Pig",
      +  "Barnyard"
      +]
  6. Changed8 schema fields changed
    • changedInput schema / properties / country / description
      Previous value: -"Which country's shelters: US, CA or TW (Taiwan). Optional when near is a US ZIP or a Taiwan place"New value: +"Which country's shelters: US, CA, TW (Taiwan), ES (Spain) or AT (Austria). Optional when near is a US ZIP or a Taiwan place"
    • changedInput schema / properties / country / enum
      Previous value: -[
      -  "US",
      -  "CA",
      -  "TW"
      -]New value: +[
      +  "US",
      +  "CA",
      +  "TW",
      +  "ES",
      +  "AT"
      +]
    • addedInput schema / properties / found
      Added value: +{
      +  "description": "Found pets (Vienna's list, announced for their owners for 30 days) are included by default, each marked found:true and NOT adoptable yet. exclude = adoptable pets only; only = found pets only. Never call a found pet adoptable",
      +  "enum": [
      +    "include",
      +    "exclude",
      +    "only"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / min_photo_px
      Added value: +{
      +  "description": "Only pets whose best photo is at least this many pixels on its longest side",
      +  "maximum": 4000,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / photo
      Added value: +{
      +  "description": "good: only pets whose best photo passed our checks (analysed; not blurry, dark, tiny, or without a pet in it). Pets not analysed yet are left out",
      +  "enum": [
      +    "good"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / sort / description
      Added value: +"photo = best photo first"
    • changedInput schema / properties / sort / enum
      Previous value: -[
      -  "relevance",
      -  "newest",
      -  "distance"
      -]New value: +[
      +  "relevance",
      +  "newest",
      +  "listed",
      +  "distance",
      +  "photo"
      +]
    • changedInput schema / properties / species / enum
      Previous value: -[
      -  "Dog",
      -  "Cat",
      -  "Rabbit",
      -  "Bird",
      -  "Horse",
      -  "Small animal",
      -  "Reptile",
      -  "Pig",
      -  "Barnyard"
      -]New value: +[
      +  "Dog",
      +  "Cat",
      +  "Rabbit",
      +  "Bird",
      +  "Horse",
      +  "Small pet",
      +  "Reptile",
      +  "Pig",
      +  "Barnyard"
      +]
  7. First observed

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the bar is lower. The description adds real context the annotations do not: the result is rendered as an interactive UI view, and 'apps without interactive views get the same list as text' tells the agent to expect a graceful degradation path rather than a failure. It stops short of describing pagination or result count behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with what the tool produces, then usage, then fallback behavior. No filler, though the parenthetical pointer to server instructions slightly dilutes the self-containedness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 optional params, four enums, and no output schema, the description needs to convey the return shape — and it does ('photos, facts, and a button', plus the text fallback). What's missing is only directional guidance versus the sibling find_pets, which is a usage gap rather than a completeness one.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 80% and the schema descriptions already explain q, near, country, age, size, and good_with in detail. The description only echoes 'near a place', adding nothing about syntax, place formats, or the 'not nearby' fallback that the schema handles. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource plus the distinctive output form: 'show pets to adopt near a place as an interactive view: photos, facts, and a button to meet one at its rescue'. That differentiates it from a plain list tool by output shape, but it never names the obvious sibling (find_pets) as the non-interactive counterpart, leaving the agent to infer the pairing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use it when someone wants to look at pets in a place we list (see the server instructions)' gives a when-condition, but the actual selection logic is deferred to external server instructions rather than stated. There is no exclusion, no mention of when to prefer find_pets or search_by_description instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources