Skip to main content
Glama

Adoteca — Adoção de Pets no Brasil

Ver números do catálogo na cidade

get_city_stats
Read-only

Números do catálogo em UMA cidade já resolvida: quantos pets, por espécie, porte e idade, entradas em 24h, adoções, quantas ONGs e as raças mais comuns. Use para 'quantos pets tem em X?'. Não devolve pets, não resolve o nome da cidade e não lista QUAIS são as ONGs.

Input Schema

NameRequiredDescriptionDefault
cityYesNome do MUNICÍPIO por extenso, ou o slug devolvido pela resolução de cidade. Obrigatório: a resposta é sempre de uma cidade. Se o nome for ambíguo ou ninguém tiver pets ali hoje, o erro diz o que fazer.
stateNoSigla de duas letras da UF (SP, MG), se a pessoa informou. Opcional.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • addedOutput schema / $defs / AgentBreedCount / properties / by_species
      Added value: +{
      +  "additionalProperties": {
      +    "type": "integer"
      +  },
      +  "description": "Quantos desses são de cada espécie: chaves 'cachorro' e 'gato', e somam `count`. Uma raça pode aparecer nas duas — SRD (sem raça definida) aparece. Se a pessoa perguntou por uma espécie só, leia daqui: `name` e `count` juntam as duas.",
      +  "title": "By Species",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / AgentCityStats / properties / available_count
      Added value: +{
      +  "description": "Pets dessa cidade disponíveis para adoção agora. É este o número para dizer quantos pets a cidade TEM — `pet_count` e os campos por espécie, idade, porte e raça contam também os já adotados e os anúncios antigos, então são sempre maiores ou iguais a este.",
      +  "title": "Available Count",
      +  "type": "integer"
      +}
    • changedOutput schema / $defs / AgentCityStats / required
      Previous value: -[
      -  "city",
      -  "pet_count",
      -  "total_ever",
      -  "by_species",
      -  "by_age",
      -  "by_size",
      -  "new_last_24h",
      -  "adopted_total",
      -  "rescuer_count",
      -  "rank",
      -  "national_pct",
      -  "top_breeds"
      -]New value: +[
      +  "city",
      +  "pet_count",
      +  "available_count",
      +  "total_ever",
      +  "by_species",
      +  "by_age",
      +  "by_size",
      +  "new_last_24h",
      +  "adopted_total",
      +  "rescuer_count",
      +  "rank",
      +  "national_pct",
      +  "top_breeds"
      +]
  2. Changed3 schema fields changed
    • changedOutput schema / $defs / AgentCityStats / properties / national_pct / description
      Previous value: -"Percentual de todo o catálogo histórico que está nessa cidade, ex.: 2.4. Calculado sobre `total_ever`, não sobre o que está anunciado agora."New value: +"Percentual de todo o catálogo histórico que está nessa cidade, ex.: 2.4. Calculado sobre `total_ever`."
    • changedOutput schema / $defs / AgentCityStats / properties / pet_count / description
      Previous value: -"Pets anunciados nessa cidade nos últimos 90 dias. Inclui os já adotados, então pode ser maior que o número disponível agora."New value: +"Pets já anunciados nessa cidade, de qualquer data. Inclui os já adotados e anúncios antigos, então pode ser bem maior que o número disponível agora. Não prometa à pessoa que são recentes."
    • changedOutput schema / $defs / AgentCityStats / properties / total_ever / description
      Previous value: -"Pets já anunciados nessa cidade desde o início do catálogo, sem recorte de tempo. É a base dos campos por espécie, idade e porte, do `rank` e do `national_pct` — todos históricos. Para saber o que está anunciado agora, use `pet_count`."New value: +"Pets já anunciados nessa cidade desde o início do catálogo, sem recorte de tempo. É a base dos campos por espécie, idade e porte, do `rank` e do `national_pct` — todos históricos. `pet_count` carrega hoje o mesmo número: este retorno não tem um recorte de 'anunciado agora'."
  3. Changed8 schema fields changed
    • changedOutput schema / $defs / AgentCityStats / properties / by_age / description
      Previous value: -"Quantos por faixa etária: 'filhote', 'adulto', 'idoso'. Pets sem idade informada ficam de fora, então pode somar menos que `pet_count`."New value: +"Quantos por faixa etária: 'filhote', 'adulto', 'idoso'. Pets sem idade informada ficam de fora, então pode somar menos que `total_ever`."
    • changedOutput schema / $defs / AgentCityStats / properties / by_size / description
      Previous value: -"Quantos por porte: 'pequeno', 'médio', 'grande'. Pets sem porte informado ficam de fora, então pode somar menos que `pet_count`."New value: +"Quantos por porte: 'pequeno', 'médio', 'grande'. Pets sem porte informado ficam de fora, então pode somar menos que `total_ever`."
    • changedOutput schema / $defs / AgentCityStats / properties / by_species / description
      Previous value: -"Quantos por espécie: chaves 'cachorro' e 'gato'. Somam `pet_count`."New value: +"Quantos por espécie: chaves 'cachorro' e 'gato'. Somam `total_ever`."
    • changedOutput schema / $defs / AgentCityStats / properties / national_pct / description
      Previous value: -"Percentual do catálogo nacional que está nessa cidade, ex.: 2.4."New value: +"Percentual de todo o catálogo histórico que está nessa cidade, ex.: 2.4. Calculado sobre `total_ever`, não sobre o que está anunciado agora."
    • changedOutput schema / $defs / AgentCityStats / properties / rank / description
      Previous value: -"Posição da cidade no ranking nacional por `pet_count` (1 = 1º)."New value: +"Posição da cidade no ranking nacional por `total_ever` (1 = 1º)."
    • changedOutput schema / $defs / AgentCityStats / properties / top_breeds / description
      Previous value: -"As raças mais comuns na cidade, as mais numerosas primeiro."New value: +"As raças mais comuns na cidade em todo o histórico, as mais numerosas primeiro."
    • addedOutput schema / $defs / AgentCityStats / properties / total_ever
      Added value: +{
      +  "description": "Pets já anunciados nessa cidade desde o início do catálogo, sem recorte de tempo. É a base dos campos por espécie, idade e porte, do `rank` e do `national_pct` — todos históricos. Para saber o que está anunciado agora, use `pet_count`.",
      +  "title": "Total Ever",
      +  "type": "integer"
      +}
    • changedOutput schema / $defs / AgentCityStats / required
      Previous value: -[
      -  "city",
      -  "pet_count",
      -  "by_species",
      -  "by_age",
      -  "by_size",
      -  "new_last_24h",
      -  "adopted_total",
      -  "rescuer_count",
      -  "rank",
      -  "national_pct",
      -  "top_breeds"
      -]New value: +[
      +  "city",
      +  "pet_count",
      +  "total_ever",
      +  "by_species",
      +  "by_age",
      +  "by_size",
      +  "new_last_24h",
      +  "adopted_total",
      +  "rescuer_count",
      +  "rank",
      +  "national_pct",
      +  "top_breeds"
      +]
  4. Changed3 schema fields changed
    • removedOutput schema / $defs / AgentCityStats / properties / ngo_count
      Removed value: -{
      -  "description": "ONGs e protetores com pets anunciados nessa cidade.",
      -  "title": "Ngo Count",
      -  "type": "integer"
      -}
    • addedOutput schema / $defs / AgentCityStats / properties / rescuer_count
      Added value: +{
      +  "description": "ONGs e protetores com pets anunciados nessa cidade.",
      +  "title": "Rescuer Count",
      +  "type": "integer"
      +}
    • changedOutput schema / $defs / AgentCityStats / required
      Previous value: -[
      -  "city",
      -  "pet_count",
      -  "by_species",
      -  "by_age",
      -  "by_size",
      -  "new_last_24h",
      -  "adopted_total",
      -  "ngo_count",
      -  "rank",
      -  "national_pct",
      -  "top_breeds"
      -]New value: +[
      +  "city",
      +  "pet_count",
      +  "by_species",
      +  "by_age",
      +  "by_size",
      +  "new_last_24h",
      +  "adopted_total",
      +  "rescuer_count",
      +  "rank",
      +  "national_pct",
      +  "top_breeds"
      +]
  5. Changed1 schema field changed
    • changedOutput schema / $defs / AgentCityStats / description
      Previous value: -"Aggregate counts for ONE city. Deliberately carries no pets and no\nneighbouring cities — searchPets and findCity answer those."New value: +"Aggregate counts for ONE city. Deliberately carries no pets and no\nneighbouring cities — the pet search and the city lookup answer those."
  6. Added

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly/destructive/openWorld, so safety is covered. The description adds genuinely useful behavioral context beyond that: the result is aggregated counts only, no pet records are returned, city names are not resolved, and NGO identities are withheld. It does not discuss pagination or latency, but for a read-only aggregation that is a minor gap.

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

Conciseness5/5

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

Three tight sentences: what it counts, when to use it, and what it is not. The scope constraint is front-loaded and no sentence is redundant.

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

Completeness5/5

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

With an output schema present, return-shape detail is unnecessary, and annotations carry the safety profile. The description covers the aggregate contents, the resolution prerequisite, and the non-capabilities, leaving nothing an agent needs in order to call it correctly.

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 description coverage is 100%, so the schema already explains both 'city' (name or resolved slug) and optional 'state'. The description's 'cidade já resolvida' reinforces the resolution prerequisite but adds little syntax or format detail beyond what the schema already states about ambiguity errors.

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

Purpose5/5

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

States a specific verb+resource (aggregate catalog numbers for a single already-resolved city) and enumerates exactly what is counted: pets by species/size/age, 24h entries, adoptions, NGO count and top breeds. The scope marker 'UMA cidade' immediately separates it from multi-city or listing siblings like search_pets.

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

Usage Guidelines4/5

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

Gives a literal trigger ('quantos pets tem em X?') and three explicit exclusions (does not return pets, does not resolve the city name, does not list which NGOs), which steers the agent away from get_pet_details/search_pets and implies city resolution must happen first. It never names the sibling to use for resolution, so the routing is implied rather than spelled out.

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