Petnecto

Find adoptable shelter pets and how to contact the shelter. Read-only, no sign-in, 10 languages.

我该使用它吗

质量与安全性

A
描述质量
97%
模式完整度
81%
命名质量
91%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

发现(1)

  • LOWTool 'get_rescue' description lacks action verb在 get_rescue 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~3,578token 数(工具定义)
~3.2 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 2.80%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "pets": {
      "url": "https://petnecto.com/mcp"
    }
  }
}

远程端点

https://petnecto.com/mcpstreamable-http

它能做什么

工具清单

工具(9)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢show_pets(country, region, near, place, miles, ...)

Show adoptable pets 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 to adopt. Apps without interactive views get the same list as text.

输入模式

{
  "type": "object",
  "properties": {
    "country": {
      "description": "Which country's shelters: US, CA, TW (Taiwan), ES (Spain) or AT (Austria). Optional when near is a US ZIP or a Taiwan place",
      "type": "string",
      "enum": [
        "US",
        "CA",
        "TW",
        "ES",
        "AT"
      ]
    },
    "region": {
      "description": "Taiwan county or city, e.g. Taipei City, New Taipei City, Taoyuan City",
      "type": "string",
      "maxLength": 30
    },
    "near": {
      "description": "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",
      "type": "string",
      "maxLength": 60
    },
    "place": {
      "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)",
      "type": "object",
      "properties": {
        "postal_code": {
          "description": "US ZIP or Canadian postal code",
          "type": "string",
          "maxLength": 12
        },
        "latitude": {
          "description": "Only with longitude, and only if the person shared their location",
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "longitude": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        "area": {
          "description": "A Taiwan county or township, in any language",
          "type": "string",
          "maxLength": 60
        }
      },
      "additionalProperties": false
    },
    "miles": {
      "description": "Radius in miles (default 50)",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "km": {
      "description": "Radius in kilometres, instead of miles",
      "type": "integer",
      "minimum": 1,
      "maximum": 800
    },
    "species": {
      "type": "string",
      "enum": [
        "Dog",
        "Cat",
        "Rabbit",
        "Bird",
        "Horse",
        "Small pet",
        "Reptile",
        "Pig",
        "Barnyard"
      ]
    },
    "age": {
      "type": "string",
      "enum": [
        "Baby",
        "Young",
        "Adult",
        "Senior"
      ]
    },
    "size": {
      "type": "string",
      "enum": [
        "Small",
        "Medium",
        "Large",
        "X-Large"
      ]
    },
    "sex": {
      "type": "string",
      "enum": [
        "Male",
        "Female"
      ]
    },
    "good_with": {
      "description": "Only pets the rescue says are good with these",
      "maxItems": 3,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "dogs",
          "cats",
          "kids"
        ]
      }
    },
    "q": {
      "description": "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",
      "type": "string",
      "maxLength": 200
    },
    "breed": {
      "description": "A breed name in any language, or its Wikidata id (Q39315)",
      "type": "string",
      "maxLength": 80
    },
    "color": {
      "type": "string",
      "enum": [
        "black",
        "white",
        "brown",
        "yellow",
        "grey",
        "orange",
        "cream",
        "tabby",
        "calico",
        "spotted"
      ]
    },
    "sort": {
      "description": "photo = best photo first",
      "type": "string",
      "enum": [
        "relevance",
        "newest",
        "listed",
        "distance",
        "photo"
      ]
    },
    "photo": {
      "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",
      "type": "string",
      "enum": [
        "good"
      ]
    },
    "min_photo_px": {
      "description": "Only pets whose best photo is at least this many pixels on its longest side",
      "type": "integer",
      "minimum": 1,
      "maximum": 4000
    },
    "found": {
      "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",
      "type": "string",
      "enum": [
        "include",
        "exclude",
        "only"
      ]
    },
    "facets": {
      "description": "Add counts by species, size, age, sex, region and good-with",
      "type": "boolean"
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "lang": {
      "description": "The person's language for names and text: en, es, zh-Hant, zh-Hans, ko, ja, vi, fr, ar, tl (default en)",
      "type": "string",
      "maxLength": 20
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢find_pets(country, region, near, place, miles, ...)

Search adoptable pets at rescues and shelters (and, in some cities, found pets: marked found:true, announced for their owners first, not adoptable yet; pass found=exclude to leave them out): near a US ZIP, lat,lon or a Taiwan county or township in any language (near, with miles or km; sorted by distance); by species, age, size, sex, breed, color and whether they are good with dogs, cats or kids; or by words in any of 10 languages (q). Returns names, short facts, distance, the rescue and a link to each listing, plus what q was understood as.

输入模式

{
  "type": "object",
  "properties": {
    "country": {
      "description": "Which country's shelters: US, CA, TW (Taiwan), ES (Spain) or AT (Austria). Optional when near is a US ZIP or a Taiwan place",
      "type": "string",
      "enum": [
        "US",
        "CA",
        "TW",
        "ES",
        "AT"
      ]
    },
    "region": {
      "description": "Taiwan county or city, e.g. Taipei City, New Taipei City, Taoyuan City",
      "type": "string",
      "maxLength": 30
    },
    "near": {
      "description": "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",
      "type": "string",
      "maxLength": 60
    },
    "place": {
      "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)",
      "type": "object",
      "properties": {
        "postal_code": {
          "description": "US ZIP or Canadian postal code",
          "type": "string",
          "maxLength": 12
        },
        "latitude": {
          "description": "Only with longitude, and only if the person shared their location",
          "type": "number",
          "minimum": -90,
          "maximum": 90
        },
        "longitude": {
          "type": "number",
          "minimum": -180,
          "maximum": 180
        },
        "area": {
          "description": "A Taiwan county or township, in any language",
          "type": "string",
          "maxLength": 60
        }
      },
      "additionalProperties": false
    },
    "miles": {
      "description": "Radius in miles (default 50)",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "km": {
      "description": "Radius in kilometres, instead of miles",
      "type": "integer",
      "minimum": 1,
      "maximum": 800
    },
    "species": {
      "type": "string",
      "enum": [
        "Dog",
        "Cat",
        "Rabbit",
        "Bird",
        "Horse",
        "Small pet",
        "Reptile",
        "Pig",
        "Barnyard"
      ]
    },
    "age": {
      "type": "string",
      "enum": [
        "Baby",
        "Young",
        "Adult",
        "Senior"
      ]
    },
    "size": {
      "type": "string",
      "enum": [
        "Small",
        "Medium",
        "Large",
        "X-Large"
      ]
    },
    "sex": {
      "type": "string",
      "enum": [
        "Male",
        "Female"
      ]
    },
    "good_with": {
      "description": "Only pets the rescue says are good with these",
      "maxItems": 3,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "dogs",
          "cats",
          "kids"
        ]
      }
    },
    "q": {
      "description": "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",
      "type": "string",
      "maxLength": 200
    },
    "breed": {
      "description": "A breed name in any language, or its Wikidata id (Q39315)",
      "type": "string",
      "maxLength": 80
    },
    "color": {
      "type": "string",
      "enum": [
        "black",
        "white",
        "brown",
        "yellow",
        "grey",
        "orange",
        "cream",
        "tabby",
        "calico",
        "spotted"
      ]
    },
    "sort": {
      "description": "photo = best photo first",
      "type": "string",
      "enum": [
        "relevance",
        "newest",
        "listed",
        "distance",
        "photo"
      ]
    },
    "photo": {
      "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",
      "type": "string",
      "enum": [
        "good"
      ]
    },
    "min_photo_px": {
      "description": "Only pets whose best photo is at least this many pixels on its longest side",
      "type": "integer",
      "minimum": 1,
      "maximum": 4000
    },
    "found": {
      "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",
      "type": "string",
      "enum": [
        "include",
        "exclude",
        "only"
      ]
    },
    "facets": {
      "description": "Add counts by species, size, age, sex, region and good-with",
      "type": "boolean"
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "lang": {
      "description": "The person's language for names and text: en, es, zh-Hant, zh-Hans, ko, ja, vi, fr, ar, tl (default en)",
      "type": "string",
      "maxLength": 20
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢resolve_place(near)

Turn a US ZIP, lat,lon or a Taiwan county or township name (any language) into the point and radius find_pets would search around, to confirm with the person before searching. Positions are rounded to about 1 km and nothing is stored.

输入模式

{
  "type": "object",
  "properties": {
    "near": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60,
      "description": "A US ZIP, lat,lon, or a Taiwan county or township name"
    }
  },
  "required": [
    "near"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢resolve_breed(text, species)

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.

输入模式

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "species": {
      "type": "string",
      "enum": [
        "Dog",
        "Cat",
        "Rabbit",
        "Bird",
        "Horse",
        "Small pet",
        "Reptile",
        "Pig",
        "Barnyard"
      ]
    }
  },
  "required": [
    "text"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_pet(id, lang)

One adoptable pet by id (from find_pets): photos, temperament, good-with, adoption fee, the rescue and how to reach it.

输入模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^(?:(?:rg|tw|sample)-\\d{1,12}|us-(?:mc|kc)-[A-Za-z0-9]{1,12}|es-zgz-\\d{1,8}|at-vie-\\d{1,8})$",
      "description": "The pet's id, e.g. rg-8013243, tw-470460, us-mc-A508423 or es-zgz-2922"
    },
    "lang": {
      "description": "The person's language (default en)",
      "type": "string",
      "maxLength": 20
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_rescue(id)

One rescue or shelter by id (from a pet's rescue.id): where it is, its adoption page, email and phone.

输入模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^(?:rg-org-[a-z0-9]{1,12}|tw-shelter-\\d{1,6}|us-shelter-(?:mc|kc)|es-shelter-zgz|at-shelter-(?:tqt|ma60|rfz))$"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢search_by_description(query, near, off, include_unknown, country, ...)

Find pets to adopt from a sentence in any language (found pets, marked found:true, are not adoptable yet): “a calm small dog that is good with kids, under 10 kg, near Springfield”. Returns the pets AND what was understood (understood.chips: species, breed, age, size, good-with, place, radius...), so you can tell the person what was searched and drop a wrong one with off=[chip id]. Good-with and similar facts are only filters when a listing states them; each pet has match[] saying stated / not_stated. Weight caps are approximated by size group and energy is only a hint. If the AI parts are unavailable it still answers from the words (degraded says so). Prefer find_pets when you already have structured values.

输入模式

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "What the person wants, in their own words and language, e.g. “a calm small dog good with kids, under 10 kg, near 65738”"
    },
    "near": {
      "description": "A US ZIP, lat,lon or a Taiwan place, if it is not in the query",
      "type": "string",
      "maxLength": 60
    },
    "off": {
      "description": "Chip ids from a previous answer's understood.chips to leave out, e.g. [\"good_with:kids\"]",
      "maxItems": 12,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 48
      }
    },
    "include_unknown": {
      "description": "Also include pets whose listing does not say whether they are good with dogs/cats/kids (they are marked not_stated)",
      "type": "boolean"
    },
    "country": {
      "type": "string",
      "enum": [
        "US",
        "CA",
        "TW"
      ]
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "lang": {
      "description": "The person's language: en, es, zh-Hant, zh-Hans, ko, ja, vi, fr, ar, tl (default en)",
      "type": "string",
      "maxLength": 20
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢similar_pets(id, limit, lang)

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.

输入模式

{
  "type": "object",
  "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})$"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 24
    },
    "lang": {
      "type": "string",
      "maxLength": 20
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢about_this_service

Where the listings come from, who runs this service, what it keeps, and how a rescue changes or removes its listings.

输入模式

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本9 个工具