Mission Museaux
Server Details
Lost & found pets in France: stray dogs and cats, photo search, shelter adoptions, breeds, advice.
- Status
- Healthy
- Uptime
- 100.0% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 9 tools
Each tool targets a distinct action+resource: adoption search, lost/found listings, volunteering, breed directory, breed recognition, photo-based listing match, advice, local help, and full listing read. The descriptions actively disambiguate the two photo tools and the two breed tools by cross-referencing each other (e.g. 'To only identify a breed, use reconnaitre_race').
All nine tools follow a consistent snake_case French verb_noun pattern (chercher_*, obtenir_*, reconnaitre_*, trouver_*, voir_*). No mixing of conventions or casing styles.
Nine tools is well-scoped for a pet rescue/adoption/reporting domain, with each tool earning its place. No redundancy and no filler.
The surface covers search (adoptions, listings, photo, breed), detail retrieval, advice, local help, and volunteering, which is a broad lifecycle. Minor gaps exist, e.g. no way to report a sighting or submit a listing, and contact details are deliberately withheld, but core workflows are covered.
Available Tools
9 toolschercher_adoptionsChercher un animal à adopter / Search pets for adoptionARead-onlyIdempotentInspect
Search cats and dogs for adoption in France, at Mission Museaux and other shelters, near a town, in a department or region, or nationwide, by breed, sex, age and gets-on-with. Returns up to 25 animals with shelter, fee, photo, dates and link; else the closest within 300 km. Accepts French or English; replies in French, or English with langue "en".
| Name | Required | Description | Default |
|---|---|---|---|
| race | No | Breed in French or English (string, 2 to 60 characters), e.g. "labrador", "Maine coon" or "berger australien". A partial name such as "lévrier" covers every breed containing it. | |
| sexe | No | Sex: male or femelle (female). Animals of unstated sex are kept and flagged as not stated. | |
| espece | No | Species: chat (cat) or chien (dog); adoptions only cover cats and dogs. cat, kitten, dog or puppy are accepted. Omit for both. | |
| langue | No | Response language: "fr" (French, default) or "en" (English). A request written in English is answered in English even without it. | fr |
| limite | No | Number of animals to return (whole number, 1 to 25, default 10); a larger value is lowered to 25. Use decalage for the next page. | |
| commune | No | French town name or 5-digit postcode (string, 2 to 80 characters), e.g. "Nemours", "77140" or "Chaumont 52" (department number to tell namesakes apart). France only; a place abroad returns no result. | |
| decalage | No | Number of animals to skip, for paging (whole number, 0 to 500, default 0), e.g. 10 for the second page of 10. | |
| ententes | No | Gets on with (list of 1 to 4 values): chats (cats), chiens (dogs), enfants (children), premier_animal (suits a first-time owner), e.g. ["chats", "enfants"]. Only animals whose profile says so are kept. | |
| latitude | No | Latitude of the search centre in decimal degrees (number, -90 to 90), e.g. 48.267. Give it with longitude, instead of commune. | |
| rayon_km | No | Search radius in km around commune or the coordinates (number, 1 to 300, default 60). Without a centre or departement, all of France. | |
| longitude | No | Longitude of the search centre in decimal degrees (number, -180 to 180), e.g. 2.693. Give it with latitude, instead of commune. | |
| departement | No | Department or region instead of a radius (string): code or name, several separated by commas, e.g. "77", "2A", "Bretagne" or "75, 92, 93". A commune given with it only sorts by distance. | |
| age_max_mois | No | Maximum age in months, inclusive (whole number, 0 to 300), e.g. 11 for under one year or 23 for under two. Animals of unstated age are left out. | |
| age_min_mois | No | Minimum age in months, inclusive (whole number, 0 to 300), e.g. 96 for 8 years or older. Read from the age the shelter wrote; animals of unstated age are left out. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | |
| centre | Yes | |
| rappel | Yes | |
| animaux | Yes | |
| criteres | Yes | |
| decalage | Yes | |
| rayon_km | Yes | |
| homonymes | Yes | When several towns have exactly the given name and no department tells them apart; null otherwise. |
| plus_proche | Yes | In an empty answer, the closest animal meeting the same criteria, up to rayon_max_km from the centre or the prefecture, with its dates and source. |
| repartition | Yes | |
| total_exact | Yes | |
| departements | Yes | |
| lieu_non_couvert | No | Present when the given town is not a French town: without a requested department, no search took place; Mission Museaux covers France. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, and openWorldHint=false. Beyond that, the description discloses the 25-result cap, the fallback behaviour ('else the closest within 300 km'), and language handling ('accepts French or English; replies in French, or English with langue "en"') — genuine behavioural traits not visible in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose then return/fallback behaviour then language, with no filler. Slightly dense and partially overlapping with schema-documented facts, but structured and appropriately sized for a 14-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not enumerate return fields, and it sensibly focuses on scope, fallback and language. For a 14-parameter, zero-required search tool, this is nearly complete; only the sibling-routing boundary is left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each of the 14 parameters already documents format, ranges and examples. The description's 'by breed, sex, age and gets-on-with' merely names a subset of those parameters and adds no syntax or format meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search) and resource (cats and dogs for adoption in France), with concrete scope (Mission Museaux and other shelters, geographic modes). It is distinguishable from most siblings, but never explicitly names or contrasts with the closest alternative chercher_annonces, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through its geographic modes (near a town, department/region, nationwide) and filter list, which tells the agent when the tool is applicable. However, it offers no explicit when-to-use-vs-alternative guidance or exclusions relative to chercher_annonces or chercher_par_photo, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chercher_annoncesChercher des animaux perdus ou trouvés / Search lost and found petsARead-onlyIdempotentInspect
Search Mission Museaux's listings of lost, found and stray pets in France near a town or point, by species, breed, colour, sex, date or words. Use statut trouve_ou_errant for a lost pet, perdu for a found one. Returns up to 25 listings with photo, dates, source and link. Accepts French or English; replies in French, or English with langue "en".
| Name | Required | Description | Default |
|---|---|---|---|
| tri | No | Sort order: recent (most recent first, default) or proche (closest to the centre first; needs commune or coordinates). | recent |
| race | No | Breed or kind of animal in French or English (string, 2 to 60 characters), e.g. "labrador", "German Shepherd" or "rabbit". A partial name such as "berger" covers every breed containing it; chercher_races lists recognised names. | |
| sexe | No | Sex: male or femelle (female). Listings of unknown sex are kept and flagged as not stated. | |
| jours | No | Only listings from the last N calendar days, Paris time (whole number, 1 to 365, default 60), e.g. 30. | |
| texte | No | Free words or a phrase in French or English (string, up to 120 characters), e.g. "black lab mix red collar". Breed, colour and sex are recognised; other words are searched in the listing text. The answer says how it was understood. | |
| espece | No | Species: chat (cat), chien (dog), oiseau (bird) or autre (rabbit, ferret, tortoise…). cat, kitten, dog or puppy are accepted. Omit for all species. | |
| langue | No | Response language: "fr" (French, default) or "en" (English). A request written in English is answered in English even without it. | fr |
| limite | No | Number of listings to return (whole number, 1 to 25, default 10); a larger value is lowered to 25. Use decalage for the next page. | |
| statut | No | Which listings: perdu (lost by their owners), trouve (found and taken in), errant (seen roaming), trouve_ou_errant (what an owner looking for a lost pet should check) or tous (all, default). Synonyms such as lost, missing, found or stray are accepted. | tous |
| commune | No | French town name or 5-digit postcode (string, 2 to 80 characters), e.g. "Nemours", "77140" or "Chaumont 52" (department number to tell namesakes apart). France only; a place abroad returns no result. | |
| couleur | No | Coat colour in French or English (string, 2 to 60 characters), e.g. "black and white" or "tabby". With a breed, listings whose colour is not stated are kept and flagged. | |
| decalage | No | Number of listings to skip, for paging (whole number, 0 to 500, default 0), e.g. 10 for the second page of 10. | |
| latitude | No | Latitude of the search centre in decimal degrees (number, -90 to 90), e.g. 48.267. Give it with longitude, instead of commune. | |
| perdu_le | No | Date the pet was lost (string, YYYY-MM-DD, not in the future), e.g. "2026-10-06": keeps listings whose event dates from the day before or later. Replaces jours. | |
| rayon_km | No | Search radius in km around commune or the coordinates (number, 1 to 100, default 25), e.g. 10 for a cat, 40 for a dog. | |
| longitude | No | Longitude of the search centre in decimal degrees (number, -180 to 180), e.g. 2.693. Give it with latitude, instead of commune. | |
| inclure_race_inconnue | No | With a breed (boolean, default true): also list, in a separate block, same-species animals whose breed is not stated, since found animals are often filed without one. false to leave them out. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tri | Yes | |
| total | Yes | |
| centre | Yes | |
| annonces | Yes | |
| decalage | Yes | |
| rayon_km | Yes | |
| homonymes | Yes | When several towns have exactly the given name and no department tells them apart; null otherwise. |
| plus_proche | Yes | In an empty answer, the closest listing meeting the same criteria, up to rayon_max_km from the centre, with its dates and source. |
| total_exact | Yes | |
| ecartee_par_sexe | Yes | The closest listing left out by the sex criterion alone (the most recent without a centre), whether or not the answer is empty; ecartees_par_sexe gives how many it leaves out. |
| lieu_non_couvert | No | Present when the given town is not a French town: without a requested department, no search took place; Mission Museaux covers France. |
| ecartees_par_sexe | Yes | |
| race_non_precisee | Yes | |
| recherche_comprise | Yes | |
| ecartees_par_sexe_rayon_km | Yes | The radius over which ecartees_par_sexe is counted: rayon_km, or the maximum radius (100) when an empty answer was widened; null without a sex criterion or a centre. Only listings of the breed searched for are counted there; race_non_precisee counts its own. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds behavior the annotations cannot: a hard cap of 25 returned listings with photo, dates, source and link, plus language handling — French or English input, French output by default and English with langue "en". Nothing contradicts the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences for a 17-parameter tool: purpose first, then the tricky status semantics, then return shape and language. No filler and nothing important is buried at the end.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present it need not describe return values in detail, and annotations carry the safety profile; the description still covers scope, the status gotcha, the 25-listing cap and language behavior. It leaves paging (decalage), the geo/radius model and the choice between this tool and the photo or listing-detail siblings to the schema, which is acceptable but not exhaustive for a tool of this size.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description surfaces the counterintuitive statut mapping (perdu vs trouve_ou_errant) at the top level rather than leaving it buried in a 17-parameter schema, and summarizes the filter facets an agent should map onto parameters. It adds emphasis and cross-field synthesis, though little that is entirely absent from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Search) plus the exact resource and scope: Mission Museaux's listings of lost, found and stray pets in France near a town or point, filterable by species, breed, colour, sex, date or words. The domain is unmistakably distinct from siblings such as chercher_adoptions, chercher_races and chercher_par_photo, so an agent can route without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It supplies a valuable, non-obvious usage rule — use statut trouve_ou_errant when looking for a lost pet, perdu when looking for a found one — and the geographic/date framing makes the intended context clear. It stops short of naming alternatives (e.g. when to prefer chercher_par_photo or voir_annonce), so no explicit exclusions or sibling routing are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chercher_missions_benevolatChercher des missions de bénévolat / Find volunteering missionsARead-onlyIdempotentInspect
Find animal volunteering missions in France (shelters, wildlife, horses) near a town, in a department or nationwide, from API Engagement data. Use it to help someone volunteer. Returns up to 25 missions with organisation, place, dates and the Mission Museaux page to apply. Accepts French or English; replies in French, or English with langue "en".
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Kind of mission: tous (all, default), benevolat (volunteering), service_civique (French civic service, ages 16 to 25) or volontariat (other volunteer schemes). | tous |
| langue | No | Response language: "fr" (French, default) or "en" (English). A request written in English is answered in English even without it. | fr |
| limite | No | Number of missions to return (whole number, 1 to 25, default 10); a larger value is lowered to 25. Use decalage for the next page. | |
| commune | No | French town name or 5-digit postcode (string, 2 to 80 characters), e.g. "Nemours", "77140" or "Chaumont 52" (department number to tell namesakes apart). France only; a place abroad returns no result. | |
| decalage | No | Number of missions to skip, for paging (whole number, 0 to 500, default 0), e.g. 10 for the second page of 10. | |
| latitude | No | Latitude of the search centre in decimal degrees (number, -90 to 90), e.g. 48.267. Give it with longitude, instead of commune. | |
| rayon_km | No | Search radius in km around commune or the coordinates (number, 1 to 100, default 30). Without a centre or departement, all of France. | |
| longitude | No | Longitude of the search centre in decimal degrees (number, -180 to 180), e.g. 2.693. Give it with latitude, instead of commune. | |
| departement | No | Department or region instead of a radius (string): code or name, several separated by commas, e.g. "77", "2A", "Bretagne" or "75, 92, 93". A commune given with it only sorts by distance. |
Output Schema
| Name | Required | Description |
|---|---|---|
| type | Yes | |
| total | Yes | |
| centre | Yes | |
| rappel | Yes | How to apply: from the mission's page on Mission Museaux. |
| donnees | Yes | Where the missions come from: API Engagement, under the Licence Ouverte 2.0. |
| decalage | Yes | |
| missions | Yes | |
| rayon_km | Yes | |
| homonymes | Yes | When several towns have exactly the given name and no department tells them apart; null otherwise. |
| plus_proche | Yes | In an empty answer around a town or point, the closest mission of the same type beyond the radius, anywhere in France. |
| total_exact | Yes | |
| departements | Yes | |
| indisponible | No | Present when no search could take place (missions not available here, or the daily copy not ready yet). |
| lieu_non_couvert | No | Present when the given town is not a French town: without a requested department, no search took place; Mission Museaux covers France. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered; the description adds genuinely new behavioral context: the upstream data source (API Engagement), the result ceiling (up to 25 missions with organisation, place, dates and an application page), and the language negotiation behavior between French and English. It stops short of describing pagination behavior explicitly, which the limite/decalage schema handles.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose and geographic scope before the return content and language rules. Slightly redundant between "Returns up to 25 missions" and the schema's maximum of 25, but overall efficient and free of padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not enumerate return fields, yet it usefully names the key ones. Annotations cover the safety profile and the schema is fully self-documented, so the only real omission is guidance on choosing this tool over the other chercher_* siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description rises above that by synthesizing the three mutually exclusive geographic search modes (near a town, in a department, or nationwide) and by stating the language behavior that governs the langue parameter, both of which help an agent choose parameters rather than just fill them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource (finding animal volunteering missions in France), states the scope variants (shelters, wildlife, horses) and the geographic modes (town, department, nationwide), and identifies the data source (API Engagement). This is clearly distinguishable from siblings such as chercher_adoptions or chercher_annonces, which target different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use it to help someone volunteer" gives a purpose context but no explicit when/when-not and no named alternative among the sibling search tools. The geographic-mode hints (commune vs latitude/longitude vs departement) are usage-relevant but are restatements of the schema rather than routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chercher_par_photoChercher des annonces par photo / Find listings by photoARead-onlyIdempotentInspect
Find LISTINGS whose photo looks like a pet photo (https url or base64), to see if a lost or found animal was reported. To only identify a breed, use reconnaitre_race. Returns up to 10 listings with likeness %, dates and source, plus a breed estimate. Photo not stored. Accepts French or English; replies in French, or English with langue "en".
| Name | Required | Description | Default |
|---|---|---|---|
| cible | No | Which listings to compare with: trouves (found or stray animals, default: for an owner who lost a pet), perdus (lost animals: for someone who found one) or tous (all). found and lost are accepted. | trouves |
| espece | No | Species: chat (cat), chien (dog), oiseau (bird) or autre (other animal). cat or dog are accepted. Omit it and the species is inferred from the photo. | |
| langue | No | Response language: "fr" (French, default) or "en" (English). A request written in English is answered in English even without it. | fr |
| commune | No | French town name or 5-digit postcode (string, 2 to 80 characters), e.g. "Nemours", "77140" or "Chaumont 52" (department number to tell namesakes apart). France only; a place abroad returns no result. | |
| latitude | No | Latitude of the search centre in decimal degrees (number, -90 to 90), e.g. 48.267. Give it with longitude, instead of commune. | |
| rayon_km | No | Search radius in km around commune or the coordinates (number, 1 to 500, default 100 with a centre). Without a centre, all of France is searched. | |
| longitude | No | Longitude of the search centre in decimal degrees (number, -180 to 180), e.g. 2.693. Give it with latitude, instead of commune. | |
| photo_url | No | Public https address of the photo itself (string url; jpeg, png or webp, 8 MB at most), e.g. "https://example.com/cat.jpg". Give photo_url or photo_base64, not both. | |
| photo_base64 | No | The photo encoded in base64 (string, with or without a data: header, about 2.5 MB at most), instead of photo_url; an image received in the conversation goes here. |
Output Schema
| Name | Required | Description |
|---|---|---|
| centre | Yes | |
| conseil | Yes | |
| annonces | Yes | |
| rayon_km | Yes | |
| race_estimee | Yes | |
| lieu_non_couvert | No | Present when the given town is not a French town: without a requested department, no search took place; Mission Museaux covers France. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely useful behavior: capped at 10 results, likeness %, dates and source returned, plus a breed estimate, and the reassurance that the photo is not stored.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with purpose and the sibling alternative, with no filler. The final sentence is a slightly dense bundle of format/language facts, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering safety and an output schema covering return shape, the description only needs to add matching behavior and limits, which it does (10 results, likeness, storage disclaimer). Minor omissions like error handling for bad photos are acceptable given the schema and output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter descriptions are themselves detailed, so the schema does the heavy lifting. The description restates accepted photo formats and the French/English behavior rather than adding semantics the schema lacks, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Find LISTINGS whose photo looks like a pet photo') and frames the goal ('to see if a lost or found animal was reported'). It explicitly distinguishes itself from the sibling reconnaitre_race, which is the nearest lookalike tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: use reconnaitre_race if the goal is only breed identification, use this tool if the goal is matching a photo against lost/found listings. The 'cible' parameter description also encodes the owner-vs-finder use case, though there are no explicit when-not-to-use conditions beyond the one alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chercher_racesChercher une race / Look up breedsARead-onlyIdempotentInspect
Look up dog and cat breeds in Mission Museaux's directory by full or partial name, or list the most common. Use it to check a breed name. Returns French and English names, other names, FCI standard, origin, listings and adoptions per breed, and its page. Dogs and cats only. Accepts French or English; replies in French, or English with langue "en".
| Name | Required | Description | Default |
|---|---|---|---|
| espece | No | Species: chat (cat) or chien (dog); the directory only covers cats and dogs. cat or dog are accepted. Omit for both. | |
| langue | No | Response language: "fr" (French, default) or "en" (English). A request written in English is answered in English even without it. | fr |
| limite | No | Number of breeds to return (whole number, 1 to 30, default 10); a larger value is lowered to 30. | |
| recherche | No | Breed name in French or English, full or partial (string, 2 to 60 characters), e.g. "berger", "retriever" or "Maine coon". Omit it to list the most common breeds. |
Output Schema
| Name | Required | Description |
|---|---|---|
| races | Yes | |
| source | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds useful behavior beyond that: the domain restriction to cats and dogs, and the language negotiation rule (French default, English on request).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four compact sentences, front-loaded with purpose and followed by return content, scope limits and language handling. No filler, though the enumerated return fields are somewhat list-like.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not detail return values; scope, language behavior and the omit-to-list mode are all covered. Only the relationship to the breed-recognition sibling is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (espece, langue, limite, recherche) are already fully documented with enums, defaults and bounds. The description's language note roughly restates the langue field, adding little beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — looking up dog and cat breeds in Mission Museaux's directory — plus the two retrieval modes (name search, most-common listing). Scope limits ('Dogs and cats only') help separate it from the photo-based sibling reconnaitre_race, though that sibling is never named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use it to check a breed name' gives one implied use case but no explicit when-not guidance or alternatives. The agent must infer that reconnaitre_race (likely visual identification) is the other option.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
obtenir_conseilsObtenir des conseils / Get adviceARead-onlyIdempotentInspect
Get Mission Museaux's step-by-step advice for one situation: lost pet, found animal, kittens outdoors, injured animal, stray cats, mistreatment, identification (microchip, I-CAD) or adoption. Use it when someone asks what to do. Returns steps, FAQ and links, for France. Accepts French or English; replies in French, or English with langue "en".
| Name | Required | Description | Default |
|---|---|---|---|
| langue | No | Response language: "fr" (French, default) or "en" (English). A request written in English is answered in English even without it. | fr |
| situation | Yes | The situation (required): chat_perdu (lost cat), chien_perdu (lost dog), animal_trouve (found animal), chatons (kittens outdoors), animal_blesse (injured), chats_errants (stray cats), maltraitance (mistreatment), identification (microchip, I-CAD) or adoption, e.g. "chat_perdu". |
Output Schema
| Name | Required | Description |
|---|---|---|
| faq | No | |
| liens | Yes | |
| titre | Yes | |
| etapes | Yes | |
| resume | No | |
| situation | Yes | |
| premieres_heures | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely useful behaviour beyond that: it discloses the return shape (steps, FAQ and links), a geographic scope limitation (France), and the language contract (accepts FR or EN, replies in French, or English with langue 'en'). The France-only limitation in particular is not derivable from any structured field.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three densely packed sentences, front-loaded with the resource and the use condition before the return/locale detail. Slight redundancy with the schema's enum list, but nothing is padded or wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values need not be spelled out, and the description still summarises them (steps, FAQ, links). Coverage of situations, locale and scope is complete enough to invoke correctly; the only missing element is an explicit boundary against trouver_aide_locale for local-resource questions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters carry rich enum descriptions, so the baseline is 3. The description's language sentence largely echoes what the 'langue' schema description already states ('A request written in English is answered in English even without it'), adding little new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource, then enumerates the exact nine situations it covers (lost pet, found animal, kittens, injured animal, stray cats, mistreatment, identification, adoption), making it unmistakably distinct from the sibling search tools (chercher_adoptions, chercher_annonces, trouver_aide_locale). An agent can route between 'give me advice' and 'search listings' without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use it when someone asks what to do' gives a clear triggering condition tied to user intent rather than keywords. It does not name an explicit alternative or exclusion among siblings (e.g. trouver_aide_locale for geographic/local resources), so it falls short of a 5, but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reconnaitre_raceEstimer la race sur une photo / Estimate breed from a photoARead-onlyIdempotentInspect
Estimate the BREED of a dog or cat on a photo (https or base64), or the kind of bird or small pet (budgerigar, rabbit…). For matching listings, use chercher_par_photo. Returns likely breeds with shares, type or mix, and pages; an estimate, not a certainty. Photo not stored. Accepts French or English; replies in French, or English with langue "en".
| Name | Required | Description | Default |
|---|---|---|---|
| espece | Yes | Species shown on the photo (required): chat (cat), chien (dog), oiseau (bird) or autre (rabbit, guinea pig, tortoise, ferret…). cat, dog or rabbit are accepted. | |
| langue | No | Response language: "fr" (French, default) or "en" (English). A request written in English is answered in English even without it. | fr |
| photo_url | No | Public https address of the photo itself (string url; jpeg, png or webp, 8 MB at most), e.g. "https://example.com/dog.jpg". Give photo_url or photo_base64, not both. | |
| photo_base64 | No | The photo encoded in base64 (string, with or without a data: header, about 2.5 MB at most), instead of photo_url; an image received in the conversation goes here. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| races | Yes | |
| espece | Yes | The estimated or given species, in the response language; for a bird or another animal, races lists its kinds (budgerigar, rabbit…). |
| source | Yes | |
| famille | Yes | The likely dog type when no breed dominates (verdict “incertain”) but the first two breeds, its examples, are of this type and its breeds among the top three gather more than half of the estimate; likewise, for a bird or another animal, the group of its first two kinds (rodent, parrot, tortoise…); null otherwise, and always for a cat. |
| verdict | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the bar is lower. The description still adds real behavioral value: it discloses the return shape (breeds with shares, type or mix), the uncertainty of the result ("an estimate, not a certainty"), the privacy trait (photo not stored), and language behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then alternatives, then return/privacy/language notes. Dense but each clause carries information. The language sentence is slightly redundant with the langue parameter description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be spelled out, yet the description still summarizes them. With annotations covering safety and a 100%-covered schema, the agent has everything needed to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents espece, langue, photo_url and photo_base64 in detail; baseline is 3. The description echoes the https-or-base64 input choice and the language override, adding only marginal meaning beyond the schema's own text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (estimate the breed of an animal on a photo) and explicitly scopes which species are handled (dog/cat vs. bird/small pet). It names the sibling it is not (chercher_par_photo for matching listings), so an agent can separate it from alternatives without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the alternative and the condition that selects it: "For matching listings, use chercher_par_photo." This is clear context and routing. It lacks any explicit when-not guidance (e.g., no usable photo, low-quality image, unsupported species beyond 'autre'), which keeps it short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trouver_aide_localeTrouver de l'aide près d'un lieu / Find local helpARead-onlyIdempotentInspect
Find local help near a French town, postcode or listing: town hall (phone, hours, pound), nearest vets, shelters and pounds within 50 km, neutering aid. Use it after a pet is lost or found. Returns up to 10 places with distance, phone, hours, source; open data, call first. Accepts French or English; replies in French, or English with langue "en".
| Name | Required | Description | Default |
|---|---|---|---|
| besoin | No | What is needed: tous (all, default), veterinaire (vets), refuge (shelters), fourriere (pound), mairie (town hall) or sterilisation (neutering aid for stray cats). | tous |
| langue | No | Response language: "fr" (French, default) or "en" (English). A request written in English is answered in English even without it. | fr |
| annonce | No | Listing id or url from chercher_annonces or voir_annonce (string), e.g. a 36-character UUID, instead of commune: searches around the centre of its town, never its exact spot. | |
| commune | No | French town name or 5-digit postcode (string, 2 to 80 characters), e.g. "Nemours" or "77140". Searches around the town centre. France only; give commune or annonce. | |
| rayon_km | No | Search radius in km around the town centre (number, 1 to 50, default 50). Shelters and pounds are listed within 10, then 25, then 50 km. |
Output Schema
| Name | Required | Description |
|---|---|---|
| liens | Yes | Neutering aid organisations, the OpenStreetMap editor and the data sources page. |
| lieux | Yes | Up to 10 places: the town hall first, then the closest of each kind. No coordinates. |
| besoin | Yes | The need searched for, as understood. |
| centre | Yes | The town centre that distances are measured from; null when the town is not covered. |
| donnees | Yes | Open data: OpenStreetMap (ODbL), Insee Sirene and Service-Public. |
| rayon_km | Yes | The radius used, in km (50 at most). |
| demarches | Yes | What to do, in plain steps (town hall and pound, neutering, call first). |
| indisponible | No | Present when the list of places is not available yet. |
| mises_en_garde | Yes | Warnings to pass on: open data that may be out of date, distances as the crow flies, places independent of Mission Museaux, no medical advice. |
| lieu_non_couvert | No | Present when the town given is abroad or not found: Mission Museaux covers France. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), but the description adds real value beyond them: a hard 10-result cap, the returned fields (distance, phone, hours, source), open-data provenance, the "call first" staleness warning, and language behavior. No auth, rate-limit, or error behavior is described, which keeps this short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences that front-load the purpose, then usage and return/contract details. Slightly wasteful where it re-lists the enum values ("town hall (phone, hours, pound), nearest vets, shelters and pounds") that the schema already defines.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter, no-required-arg search tool with a full output schema and complete annotation coverage, the description supplies everything an agent still needs: when to call it, result cap, distance tiers, provenance caveat, and language handling. Return-value details are covered by the output schema, so nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents besoin, langue, commune, annonce and rayon_km thoroughly. The description mostly restates the enum categories and the French/English reply rule, adding little syntax or semantics the schema lacks (the 10/25/50 km tiering and 'never its exact spot' already live in the schema descriptions). Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (find local help near a French town/postcode/listing) and enumerates the exact result categories: town hall, vets, shelters, pounds, neutering aid. An agent can tell this apart from the sibling search tools (chercher_annonces, chercher_adoptions) without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear triggering context ("Use it after a pet is lost or found") and a practical caveat ("open data, call first"). It does not name which sibling to pick instead when the agent actually wants listings or adoption results, so the routing guidance is only partial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
voir_annonceLire une annonce / Read a listingARead-onlyIdempotentInspect
Read one listing or adoptable animal in full after a search, by the id or url from chercher_annonces, chercher_par_photo or chercher_adoptions. Returns description, marks, dates, source, photos and sightings, or temperament, health and fee. Never returns contact details. Accepts French or English; replies in French, or English with langue "en".
| Name | Required | Description | Default |
|---|---|---|---|
| langue | No | Response language: "fr" (French, default) or "en" (English). A request written in English is answered in English even without it. | fr |
| annonce | Yes | Listing or adoptable animal to read (string): the id or url returned by chercher_annonces, chercher_par_photo or chercher_adoptions, e.g. "3f2b9c1e-5d4a-4b8e-9c7f-1a2b3c4d5e6f" or "https://missionmuseaux.fr/fiches/<id>". |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| age | No | |
| nom | No | |
| url | Yes | |
| date | No | |
| lieu | Yes | |
| race | Yes | |
| sexe | Yes | |
| frais | No | |
| photo | Yes | |
| sante | No | |
| titre | No | |
| espece | Yes | |
| photos | No | |
| source | No | Where the record comes from: mission_museaux (published on Mission Museaux), reprise (a listing relayed from another platform, not named; contact goes through the original listing) or association_partenaire (an animal offered by another French association or shelter, not registered on Mission Museaux, whose listing Mission Museaux relays). |
| statut | No | Status in the response language. |
| taille | No | |
| traits | No | |
| commune | No | |
| couleur | No | Listing colour, translated into the response language when it is in the colour vocabulary, otherwise as written. |
| reserve | No | |
| ententes | No | |
| page_race | No | |
| publiee_le | No | When the record was first published (ISO date): on Mission Museaux, at the original platform for a reprise, or by the association offering the animal. null when unknown. |
| association | No | |
| departement | No | |
| description | No | |
| distance_km | Yes | |
| verifiee_le | No | When Mission Museaux last re-read the listing of the association offering the animal and found it still listed (ISO date); a freshness check, not a verification of the animal. null for Mission Museaux's own animals. |
| observations | No | |
| presentation | No | Rewording written by Mission Museaux. |
| date_evenement | No | |
| mise_a_jour_le | No | Listing: the latest of its last sighting, last status change and derniere_nouvelle, so it can be later than in search results. Animal offered by another association: when that association last changed its listing, null when unknown. ISO date. |
| pays_mentionnes | No | |
| criteres_demandes | No | For each criterion of the request (breed, colour, sex, age, gets-on-with), whether the record states it. Empty when no such criterion was asked. |
| derniere_nouvelle | No | |
| description_auteur | No | “Mission Museaux” when the listing text is a summary written by Mission Museaux from the original listing (a rewording, not a quotation); null when it is the listing's own text, quoted. |
| signes_distinctifs | No | |
| presentation_auteur | No | |
| association_verifiee | No | |
| derniere_observation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive safety, lowering the bar. The description still adds meaningful behavior: it summarizes the returned content classes, guarantees contact details are never returned, and notes French/English acceptance with French-default output. That privacy guarantee and language behavior go beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action and source tools, then returns, then the privacy note and language behavior. Every sentence carries information with no filler, though the language sentence is somewhat redundant against the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be spelled out, yet the description helpfully summarizes them anyway. Annotations cover safety and the schema covers parameters fully, so the definition is nearly complete; the only minor gap is no explicit statement of what happens on an invalid or expired id.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both 'annonce' (id or url) and 'langue' (enum fr/en, default fr). The description largely repeats this (accepts French or English; replies in French or English with langue "en"), adding little beyond the structured fields. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) and resource (one listing or adoptable animal) in full, and explicitly distinguishes itself from siblings by naming the search tools (chercher_annonces, chercher_par_photo, chercher_adoptions) that produce the id/url it consumes. An agent can tell it apart from the search siblings immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly states the precondition: use it after a search, with the id or url returned by one of three named search tools. This gives strong routing context. It stops short of stating when not to use it (e.g., that it only reads a single item vs. listing many), so it is not a full when/when-not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
trouver_aide_locale2 fields changed- added
Output schema / properties / lieux / items / properties / lien_google_mapsAdded value: +{ + "description": "A Google Maps search for the place (name and town only), for the person to check phone, hours and reviews before calling; null for a town hall or State services, whose details come from the official directory.", + "type": [ + "string", + "null" + ] +} - changed
Output schema / properties / lieux / items / requiredPrevious value: -[ - "type", - "nom", - "commune", - "distance_km", - "telephone", - "horaires", - "horaires_lisibles", - "site", - "source", - "date_source", - "lien_osm" -]New value: +[ + "type", + "nom", + "commune", + "distance_km", + "telephone", + "horaires", + "horaires_lisibles", + "site", + "source", + "date_source", + "lien_osm", + "lien_google_maps" +]
1 tool update
- Added
trouver_aide_locale
10 tool updates
- Changed
chercher_adoptions25 fields changed- changed
Input schema / properties / age_max_mois / descriptionPrevious value: -"Âge maximal en mois, compris (11 pour moins d'un an, 23 pour moins de 2 ans). / Maximum age in months, inclusive (11 for under one year, 23 for under two)."New value: +"Maximum age in months, inclusive (whole number, 0 to 300), e.g. 11 for under one year or 23 for under two. Animals of unstated age are left out." - changed
Input schema / properties / age_min_mois / descriptionPrevious value: -"Âge minimal en mois, compris (96 pour 8 ans ou plus), d'après l'âge écrit par l'association : « 2 ans » compte 24 mois. Un animal d'âge non indiqué est écarté. / Minimum age in months, inclusive (96 for 8 years or more), from the age the association wrote; animals of unstated age are left out."New value: +"Minimum age in months, inclusive (whole number, 0 to 300), e.g. 96 for 8 years or older. Read from the age the shelter wrote; animals of unstated age are left out." - changed
Input schema / properties / commune / descriptionPrevious value: -"Commune française (nom ou code postal), par exemple « Nemours », « Chaumont 52 » (avec le département) ou « 77140 ». / French town (name or postcode), e.g. “Chaumont 52” with the department."New value: +"French town name or 5-digit postcode (string, 2 to 80 characters), e.g. \"Nemours\", \"77140\" or \"Chaumont 52\" (department number to tell namesakes apart). France only; a place abroad returns no result." - changed
Input schema / properties / decalage / descriptionPrevious value: -"Nombre d'animaux à passer, pour lire la suite d'une liste : 10 donne la deuxième page de 10. / Number of animals to skip, to read the next page."New value: +"Number of animals to skip, for paging (whole number, 0 to 500, default 0), e.g. 10 for the second page of 10." - changed
Input schema / properties / departement / descriptionPrevious value: -"Département ou région : code (« 77 », « 2A », « 971 ») ou nom (« Seine-et-Marne », « Bretagne », « Île-de-France »), plusieurs séparés par des virgules. Remplace le rayon ; une commune ou des coordonnées données avec lui servent à classer par distance. / Department or region: code or name, several separated by commas. Replaces the radius; a commune or coordinates given with it sort by distance."New value: +"Department or region instead of a radius (string): code or name, several separated by commas, e.g. \"77\", \"2A\", \"Bretagne\" or \"75, 92, 93\". A commune given with it only sorts by distance." - changed
Input schema / properties / ententes / descriptionPrevious value: -"S'entend avec : chats, chiens, enfants, premier_animal (convient à qui n'a jamais eu d'animal). Seuls restent les animaux dont la fiche le dit ; la réponse dit pour combien l'information manque. / Gets on with: chats (cats), chiens (dogs), enfants (children), premier_animal (suits a first-time owner); only animals whose listing says so are kept, and the answer says how many lack the information."New value: +"Gets on with (list of 1 to 4 values): chats (cats), chiens (dogs), enfants (children), premier_animal (suits a first-time owner), e.g. [\"chats\", \"enfants\"]. Only animals whose profile says so are kept." - added
Input schema / properties / espece / descriptionAdded value: +"Species: chat (cat) or chien (dog); adoptions only cover cats and dogs. cat, kitten, dog or puppy are accepted. Omit for both." - changed
Input schema / properties / langue / descriptionPrevious value: -"Langue de la réponse : fr (par défaut) ou en. / Response language: fr (default) or en."New value: +"Response language: \"fr\" (French, default) or \"en\" (English). A request written in English is answered in English even without it." - changed
Input schema / properties / latitude / descriptionPrevious value: -"Latitude du centre de recherche, à la place de la commune. / Search centre latitude."New value: +"Latitude of the search centre in decimal degrees (number, -90 to 90), e.g. 48.267. Give it with longitude, instead of commune." - added
Input schema / properties / limite / descriptionAdded value: +"Number of animals to return (whole number, 1 to 25, default 10); a larger value is lowered to 25. Use decalage for the next page." - changed
Input schema / properties / longitude / descriptionPrevious value: -"Longitude du centre de recherche. / Search centre longitude."New value: +"Longitude of the search centre in decimal degrees (number, -180 to 180), e.g. 2.693. Give it with latitude, instead of commune." - changed
Input schema / properties / race / descriptionPrevious value: -"Race, en français ou en anglais (« labrador », « berger australien », « Maine coon ») ; un nom partiel (« lévrier ») couvre les races de l'annuaire qui le contiennent. / Breed in French or English; a partial name covers every breed that contains it."New value: +"Breed in French or English (string, 2 to 60 characters), e.g. \"labrador\", \"Maine coon\" or \"berger australien\". A partial name such as \"lévrier\" covers every breed containing it." - changed
Input schema / properties / rayon_km / descriptionPrevious value: -"Rayon autour du centre ; sans centre, toute la France. / Radius; without centre, all of France."New value: +"Search radius in km around commune or the coordinates (number, 1 to 300, default 60). Without a centre or departement, all of France." - changed
Input schema / properties / sexe / descriptionPrevious value: -"male ou femelle ; les animaux de sexe non indiqué restent compris. / male or femelle (female); animals of unstated sex are kept."New value: +"Sex: male or femelle (female). Animals of unstated sex are kept and flagged as not stated." - added
Output schema / properties / animaux / items / properties / criteres_demandesAdded value: +{ + "description": "For each criterion of the request (breed, colour, sex, age, gets-on-with), whether the record states it. Empty when no such criterion was asked.", + "items": { + "properties": { + "critere": { + "enum": [ + "race", + "couleur", + "sexe", + "age", + "ententes" + ], + "type": "string" + }, + "precise": { + "description": "true when the record states this criterion (and matches it); false when it does not say, so it is kept as a possible match.", + "type": "boolean" + } + }, + "required": [ + "critere", + "precise" + ], + "type": "object" + }, + "type": "array" +} - added
Output schema / properties / animaux / items / properties / mise_a_jour_leAdded value: +{ + "description": "When the association offering the animal last changed its listing (ISO date); null when unknown, and for Mission Museaux's own animals.", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / animaux / items / properties / publiee_leAdded value: +{ + "description": "When the record was first published (ISO date): on Mission Museaux, at the original platform for a reprise, or by the association offering the animal. null when unknown.", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / animaux / items / properties / sourceAdded value: +{ + "description": "Where the record comes from: mission_museaux (published on Mission Museaux), reprise (a listing relayed from another platform, not named; contact goes through the original listing) or association_partenaire (an animal offered by another French association or shelter, not registered on Mission Museaux, whose listing Mission Museaux relays).", + "enum": [ + "mission_museaux", + "reprise", + "association_partenaire" + ], + "type": "string" +} - added
Output schema / properties / animaux / items / properties / verifiee_leAdded value: +{ + "description": "When Mission Museaux last re-read the listing of the association offering the animal and found it still listed (ISO date); a freshness check, not a verification of the animal. null for Mission Museaux's own animals.", + "type": [ + "string", + "null" + ] +} - changed
Output schema / properties / animaux / items / requiredPrevious value: -[ - "id", - "url", - "nom", - "espece", - "race", - "age", - "sexe", - "lieu", - "departement", - "association", - "frais", - "photo", - "distance_km", - "date", - "reserve", - "pays_mentionnes" -]New value: +[ + "id", + "url", + "nom", + "espece", + "race", + "age", + "sexe", + "lieu", + "departement", + "association", + "frais", + "photo", + "distance_km", + "date", + "reserve", + "pays_mentionnes", + "publiee_le", + "mise_a_jour_le", + "verifiee_le", + "source", + "criteres_demandes" +] - changed
Output schema / properties / homonymes / anyOfPrevious value: -[ - { - "properties": { - "autres": { - "description": "Les autres, à demander avec leur département (« Saint-Denis (93) »). / The others, to ask for with their department.", - "items": { - "type": "string" - }, - "type": "array" - }, - "commune": { - "type": "string" - }, - "retenue": { - "description": "La commune qui a servi, la plus peuplée (« Saint-Denis (974) »). / The town used, the most populous.", - "type": "string" - } - }, - "required": [ - "commune", - "retenue", - "autres" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "autres": { + "description": "The others, to ask for with their department (“Saint-Denis (93)”).", + "items": { + "type": "string" + }, + "type": "array" + }, + "commune": { + "type": "string" + }, + "retenue": { + "description": "The town used, the most populous (“Saint-Denis (974)”).", + "type": "string" + } + }, + "required": [ + "commune", + "retenue", + "autres" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / homonymes / descriptionPrevious value: -"Quand plusieurs communes portent exactement le nom donné et qu'aucun département ne les départage ; null sinon. / When several towns have exactly the given name and no department tells them apart; null otherwise."New value: +"When several towns have exactly the given name and no department tells them apart; null otherwise." - added
Output schema / properties / lieu_non_couvertAdded value: +{ + "description": "Present when the given town is not a French town: without a requested department, no search took place; Mission Museaux covers France.", + "properties": { + "commune": { + "description": "The town as given.", + "type": "string" + }, + "message": { + "type": "string" + }, + "raison": { + "description": "hors_france: a place abroad (Madrid, London); introuvable: no town of that name.", + "enum": [ + "hors_france", + "introuvable" + ], + "type": "string" + } + }, + "required": [ + "commune", + "raison", + "message" + ], + "type": "object" +} - changed
Output schema / properties / plus_proche / anyOfPrevious value: -[ - { - "properties": { - "association": { - "type": "string" - }, - "departement": { - "description": "Le code du département où se trouve l'animal (« 01 »). / Code of the department where the animal is.", - "type": [ - "string", - "null" - ] - }, - "departement_nom": { - "description": "Le nom de ce département (« Ain »). / Name of that department.", - "type": [ - "string", - "null" - ] - }, - "departement_suffisant": { - "description": "Pour une recherche par départements : la valeur de departement qui comprend aussi cet animal (« Rhône, 01 »). / For a department search: the departement value that also includes this animal.", - "type": [ - "string", - "null" - ] - }, - "depuis": { - "description": "D'où se mesure la distance : le centre de la recherche, ou, pour une recherche par départements sans commune, une préfecture (« Lyon (préfecture, 69) »). / Where the distance is measured from: the search centre, or a prefecture for a department search without a town.", - "type": "string" - }, - "distance_km": { - "type": "number" - }, - "id": { - "type": "string" - }, - "lieu": { - "type": [ - "string", - "null" - ] - }, - "nom": { - "type": "string" - }, - "rayon_km_suffisant": { - "type": "number" - }, - "rayon_max_km": { - "type": "number" - }, - "total_exact": { - "type": "boolean" - }, - "total_rayon_max": { - "type": "number" - }, - "url": { - "type": "string" - } - }, - "required": [ - "id", - "url", - "nom", - "lieu", - "distance_km", - "rayon_km_suffisant", - "association", - "total_rayon_max", - "total_exact", - "rayon_max_km", - "depuis", - "departement", - "departement_nom", - "departement_suffisant" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "association": { + "type": "string" + }, + "departement": { + "description": "Code of the department where the animal is (“01”).", + "type": [ + "string", + "null" + ] + }, + "departement_nom": { + "description": "Name of that department (“Ain”).", + "type": [ + "string", + "null" + ] + }, + "departement_suffisant": { + "description": "For a department search: the departement value that also includes this animal (“Rhône, 01”).", + "type": [ + "string", + "null" + ] + }, + "depuis": { + "description": "Where the distance is measured from: the search centre, or a prefecture for a department search without a town (“Lyon (préfecture, 69)”).", + "type": "string" + }, + "distance_km": { + "type": "number" + }, + "id": { + "type": "string" + }, + "lieu": { + "type": [ + "string", + "null" + ] + }, + "mise_a_jour_le": { + "description": "When the association offering the animal last changed its listing (ISO date); null when unknown, and for Mission Museaux's own animals.", + "type": [ + "string", + "null" + ] + }, + "nom": { + "type": "string" + }, + "publiee_le": { + "description": "When the record was first published (ISO date): on Mission Museaux, at the original platform for a reprise, or by the association offering the animal. null when unknown.", + "type": [ + "string", + "null" + ] + }, + "rayon_km_suffisant": { + "type": "number" + }, + "rayon_max_km": { + "type": "number" + }, + "source": { + "description": "Where the record comes from: mission_museaux (published on Mission Museaux), reprise (a listing relayed from another platform, not named; contact goes through the original listing) or association_partenaire (an animal offered by another French association or shelter, not registered on Mission Museaux, whose listing Mission Museaux relays).", + "enum": [ + "mission_museaux", + "reprise", + "association_partenaire" + ], + "type": "string" + }, + "total_exact": { + "type": "boolean" + }, + "total_rayon_max": { + "type": "number" + }, + "url": { + "type": "string" + }, + "verifiee_le": { + "description": "When Mission Museaux last re-read the listing of the association offering the animal and found it still listed (ISO date); a freshness check, not a verification of the animal. null for Mission Museaux's own animals.", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "url", + "nom", + "lieu", + "distance_km", + "rayon_km_suffisant", + "association", + "publiee_le", + "mise_a_jour_le", + "verifiee_le", + "source", + "total_rayon_max", + "total_exact", + "rayon_max_km", + "depuis", + "departement", + "departement_nom", + "departement_suffisant" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / plus_proche / descriptionPrevious value: -"Dans une réponse vide, l'animal le plus proche qui répond aux mêmes critères, jusqu'à rayon_max_km du centre ou de la préfecture. / In an empty answer, the closest animal meeting the same criteria, up to rayon_max_km from the centre or the prefecture."New value: +"In an empty answer, the closest animal meeting the same criteria, up to rayon_max_km from the centre or the prefecture, with its dates and source."
- Changed
chercher_annonces35 fields changed- changed
Input schema / properties / commune / descriptionPrevious value: -"Commune française (nom ou code postal), par exemple « Nemours », « Chaumont 52 » (avec le département) ou « 77140 ». / French town (name or postcode), e.g. “Chaumont 52” with the department."New value: +"French town name or 5-digit postcode (string, 2 to 80 characters), e.g. \"Nemours\", \"77140\" or \"Chaumont 52\" (department number to tell namesakes apart). France only; a place abroad returns no result." - changed
Input schema / properties / couleur / descriptionPrevious value: -"Couleur de la robe, en français ou en anglais (« noir et blanc », « tabby », « black »), cherchée dans la couleur des annonces ; avec une race, une couleur non précisée reste comprise. / Coat colour in French or English, searched in the listings' colour; with a breed, an unspecified colour is kept."New value: +"Coat colour in French or English (string, 2 to 60 characters), e.g. \"black and white\" or \"tabby\". With a breed, listings whose colour is not stated are kept and flagged." - changed
Input schema / properties / decalage / descriptionPrevious value: -"Nombre d'annonces à passer, pour lire la suite d'une liste : 10 donne la deuxième page de 10. / Number of listings to skip, to read the next page."New value: +"Number of listings to skip, for paging (whole number, 0 to 500, default 0), e.g. 10 for the second page of 10." - added
Input schema / properties / espece / descriptionAdded value: +"Species: chat (cat), chien (dog), oiseau (bird) or autre (rabbit, ferret, tortoise…). cat, kitten, dog or puppy are accepted. Omit for all species." - changed
Input schema / properties / inclure_race_inconnue / descriptionPrevious value: -"Avec une race, donnée ou reconnue dans texte : un second bloc liste les animaux de même espèce dont la race n'est pas précisée (inconnue, européen pour un chat, croisé pour un chien), les plus proches d'abord. Vrai par défaut quand une race est connue. / With a breed: a second block lists same-species animals of unspecified breed, closest first; true by default when a breed is known."New value: +"With a breed (boolean, default true): also list, in a separate block, same-species animals whose breed is not stated, since found animals are often filed without one. false to leave them out." - changed
Input schema / properties / jours / descriptionPrevious value: -"Seulement les annonces des N derniers jours, comptés en jours entiers depuis minuit, heure de Paris. / Only listings from the last N calendar days, Paris time."New value: +"Only listings from the last N calendar days, Paris time (whole number, 1 to 365, default 60), e.g. 30." - changed
Input schema / properties / langue / descriptionPrevious value: -"Langue de la réponse : fr (par défaut) ou en. / Response language: fr (default) or en."New value: +"Response language: \"fr\" (French, default) or \"en\" (English). A request written in English is answered in English even without it." - changed
Input schema / properties / latitude / descriptionPrevious value: -"Latitude du centre de recherche, à la place de la commune. / Search centre latitude."New value: +"Latitude of the search centre in decimal degrees (number, -90 to 90), e.g. 48.267. Give it with longitude, instead of commune." - added
Input schema / properties / limite / descriptionAdded value: +"Number of listings to return (whole number, 1 to 25, default 10); a larger value is lowered to 25. Use decalage for the next page." - changed
Input schema / properties / longitude / descriptionPrevious value: -"Longitude du centre de recherche. / Search centre longitude."New value: +"Longitude of the search centre in decimal degrees (number, -180 to 180), e.g. 2.693. Give it with latitude, instead of commune." - changed
Input schema / properties / perdu_le / descriptionPrevious value: -"Date de la perte, AAAA-MM-JJ : seules restent les annonces dont l'événement (découverte, première observation) date de la veille ou d'après ; remplace jours. / Date the pet was lost, YYYY-MM-DD: only listings whose event dates from the day before or later; replaces jours."New value: +"Date the pet was lost (string, YYYY-MM-DD, not in the future), e.g. \"2026-10-06\": keeps listings whose event dates from the day before or later. Replaces jours." - changed
Input schema / properties / race / descriptionPrevious value: -"Race, en français ou en anglais (« labrador », « siamoise », « German Shepherd ») ; un nom partiel (« berger ») couvre les races de l'annuaire qui le contiennent et les races écrites qui contiennent ce mot ; un nom hors de l'annuaire, ou pour un oiseau ou un autre animal (« perruche »), est cherché tel qu'écrit dans la race des annonces, sous ses noms français et anglais pour un animal courant (« lapin » trouve « Rabbit »). / Breed in French or English; a partial name covers every breed that contains it, and written breeds containing the word; a name outside the directory, or for a bird or other animal, is searched as written, under its French and English names for a common animal (“rabbit” finds “Lapin”)."New value: +"Breed or kind of animal in French or English (string, 2 to 60 characters), e.g. \"labrador\", \"German Shepherd\" or \"rabbit\". A partial name such as \"berger\" covers every breed containing it; chercher_races lists recognised names." - changed
Input schema / properties / rayon_km / descriptionPrevious value: -"Rayon autour du centre. / Radius around the centre."New value: +"Search radius in km around commune or the coordinates (number, 1 to 100, default 25), e.g. 10 for a cat, 40 for a dog." - changed
Input schema / properties / sexe / descriptionPrevious value: -"male ou femelle ; les annonces de sexe inconnu restent comprises. / male or femelle (female); listings of unknown sex are kept."New value: +"Sex: male or femelle (female). Listings of unknown sex are kept and flagged as not stated." - changed
Input schema / properties / statut / descriptionPrevious value: -"perdu : perdus par leur famille ; trouve : trouvés et recueillis ; errant : vus en liberté ; trouve_ou_errant : ce que doit consulter qui a perdu son animal. / perdu: lost; trouve: found and taken in; errant: seen roaming; trouve_ou_errant: what someone who lost a pet should check."New value: +"Which listings: perdu (lost by their owners), trouve (found and taken in), errant (seen roaming), trouve_ou_errant (what an owner looking for a lost pet should check) or tous (all, default). Synonyms such as lost, missing, found or stray are accepted." - changed
Input schema / properties / texte / descriptionPrevious value: -"Mots ou phrase à retrouver dans l'annonce. La race y est reconnue (féminins, pluriels, « croisé » ou « type » compris), les couleurs françaises ou anglaises sont ramenées au vocabulaire des annonces, chienne, chatte ou femelle disent le sexe ; les autres mots (collier, nom, signe distinctif) sont cherchés dans l'annonce. La réponse dit comment la phrase a été comprise. / Words or a phrase: the breed is recognised, French or English colours are mapped to the listings' vocabulary, sex words are read, other words are searched in the listing; the answer says how it was understood."New value: +"Free words or a phrase in French or English (string, up to 120 characters), e.g. \"black lab mix red collar\". Breed, colour and sex are recognised; other words are searched in the listing text. The answer says how it was understood." - changed
Input schema / properties / tri / descriptionPrevious value: -"recent : les plus récentes d'abord (par défaut) ; proche : les plus proches du centre d'abord. / recent: most recent first (default); proche: closest to the centre first."New value: +"Sort order: recent (most recent first, default) or proche (closest to the centre first; needs commune or coordinates)." - changed
Output schema / properties / annonces / items / properties / couleur / descriptionPrevious value: -"Couleur de l'annonce, traduite dans la langue de la réponse quand elle est dans le vocabulaire des couleurs, sinon telle qu'écrite. / Listing colour, translated into the response language when it is in the colour vocabulary, otherwise as written."New value: +"Listing colour, translated into the response language when it is in the colour vocabulary, otherwise as written." - added
Output schema / properties / annonces / items / properties / criteres_demandesAdded value: +{ + "description": "For each criterion of the request (breed, colour, sex, age, gets-on-with), whether the record states it. Empty when no such criterion was asked.", + "items": { + "properties": { + "critere": { + "enum": [ + "race", + "couleur", + "sexe", + "age", + "ententes" + ], + "type": "string" + }, + "precise": { + "description": "true when the record states this criterion (and matches it); false when it does not say, so it is kept as a possible match.", + "type": "boolean" + } + }, + "required": [ + "critere", + "precise" + ], + "type": "object" + }, + "type": "array" +} - changed
Output schema / properties / annonces / items / properties / lieu / descriptionPrevious value: -"Lieu écrit, seulement quand la position n'est pas floutée. / Written place, only when the position is not blurred."New value: +"Written place, only when the position is not blurred." - added
Output schema / properties / annonces / items / properties / mise_a_jour_leAdded value: +{ + "description": "Latest news of the listing (ISO date). In search results: the latest located sighting that moved it, otherwise its publication (same as derniere_nouvelle). voir_annonce also counts its last sighting and status change, so it can be later there.", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / annonces / items / properties / publiee_leAdded value: +{ + "description": "When the record was first published (ISO date): on Mission Museaux, at the original platform for a reprise, or by the association offering the animal. null when unknown.", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / annonces / items / properties / sourceAdded value: +{ + "description": "Where the record comes from: mission_museaux (published on Mission Museaux), reprise (a listing relayed from another platform, not named; contact goes through the original listing) or association_partenaire (an animal offered by another French association or shelter, not registered on Mission Museaux, whose listing Mission Museaux relays).", + "enum": [ + "mission_museaux", + "reprise", + "association_partenaire" + ], + "type": "string" +} - changed
Output schema / properties / annonces / items / properties / statut / descriptionPrevious value: -"Statut dans la langue de la réponse. / Status in the response language."New value: +"Status in the response language." - changed
Output schema / properties / annonces / items / requiredPrevious value: -[ - "id", - "url", - "titre", - "statut", - "espece", - "race", - "page_race", - "couleur", - "sexe", - "commune", - "lieu", - "date_evenement", - "derniere_nouvelle", - "distance_km", - "signes_distinctifs", - "photo" -]New value: +[ + "id", + "url", + "titre", + "statut", + "espece", + "race", + "page_race", + "couleur", + "sexe", + "commune", + "lieu", + "date_evenement", + "derniere_nouvelle", + "distance_km", + "signes_distinctifs", + "photo", + "publiee_le", + "mise_a_jour_le", + "source", + "criteres_demandes" +] - changed
Output schema / properties / ecartee_par_sexe / anyOfPrevious value: -[ - { - "properties": { - "commune": { - "type": [ - "string", - "null" - ] - }, - "date_evenement": { - "type": "string" - }, - "distance_km": { - "type": [ - "number", - "null" - ] - }, - "id": { - "type": "string" - }, - "mot": { - "description": "Le mot du texte qui a dit le sexe (« chatte »). / The word that gave the sex.", - "type": [ - "string", - "null" - ] - }, - "sexe": { - "description": "Le sexe noté sur l'annonce. / The sex noted on the listing.", - "type": [ - "string", - "null" - ] - }, - "sexe_lu_dans": { - "description": "D'où vient le critère : un mot du texte, ou le paramètre sexe. / Where the criterion comes from.", - "enum": [ - "texte", - "parametre" - ], - "type": "string" - }, - "statut": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "id", - "url", - "commune", - "distance_km", - "statut", - "date_evenement", - "sexe", - "sexe_lu_dans", - "mot" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "commune": { + "type": [ + "string", + "null" + ] + }, + "date_evenement": { + "type": "string" + }, + "distance_km": { + "type": [ + "number", + "null" + ] + }, + "id": { + "type": "string" + }, + "mot": { + "description": "The word that gave the sex (“chatte”).", + "type": [ + "string", + "null" + ] + }, + "sexe": { + "description": "The sex noted on the listing.", + "type": [ + "string", + "null" + ] + }, + "sexe_lu_dans": { + "description": "Where the criterion comes from: a word of texte, or the sexe parameter.", + "enum": [ + "texte", + "parametre" + ], + "type": "string" + }, + "statut": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "commune", + "distance_km", + "statut", + "date_evenement", + "sexe", + "sexe_lu_dans", + "mot" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / ecartee_par_sexe / descriptionPrevious value: -"L'annonce que le seul critère de sexe écarte, la plus proche (la plus récente sans centre), que la réponse soit vide ou non ; ecartees_par_sexe dit combien il en écarte. / The closest listing left out by the sex criterion alone, whether or not the answer is empty; ecartees_par_sexe gives how many it leaves out."New value: +"The closest listing left out by the sex criterion alone (the most recent without a centre), whether or not the answer is empty; ecartees_par_sexe gives how many it leaves out." - changed
Output schema / properties / ecartees_par_sexe_rayon_km / descriptionPrevious value: -"Le rayon où ecartees_par_sexe est compté : rayon_km, ou le rayon maximal (100) quand une réponse vide s'est élargie ; null sans critère de sexe ou sans centre. Seules les annonces de la race cherchée y sont comptées, race_non_precisee compte les siennes. / The radius over which ecartees_par_sexe is counted: rayon_km, or the maximum radius (100) when an empty answer was widened; null without a sex criterion or a centre. Only listings of the breed searched for are counted there; race_non_precisee counts its own."New value: +"The radius over which ecartees_par_sexe is counted: rayon_km, or the maximum radius (100) when an empty answer was widened; null without a sex criterion or a centre. Only listings of the breed searched for are counted there; race_non_precisee counts its own." - changed
Output schema / properties / homonymes / anyOfPrevious value: -[ - { - "properties": { - "autres": { - "description": "Les autres, à demander avec leur département (« Saint-Denis (93) »). / The others, to ask for with their department.", - "items": { - "type": "string" - }, - "type": "array" - }, - "commune": { - "type": "string" - }, - "retenue": { - "description": "La commune qui a servi, la plus peuplée (« Saint-Denis (974) »). / The town used, the most populous.", - "type": "string" - } - }, - "required": [ - "commune", - "retenue", - "autres" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "autres": { + "description": "The others, to ask for with their department (“Saint-Denis (93)”).", + "items": { + "type": "string" + }, + "type": "array" + }, + "commune": { + "type": "string" + }, + "retenue": { + "description": "The town used, the most populous (“Saint-Denis (974)”).", + "type": "string" + } + }, + "required": [ + "commune", + "retenue", + "autres" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / homonymes / descriptionPrevious value: -"Quand plusieurs communes portent exactement le nom donné et qu'aucun département ne les départage ; null sinon. / When several towns have exactly the given name and no department tells them apart; null otherwise."New value: +"When several towns have exactly the given name and no department tells them apart; null otherwise." - added
Output schema / properties / lieu_non_couvertAdded value: +{ + "description": "Present when the given town is not a French town: without a requested department, no search took place; Mission Museaux covers France.", + "properties": { + "commune": { + "description": "The town as given.", + "type": "string" + }, + "message": { + "type": "string" + }, + "raison": { + "description": "hors_france: a place abroad (Madrid, London); introuvable: no town of that name.", + "enum": [ + "hors_france", + "introuvable" + ], + "type": "string" + } + }, + "required": [ + "commune", + "raison", + "message" + ], + "type": "object" +} - changed
Output schema / properties / plus_proche / anyOfPrevious value: -[ - { - "properties": { - "commune": { - "type": [ - "string", - "null" - ] - }, - "date_evenement": { - "type": "string" - }, - "distance_km": { - "type": "number" - }, - "id": { - "type": "string" - }, - "rayon_max_km": { - "type": "number" - }, - "statut": { - "type": "string" - }, - "total_exact": { - "type": "boolean" - }, - "total_rayon_max": { - "type": "number" - }, - "url": { - "type": "string" - } - }, - "required": [ - "id", - "url", - "commune", - "distance_km", - "statut", - "date_evenement", - "total_rayon_max", - "total_exact", - "rayon_max_km" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "commune": { + "type": [ + "string", + "null" + ] + }, + "date_evenement": { + "type": "string" + }, + "distance_km": { + "type": "number" + }, + "id": { + "type": "string" + }, + "mise_a_jour_le": { + "description": "Latest news of the listing (ISO date). In search results: the latest located sighting that moved it, otherwise its publication (same as derniere_nouvelle). voir_annonce also counts its last sighting and status change, so it can be later there.", + "type": [ + "string", + "null" + ] + }, + "publiee_le": { + "description": "When the record was first published (ISO date): on Mission Museaux, at the original platform for a reprise, or by the association offering the animal. null when unknown.", + "type": [ + "string", + "null" + ] + }, + "rayon_max_km": { + "type": "number" + }, + "source": { + "description": "Where the record comes from: mission_museaux (published on Mission Museaux), reprise (a listing relayed from another platform, not named; contact goes through the original listing) or association_partenaire (an animal offered by another French association or shelter, not registered on Mission Museaux, whose listing Mission Museaux relays).", + "enum": [ + "mission_museaux", + "reprise", + "association_partenaire" + ], + "type": "string" + }, + "statut": { + "type": "string" + }, + "total_exact": { + "type": "boolean" + }, + "total_rayon_max": { + "type": "number" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "commune", + "distance_km", + "statut", + "date_evenement", + "publiee_le", + "mise_a_jour_le", + "source", + "total_rayon_max", + "total_exact", + "rayon_max_km" + ], + "type": "object" + }, + { + "type": "null" + } +] - added
Output schema / properties / plus_proche / descriptionAdded value: +"In an empty answer, the closest listing meeting the same criteria, up to rayon_max_km from the centre, with its dates and source." - changed
Output schema / properties / race_non_precisee / anyOfPrevious value: -[ - { - "properties": { - "annonces": { - "items": { - "properties": { - "commune": { - "type": [ - "string", - "null" - ] - }, - "couleur": { - "description": "Couleur de l'annonce, traduite dans la langue de la réponse quand elle est dans le vocabulaire des couleurs, sinon telle qu'écrite. / Listing colour, translated into the response language when it is in the colour vocabulary, otherwise as written.", - "type": [ - "string", - "null" - ] - }, - "date_evenement": { - "type": "string" - }, - "derniere_nouvelle": { - "type": "string" - }, - "distance_km": { - "type": [ - "number", - "null" - ] - }, - "espece": { - "type": "string" - }, - "id": { - "type": "string" - }, - "lieu": { - "description": "Lieu écrit, seulement quand la position n'est pas floutée. / Written place, only when the position is not blurred.", - "type": [ - "string", - "null" - ] - }, - "page_race": { - "type": [ - "string", - "null" - ] - }, - "photo": { - "type": [ - "string", - "null" - ] - }, - "race": { - "type": [ - "string", - "null" - ] - }, - "sexe": { - "type": [ - "string", - "null" - ] - }, - "signes_distinctifs": { - "type": [ - "string", - "null" - ] - }, - "statut": { - "description": "Statut dans la langue de la réponse. / Status in the response language.", - "type": "string" - }, - "titre": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "id", - "url", - "titre", - "statut", - "espece", - "race", - "page_race", - "couleur", - "sexe", - "commune", - "lieu", - "date_evenement", - "derniere_nouvelle", - "distance_km", - "signes_distinctifs", - "photo" - ], - "type": "object" - }, - "type": "array" - }, - "ecartees_par_sexe": { - "description": "Les annonces de ce bloc que le seul critère de sexe écarte, dans le même rayon. / Listings of this block left out by the sex criterion alone, within the same radius.", - "type": "number" - }, - "total": { - "type": "number" - }, - "total_exact": { - "type": "boolean" - } - }, - "required": [ - "total", - "total_exact", - "annonces", - "ecartees_par_sexe" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "annonces": { + "items": { + "properties": { + "commune": { + "type": [ + "string", + "null" + ] + }, + "couleur": { + "description": "Listing colour, translated into the response language when it is in the colour vocabulary, otherwise as written.", + "type": [ + "string", + "null" + ] + }, + "criteres_demandes": { + "description": "For each criterion of the request (breed, colour, sex, age, gets-on-with), whether the record states it. Empty when no such criterion was asked.", + "items": { + "properties": { + "critere": { + "enum": [ + "race", + "couleur", + "sexe", + "age", + "ententes" + ], + "type": "string" + }, + "precise": { + "description": "true when the record states this criterion (and matches it); false when it does not say, so it is kept as a possible match.", + "type": "boolean" + } + }, + "required": [ + "critere", + "precise" + ], + "type": "object" + }, + "type": "array" + }, + "date_evenement": { + "type": "string" + }, + "derniere_nouvelle": { + "type": "string" + }, + "distance_km": { + "type": [ + "number", + "null" + ] + }, + "espece": { + "type": "string" + }, + "id": { + "type": "string" + }, + "lieu": { + "description": "Written place, only when the position is not blurred.", + "type": [ + "string", + "null" + ] + }, + "mise_a_jour_le": { + "description": "Latest news of the listing (ISO date). In search results: the latest located sighting that moved it, otherwise its publication (same as derniere_nouvelle). voir_annonce also counts its last sighting and status change, so it can be later there.", + "type": [ + "string", + "null" + ] + }, + "page_race": { + "type": [ + "string", + "null" + ] + }, + "photo": { + "type": [ + "string", + "null" + ] + }, + "publiee_le": { + "description": "When the record was first published (ISO date): on Mission Museaux, at the original platform for a reprise, or by the association offering the animal. null when unknown.", + "type": [ + "string", + "null" + ] + }, + "race": { + "type": [ + "string", + "null" + ] + }, + "sexe": { + "type": [ + "string", + "null" + ] + }, + "signes_distinctifs": { + "type": [ + "string", + "null" + ] + }, + "source": { + "description": "Where the record comes from: mission_museaux (published on Mission Museaux), reprise (a listing relayed from another platform, not named; contact goes through the original listing) or association_partenaire (an animal offered by another French association or shelter, not registered on Mission Museaux, whose listing Mission Museaux relays).", + "enum": [ + "mission_museaux", + "reprise", + "association_partenaire" + ], + "type": "string" + }, + "statut": { + "description": "Status in the response language.", + "type": "string" + }, + "titre": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "titre", + "statut", + "espece", + "race", + "page_race", + "couleur", + "sexe", + "commune", + "lieu", + "date_evenement", + "derniere_nouvelle", + "distance_km", + "signes_distinctifs", + "photo", + "publiee_le", + "mise_a_jour_le", + "source", + "criteres_demandes" + ], + "type": "object" + }, + "type": "array" + }, + "ecartees_par_sexe": { + "description": "Listings of this block left out by the sex criterion alone, within the same radius.", + "type": "number" + }, + "total": { + "type": "number" + }, + "total_exact": { + "type": "boolean" + } + }, + "required": [ + "total", + "total_exact", + "annonces", + "ecartees_par_sexe" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / recherche_comprise / anyOfPrevious value: -[ - { - "properties": { - "couleurs": { - "description": "Les couleurs exigées. / Required colours.", - "items": { - "type": "string" - }, - "type": "array" - }, - "couleurs_facultatives": { - "description": "Les couleurs qui classent sans écarter (« tigré » dans « roux tigré »). / Colours that rank without excluding (tabby in “ginger tabby”).", - "items": { - "type": "string" - }, - "type": "array" - }, - "espece": { - "type": [ - "string", - "null" - ] - }, - "mots": { - "items": { - "type": "string" - }, - "type": "array" - }, - "mots_ignores": { - "items": { - "type": "string" - }, - "type": "array" - }, - "noms_cherches": { - "description": "Pour un animal autre qu'un chien ou un chat (« lapin », « perruche »), ses noms français et anglais, tous cherchés dans la race des annonces (« Rabbit », « Parakeet ») ; vide sinon. / For an animal other than a dog or cat, its French and English names, all searched in the listings' breed; empty otherwise.", - "items": { - "type": "string" - }, - "type": "array" - }, - "race_ecrite": { - "description": "La race donnée, cherchée aussi telle qu'écrite (mot entier) dans la race des annonces : nom partiel, race hors de l'annuaire, oiseau ou autre animal. / The given breed, also searched as written (whole word) in the listings' breed.", - "type": [ - "string", - "null" - ] - }, - "races": { - "items": { - "properties": { - "nom": { - "type": "string" - }, - "page": { - "type": "string" - } - }, - "required": [ - "nom", - "page" - ], - "type": "object" - }, - "type": "array" - }, - "races_couvertes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "sexe": { - "anyOf": [ - { - "enum": [ - "male", - "femelle" - ], - "type": "string" - }, - { - "type": "null" - } - ] - }, - "texte": { - "type": "string" - } - }, - "required": [ - "texte", - "races", - "races_couvertes", - "race_ecrite", - "noms_cherches", - "espece", - "sexe", - "couleurs", - "couleurs_facultatives", - "mots", - "mots_ignores" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "couleurs": { + "description": "Required colours.", + "items": { + "type": "string" + }, + "type": "array" + }, + "couleurs_facultatives": { + "description": "Colours that rank without excluding (tabby in “ginger tabby”).", + "items": { + "type": "string" + }, + "type": "array" + }, + "espece": { + "type": [ + "string", + "null" + ] + }, + "mots": { + "items": { + "type": "string" + }, + "type": "array" + }, + "mots_ignores": { + "items": { + "type": "string" + }, + "type": "array" + }, + "noms_cherches": { + "description": "For an animal other than a dog or cat (“lapin”, “perruche”), its French and English names, all searched in the listings' breed (“Rabbit”, “Parakeet”); empty otherwise.", + "items": { + "type": "string" + }, + "type": "array" + }, + "race_ecrite": { + "description": "The given breed, also searched as written (whole word) in the listings' breed: partial name, breed outside the directory, bird or other animal.", + "type": [ + "string", + "null" + ] + }, + "races": { + "items": { + "properties": { + "nom": { + "type": "string" + }, + "page": { + "type": "string" + } + }, + "required": [ + "nom", + "page" + ], + "type": "object" + }, + "type": "array" + }, + "races_couvertes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sexe": { + "anyOf": [ + { + "enum": [ + "male", + "femelle" + ], + "type": "string" + }, + { + "type": "null" + } + ] + }, + "texte": { + "type": "string" + } + }, + "required": [ + "texte", + "races", + "races_couvertes", + "race_ecrite", + "noms_cherches", + "espece", + "sexe", + "couleurs", + "couleurs_facultatives", + "mots", + "mots_ignores" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Added
chercher_missions_benevolat - Changed
chercher_par_photo19 fields changed- changed
Input schema / properties / cible / descriptionPrevious value: -"trouves : parmi les animaux trouvés ou vus errants ; perdus : parmi les animaux perdus. / trouves: among found or stray animals; perdus: among lost animals."New value: +"Which listings to compare with: trouves (found or stray animals, default: for an owner who lost a pet), perdus (lost animals: for someone who found one) or tous (all). found and lost are accepted." - changed
Input schema / properties / commune / descriptionPrevious value: -"Commune française (nom ou code postal), par exemple « Nemours », « Chaumont 52 » (avec le département) ou « 77140 ». / French town (name or postcode), e.g. “Chaumont 52” with the department."New value: +"French town name or 5-digit postcode (string, 2 to 80 characters), e.g. \"Nemours\", \"77140\" or \"Chaumont 52\" (department number to tell namesakes apart). France only; a place abroad returns no result." - added
Input schema / properties / espece / descriptionAdded value: +"Species: chat (cat), chien (dog), oiseau (bird) or autre (other animal). cat or dog are accepted. Omit it and the species is inferred from the photo." - changed
Input schema / properties / langue / descriptionPrevious value: -"Langue de la réponse : fr (par défaut) ou en. / Response language: fr (default) or en."New value: +"Response language: \"fr\" (French, default) or \"en\" (English). A request written in English is answered in English even without it." - changed
Input schema / properties / latitude / descriptionPrevious value: -"Latitude du centre de recherche, à la place de la commune. / Search centre latitude."New value: +"Latitude of the search centre in decimal degrees (number, -90 to 90), e.g. 48.267. Give it with longitude, instead of commune." - changed
Input schema / properties / longitude / descriptionPrevious value: -"Longitude du centre de recherche. / Search centre longitude."New value: +"Longitude of the search centre in decimal degrees (number, -180 to 180), e.g. 2.693. Give it with latitude, instead of commune." - changed
Input schema / properties / photo_base64 / descriptionPrevious value: -"La photo en base64 (avec ou sans en-tête data:), 2,5 Mo au plus, à la place de photo_url. / The photo in base64, instead of photo_url."New value: +"The photo encoded in base64 (string, with or without a data: header, about 2.5 MB at most), instead of photo_url; an image received in the conversation goes here." - changed
Input schema / properties / photo_url / descriptionPrevious value: -"Adresse https d'une photo de l'animal (jpeg, png ou webp, 8 Mo au plus). / https address of a photo of the animal."New value: +"Public https address of the photo itself (string url; jpeg, png or webp, 8 MB at most), e.g. \"https://example.com/cat.jpg\". Give photo_url or photo_base64, not both." - changed
Input schema / properties / rayon_km / descriptionPrevious value: -"Rayon autour du centre ; sans centre ni rayon, toute la France. / Radius; without centre, all of France."New value: +"Search radius in km around commune or the coordinates (number, 1 to 500, default 100 with a centre). Without a centre, all of France is searched." - changed
Output schema / properties / annonces / items / properties / couleur / descriptionPrevious value: -"Couleur de l'annonce, traduite dans la langue de la réponse quand elle est dans le vocabulaire des couleurs, sinon telle qu'écrite. / Listing colour, translated into the response language when it is in the colour vocabulary, otherwise as written."New value: +"Listing colour, translated into the response language when it is in the colour vocabulary, otherwise as written." - added
Output schema / properties / annonces / items / properties / criteres_demandesAdded value: +{ + "description": "For each criterion of the request (breed, colour, sex, age, gets-on-with), whether the record states it. Empty when no such criterion was asked.", + "items": { + "properties": { + "critere": { + "enum": [ + "race", + "couleur", + "sexe", + "age", + "ententes" + ], + "type": "string" + }, + "precise": { + "description": "true when the record states this criterion (and matches it); false when it does not say, so it is kept as a possible match.", + "type": "boolean" + } + }, + "required": [ + "critere", + "precise" + ], + "type": "object" + }, + "type": "array" +} - changed
Output schema / properties / annonces / items / properties / lieu / descriptionPrevious value: -"Lieu écrit, seulement quand la position n'est pas floutée. / Written place, only when the position is not blurred."New value: +"Written place, only when the position is not blurred." - added
Output schema / properties / annonces / items / properties / mise_a_jour_leAdded value: +{ + "description": "Latest news of the listing (ISO date). In search results: the latest located sighting that moved it, otherwise its publication (same as derniere_nouvelle). voir_annonce also counts its last sighting and status change, so it can be later there.", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / annonces / items / properties / publiee_leAdded value: +{ + "description": "When the record was first published (ISO date): on Mission Museaux, at the original platform for a reprise, or by the association offering the animal. null when unknown.", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / annonces / items / properties / sourceAdded value: +{ + "description": "Where the record comes from: mission_museaux (published on Mission Museaux), reprise (a listing relayed from another platform, not named; contact goes through the original listing) or association_partenaire (an animal offered by another French association or shelter, not registered on Mission Museaux, whose listing Mission Museaux relays).", + "enum": [ + "mission_museaux", + "reprise", + "association_partenaire" + ], + "type": "string" +} - changed
Output schema / properties / annonces / items / properties / statut / descriptionPrevious value: -"Statut dans la langue de la réponse. / Status in the response language."New value: +"Status in the response language." - changed
Output schema / properties / annonces / items / requiredPrevious value: -[ - "id", - "url", - "titre", - "statut", - "espece", - "race", - "page_race", - "couleur", - "sexe", - "commune", - "lieu", - "date_evenement", - "derniere_nouvelle", - "distance_km", - "signes_distinctifs", - "photo", - "ressemblance", - "niveau" -]New value: +[ + "id", + "url", + "titre", + "statut", + "espece", + "race", + "page_race", + "couleur", + "sexe", + "commune", + "lieu", + "date_evenement", + "derniere_nouvelle", + "distance_km", + "signes_distinctifs", + "photo", + "publiee_le", + "mise_a_jour_le", + "source", + "criteres_demandes", + "ressemblance", + "niveau" +] - added
Output schema / properties / lieu_non_couvertAdded value: +{ + "description": "Present when the given town is not a French town: without a requested department, no search took place; Mission Museaux covers France.", + "properties": { + "commune": { + "description": "The town as given.", + "type": "string" + }, + "message": { + "type": "string" + }, + "raison": { + "description": "hors_france: a place abroad (Madrid, London); introuvable: no town of that name.", + "enum": [ + "hors_france", + "introuvable" + ], + "type": "string" + } + }, + "required": [ + "commune", + "raison", + "message" + ], + "type": "object" +} - changed
Output schema / properties / race_estimee / anyOfPrevious value: -[ - { - "properties": { - "espece": { - "description": "L'espèce estimée ou donnée, dans la langue de la réponse ; pour un oiseau ou un autre animal, races liste ses sortes (perruche ondulée, lapin…). / The estimated or given species, in the response language; for a bird or another animal, races lists its kinds (budgerigar, rabbit…).", - "type": "string" - }, - "famille": { - "anyOf": [ - { - "properties": { - "id": { - "type": "string" - }, - "nom": { - "description": "Le type dans la langue de la réponse (« chien de berger », « rongeur »). / The type in the response language (“herding dog”, “rodent”).", - "type": "string" - }, - "nom_en": { - "type": "string" - }, - "nom_fr": { - "type": "string" - }, - "part": { - "description": "Part cumulée des races, ou des sortes, de ce type parmi les trois en tête, en %. / Combined share of this type's breeds, or kinds, among the top three, in %.", - "type": "number" - } - }, - "required": [ - "id", - "nom", - "nom_fr", - "nom_en", - "part" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Le type de chien probable quand aucune race ne domine (verdict « incertain ») mais que les deux premières races, ses exemples, sont de ce type et que ses races parmi les trois en tête réunissent plus de la moitié de l'estimation ; pour un oiseau ou un autre animal, de même, le groupe de ses deux premières sortes (rongeur, perroquet, tortue…) ; null sinon, et toujours pour un chat. / The likely dog type when no breed dominates (verdict “incertain”) but the first two breeds, its examples, are of this type and its breeds among the top three gather more than half of the estimate; likewise, for a bird or another animal, the group of its first two kinds (rodent, parrot, tortoise…); null otherwise, and always for a cat." - }, - "races": { - "items": { - "properties": { - "id": { - "type": "string" - }, - "nom": { - "type": "string" - }, - "nom_en": { - "type": [ - "string", - "null" - ] - }, - "nom_fr": { - "type": "string" - }, - "page": { - "description": "La page de la race sur le site ; pour une sorte d'oiseau ou d'autre animal, qui n'en a pas, sa fiche Wikidata (pour un oiseau sauvage, les conseils de l'association). / The breed's page on the site; for a kind of bird or other animal, which has none, its Wikidata entry (for a wild bird, the association's advice).", - "type": "string" - }, - "part": { - "type": "number" - } - }, - "required": [ - "id", - "nom", - "nom_fr", - "nom_en", - "part", - "page" - ], - "type": "object" - }, - "type": "array" - }, - "verdict": { - "enum": [ - "probable", - "croise", - "incertain" - ], - "type": "string" - } - }, - "required": [ - "espece", - "verdict", - "races", - "famille" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "espece": { + "description": "The estimated or given species, in the response language; for a bird or another animal, races lists its kinds (budgerigar, rabbit…).", + "type": "string" + }, + "famille": { + "anyOf": [ + { + "properties": { + "id": { + "type": "string" + }, + "nom": { + "description": "The type in the response language (“herding dog”, “rodent”).", + "type": "string" + }, + "nom_en": { + "type": "string" + }, + "nom_fr": { + "type": "string" + }, + "part": { + "description": "Combined share of this type's breeds, or kinds, among the top three, in %.", + "type": "number" + } + }, + "required": [ + "id", + "nom", + "nom_fr", + "nom_en", + "part" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "The likely dog type when no breed dominates (verdict “incertain”) but the first two breeds, its examples, are of this type and its breeds among the top three gather more than half of the estimate; likewise, for a bird or another animal, the group of its first two kinds (rodent, parrot, tortoise…); null otherwise, and always for a cat." + }, + "races": { + "items": { + "properties": { + "id": { + "type": "string" + }, + "nom": { + "type": "string" + }, + "nom_en": { + "type": [ + "string", + "null" + ] + }, + "nom_fr": { + "type": "string" + }, + "page": { + "description": "The breed's page on the site; for a kind of bird or other animal, which has none, its Wikidata entry (for a wild bird, the association's advice).", + "type": "string" + }, + "part": { + "type": "number" + } + }, + "required": [ + "id", + "nom", + "nom_fr", + "nom_en", + "part", + "page" + ], + "type": "object" + }, + "type": "array" + }, + "verdict": { + "enum": [ + "probable", + "croise", + "incertain" + ], + "type": "string" + } + }, + "required": [ + "espece", + "verdict", + "races", + "famille" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Added
chercher_races - Removed
conseils - Added
obtenir_conseils - Removed
races - Changed
reconnaitre_race8 fields changed- changed
Input schema / properties / espece / descriptionPrevious value: -"Chat, chien, oiseau ou autre animal (lapin, cochon d'Inde, tortue, furet…). / Cat, dog, bird or other animal (rabbit, guinea pig, tortoise, ferret…)."New value: +"Species shown on the photo (required): chat (cat), chien (dog), oiseau (bird) or autre (rabbit, guinea pig, tortoise, ferret…). cat, dog or rabbit are accepted." - changed
Input schema / properties / langue / descriptionPrevious value: -"Langue de la réponse : fr (par défaut) ou en. / Response language: fr (default) or en."New value: +"Response language: \"fr\" (French, default) or \"en\" (English). A request written in English is answered in English even without it." - changed
Input schema / properties / photo_base64 / descriptionPrevious value: -"La photo en base64, à la place de photo_url. / The photo in base64, instead of photo_url."New value: +"The photo encoded in base64 (string, with or without a data: header, about 2.5 MB at most), instead of photo_url; an image received in the conversation goes here." - changed
Input schema / properties / photo_url / descriptionPrevious value: -"Adresse https d'une photo de l'animal. / https address of a photo of the animal."New value: +"Public https address of the photo itself (string url; jpeg, png or webp, 8 MB at most), e.g. \"https://example.com/dog.jpg\". Give photo_url or photo_base64, not both." - changed
Output schema / properties / espece / descriptionPrevious value: -"L'espèce estimée ou donnée, dans la langue de la réponse ; pour un oiseau ou un autre animal, races liste ses sortes (perruche ondulée, lapin…). / The estimated or given species, in the response language; for a bird or another animal, races lists its kinds (budgerigar, rabbit…)."New value: +"The estimated or given species, in the response language; for a bird or another animal, races lists its kinds (budgerigar, rabbit…)." - changed
Output schema / properties / famille / anyOfPrevious value: -[ - { - "properties": { - "id": { - "type": "string" - }, - "nom": { - "description": "Le type dans la langue de la réponse (« chien de berger », « rongeur »). / The type in the response language (“herding dog”, “rodent”).", - "type": "string" - }, - "nom_en": { - "type": "string" - }, - "nom_fr": { - "type": "string" - }, - "part": { - "description": "Part cumulée des races, ou des sortes, de ce type parmi les trois en tête, en %. / Combined share of this type's breeds, or kinds, among the top three, in %.", - "type": "number" - } - }, - "required": [ - "id", - "nom", - "nom_fr", - "nom_en", - "part" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "id": { + "type": "string" + }, + "nom": { + "description": "The type in the response language (“herding dog”, “rodent”).", + "type": "string" + }, + "nom_en": { + "type": "string" + }, + "nom_fr": { + "type": "string" + }, + "part": { + "description": "Combined share of this type's breeds, or kinds, among the top three, in %.", + "type": "number" + } + }, + "required": [ + "id", + "nom", + "nom_fr", + "nom_en", + "part" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / famille / descriptionPrevious value: -"Le type de chien probable quand aucune race ne domine (verdict « incertain ») mais que les deux premières races, ses exemples, sont de ce type et que ses races parmi les trois en tête réunissent plus de la moitié de l'estimation ; pour un oiseau ou un autre animal, de même, le groupe de ses deux premières sortes (rongeur, perroquet, tortue…) ; null sinon, et toujours pour un chat. / The likely dog type when no breed dominates (verdict “incertain”) but the first two breeds, its examples, are of this type and its breeds among the top three gather more than half of the estimate; likewise, for a bird or another animal, the group of its first two kinds (rodent, parrot, tortoise…); null otherwise, and always for a cat."New value: +"The likely dog type when no breed dominates (verdict “incertain”) but the first two breeds, its examples, are of this type and its breeds among the top three gather more than half of the estimate; likewise, for a bird or another animal, the group of its first two kinds (rodent, parrot, tortoise…); null otherwise, and always for a cat." - changed
Output schema / properties / races / items / properties / page / descriptionPrevious value: -"La page de la race sur le site ; pour une sorte d'oiseau ou d'autre animal, qui n'en a pas, sa fiche Wikidata (pour un oiseau sauvage, les conseils de l'association). / The breed's page on the site; for a kind of bird or other animal, which has none, its Wikidata entry (for a wild bird, the association's advice)."New value: +"The breed's page on the site; for a kind of bird or other animal, which has none, its Wikidata entry (for a wild bird, the association's advice)."
- Changed
voir_annonce11 fields changed- changed
Input schema / properties / annonce / descriptionPrevious value: -"Identifiant de l'annonce, ou son adresse https://missionmuseaux.fr/fiches/… ; ou un animal à l'adoption renvoyé par chercher_adoptions (son id, ou son adresse /adoption/…). / Listing id or address, or an animal for adoption returned by chercher_adoptions (its id or address)."New value: +"Listing or adoptable animal to read (string): the id or url returned by chercher_annonces, chercher_par_photo or chercher_adoptions, e.g. \"3f2b9c1e-5d4a-4b8e-9c7f-1a2b3c4d5e6f\" or \"https://missionmuseaux.fr/fiches/<id>\"." - changed
Input schema / properties / langue / descriptionPrevious value: -"Langue de la réponse : fr (par défaut) ou en. / Response language: fr (default) or en."New value: +"Response language: \"fr\" (French, default) or \"en\" (English). A request written in English is answered in English even without it." - changed
Output schema / properties / couleur / descriptionPrevious value: -"Couleur de l'annonce, traduite dans la langue de la réponse quand elle est dans le vocabulaire des couleurs, sinon telle qu'écrite. / Listing colour, translated into the response language when it is in the colour vocabulary, otherwise as written."New value: +"Listing colour, translated into the response language when it is in the colour vocabulary, otherwise as written." - added
Output schema / properties / criteres_demandesAdded value: +{ + "description": "For each criterion of the request (breed, colour, sex, age, gets-on-with), whether the record states it. Empty when no such criterion was asked.", + "items": { + "properties": { + "critere": { + "enum": [ + "race", + "couleur", + "sexe", + "age", + "ententes" + ], + "type": "string" + }, + "precise": { + "description": "true when the record states this criterion (and matches it); false when it does not say, so it is kept as a possible match.", + "type": "boolean" + } + }, + "required": [ + "critere", + "precise" + ], + "type": "object" + }, + "type": "array" +} - changed
Output schema / properties / description_auteur / descriptionPrevious value: -"« Mission Museaux » quand le texte de l'annonce est un résumé rédigé par Mission Museaux d'après l'annonce d'origine (reformulation, pas une citation) ; null quand c'est le texte de l'annonce, cité. / “Mission Museaux” when the listing text is a summary written by Mission Museaux from the original listing (a rewording, not a quotation); null when it is the listing's own text, quoted."New value: +"“Mission Museaux” when the listing text is a summary written by Mission Museaux from the original listing (a rewording, not a quotation); null when it is the listing's own text, quoted." - added
Output schema / properties / mise_a_jour_leAdded value: +{ + "description": "Listing: the latest of its last sighting, last status change and derniere_nouvelle, so it can be later than in search results. Animal offered by another association: when that association last changed its listing, null when unknown. ISO date.", + "type": [ + "string", + "null" + ] +} - changed
Output schema / properties / presentation / descriptionPrevious value: -"Reformulation rédigée par Mission Museaux. / Rewording written by Mission Museaux."New value: +"Rewording written by Mission Museaux." - added
Output schema / properties / publiee_leAdded value: +{ + "description": "When the record was first published (ISO date): on Mission Museaux, at the original platform for a reprise, or by the association offering the animal. null when unknown.", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / sourceAdded value: +{ + "description": "Where the record comes from: mission_museaux (published on Mission Museaux), reprise (a listing relayed from another platform, not named; contact goes through the original listing) or association_partenaire (an animal offered by another French association or shelter, not registered on Mission Museaux, whose listing Mission Museaux relays).", + "enum": [ + "mission_museaux", + "reprise", + "association_partenaire" + ], + "type": "string" +} - changed
Output schema / properties / statut / descriptionPrevious value: -"Statut dans la langue de la réponse. / Status in the response language."New value: +"Status in the response language." - added
Output schema / properties / verifiee_leAdded value: +{ + "description": "When Mission Museaux last re-read the listing of the association offering the animal and found it still listed (ISO date); a freshness check, not a verification of the animal. null for Mission Museaux's own animals.", + "type": [ + "string", + "null" + ] +}
2 tool updates
- Changed
chercher_par_photo2 fields changed- changed
Input schema / properties / espece / enumPrevious value: -[ - "chat", - "chien" -]New value: +[ + "chat", + "chien", + "oiseau", + "autre" +] - changed
Output schema / properties / race_estimee / anyOfPrevious value: -[ - { - "properties": { - "famille": { - "anyOf": [ - { - "properties": { - "id": { - "type": "string" - }, - "nom": { - "description": "Le type dans la langue de la réponse (« chien de berger »). / The type in the response language (“herding dog”).", - "type": "string" - }, - "nom_en": { - "type": "string" - }, - "nom_fr": { - "type": "string" - }, - "part": { - "description": "Part cumulée des races de ce type parmi les trois en tête, en %. / Combined share of this type's breeds among the top three, in %.", - "type": "number" - } - }, - "required": [ - "id", - "nom", - "nom_fr", - "nom_en", - "part" - ], - "type": "object" - }, - { - "type": "null" - } - ], - "description": "Le type de chien probable quand aucune race ne domine (verdict « incertain ») mais que les deux premières races, ses exemples, sont de ce type et que ses races parmi les trois en tête réunissent plus de la moitié de l'estimation ; null sinon, et toujours pour un chat. / The likely dog type when no breed dominates (verdict “incertain”) but the first two breeds, its examples, are of this type and its breeds among the top three gather more than half of the estimate; null otherwise, and always for a cat." - }, - "races": { - "items": { - "properties": { - "id": { - "type": "string" - }, - "nom": { - "type": "string" - }, - "nom_en": { - "type": [ - "string", - "null" - ] - }, - "nom_fr": { - "type": "string" - }, - "page": { - "type": "string" - }, - "part": { - "type": "number" - } - }, - "required": [ - "id", - "nom", - "nom_fr", - "nom_en", - "part", - "page" - ], - "type": "object" - }, - "type": "array" - }, - "verdict": { - "enum": [ - "probable", - "croise", - "incertain" - ], - "type": "string" - } - }, - "required": [ - "verdict", - "races", - "famille" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "espece": { + "description": "L'espèce estimée ou donnée, dans la langue de la réponse ; pour un oiseau ou un autre animal, races liste ses sortes (perruche ondulée, lapin…). / The estimated or given species, in the response language; for a bird or another animal, races lists its kinds (budgerigar, rabbit…).", + "type": "string" + }, + "famille": { + "anyOf": [ + { + "properties": { + "id": { + "type": "string" + }, + "nom": { + "description": "Le type dans la langue de la réponse (« chien de berger », « rongeur »). / The type in the response language (“herding dog”, “rodent”).", + "type": "string" + }, + "nom_en": { + "type": "string" + }, + "nom_fr": { + "type": "string" + }, + "part": { + "description": "Part cumulée des races, ou des sortes, de ce type parmi les trois en tête, en %. / Combined share of this type's breeds, or kinds, among the top three, in %.", + "type": "number" + } + }, + "required": [ + "id", + "nom", + "nom_fr", + "nom_en", + "part" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Le type de chien probable quand aucune race ne domine (verdict « incertain ») mais que les deux premières races, ses exemples, sont de ce type et que ses races parmi les trois en tête réunissent plus de la moitié de l'estimation ; pour un oiseau ou un autre animal, de même, le groupe de ses deux premières sortes (rongeur, perroquet, tortue…) ; null sinon, et toujours pour un chat. / The likely dog type when no breed dominates (verdict “incertain”) but the first two breeds, its examples, are of this type and its breeds among the top three gather more than half of the estimate; likewise, for a bird or another animal, the group of its first two kinds (rodent, parrot, tortoise…); null otherwise, and always for a cat." + }, + "races": { + "items": { + "properties": { + "id": { + "type": "string" + }, + "nom": { + "type": "string" + }, + "nom_en": { + "type": [ + "string", + "null" + ] + }, + "nom_fr": { + "type": "string" + }, + "page": { + "description": "La page de la race sur le site ; pour une sorte d'oiseau ou d'autre animal, qui n'en a pas, sa fiche Wikidata (pour un oiseau sauvage, les conseils de l'association). / The breed's page on the site; for a kind of bird or other animal, which has none, its Wikidata entry (for a wild bird, the association's advice).", + "type": "string" + }, + "part": { + "type": "number" + } + }, + "required": [ + "id", + "nom", + "nom_fr", + "nom_en", + "part", + "page" + ], + "type": "object" + }, + "type": "array" + }, + "verdict": { + "enum": [ + "probable", + "croise", + "incertain" + ], + "type": "string" + } + }, + "required": [ + "espece", + "verdict", + "races", + "famille" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
reconnaitre_race7 fields changed- changed
Input schema / properties / espece / descriptionPrevious value: -"Chat ou chien. / Cat or dog."New value: +"Chat, chien, oiseau ou autre animal (lapin, cochon d'Inde, tortue, furet…). / Cat, dog, bird or other animal (rabbit, guinea pig, tortoise, ferret…)." - changed
Input schema / properties / espece / enumPrevious value: -[ - "chat", - "chien" -]New value: +[ + "chat", + "chien", + "oiseau", + "autre" +] - added
Output schema / properties / especeAdded value: +{ + "description": "L'espèce estimée ou donnée, dans la langue de la réponse ; pour un oiseau ou un autre animal, races liste ses sortes (perruche ondulée, lapin…). / The estimated or given species, in the response language; for a bird or another animal, races lists its kinds (budgerigar, rabbit…).", + "type": "string" +} - changed
Output schema / properties / famille / anyOfPrevious value: -[ - { - "properties": { - "id": { - "type": "string" - }, - "nom": { - "description": "Le type dans la langue de la réponse (« chien de berger »). / The type in the response language (“herding dog”).", - "type": "string" - }, - "nom_en": { - "type": "string" - }, - "nom_fr": { - "type": "string" - }, - "part": { - "description": "Part cumulée des races de ce type parmi les trois en tête, en %. / Combined share of this type's breeds among the top three, in %.", - "type": "number" - } - }, - "required": [ - "id", - "nom", - "nom_fr", - "nom_en", - "part" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "id": { + "type": "string" + }, + "nom": { + "description": "Le type dans la langue de la réponse (« chien de berger », « rongeur »). / The type in the response language (“herding dog”, “rodent”).", + "type": "string" + }, + "nom_en": { + "type": "string" + }, + "nom_fr": { + "type": "string" + }, + "part": { + "description": "Part cumulée des races, ou des sortes, de ce type parmi les trois en tête, en %. / Combined share of this type's breeds, or kinds, among the top three, in %.", + "type": "number" + } + }, + "required": [ + "id", + "nom", + "nom_fr", + "nom_en", + "part" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / famille / descriptionPrevious value: -"Le type de chien probable quand aucune race ne domine (verdict « incertain ») mais que les deux premières races, ses exemples, sont de ce type et que ses races parmi les trois en tête réunissent plus de la moitié de l'estimation ; null sinon, et toujours pour un chat. / The likely dog type when no breed dominates (verdict “incertain”) but the first two breeds, its examples, are of this type and its breeds among the top three gather more than half of the estimate; null otherwise, and always for a cat."New value: +"Le type de chien probable quand aucune race ne domine (verdict « incertain ») mais que les deux premières races, ses exemples, sont de ce type et que ses races parmi les trois en tête réunissent plus de la moitié de l'estimation ; pour un oiseau ou un autre animal, de même, le groupe de ses deux premières sortes (rongeur, perroquet, tortue…) ; null sinon, et toujours pour un chat. / The likely dog type when no breed dominates (verdict “incertain”) but the first two breeds, its examples, are of this type and its breeds among the top three gather more than half of the estimate; likewise, for a bird or another animal, the group of its first two kinds (rodent, parrot, tortoise…); null otherwise, and always for a cat." - added
Output schema / properties / races / items / properties / page / descriptionAdded value: +"La page de la race sur le site ; pour une sorte d'oiseau ou d'autre animal, qui n'en a pas, sa fiche Wikidata (pour un oiseau sauvage, les conseils de l'association). / The breed's page on the site; for a kind of bird or other animal, which has none, its Wikidata entry (for a wild bird, the association's advice)." - changed
Output schema / requiredPrevious value: -[ - "verdict", - "races", - "famille", - "note", - "source" -]New value: +[ + "espece", + "verdict", + "races", + "famille", + "note", + "source" +]
3 tool updates
- Changed
chercher_annonces2 fields changed- changed
Output schema / properties / annonces / items / properties / couleur / descriptionPrevious value: -"Couleur telle qu'écrite dans l'annonce. / Colour as written in the listing."New value: +"Couleur de l'annonce, traduite dans la langue de la réponse quand elle est dans le vocabulaire des couleurs, sinon telle qu'écrite. / Listing colour, translated into the response language when it is in the colour vocabulary, otherwise as written." - changed
Output schema / properties / race_non_precisee / anyOfPrevious value: -[ - { - "properties": { - "annonces": { - "items": { - "properties": { - "commune": { - "type": [ - "string", - "null" - ] - }, - "couleur": { - "description": "Couleur telle qu'écrite dans l'annonce. / Colour as written in the listing.", - "type": [ - "string", - "null" - ] - }, - "date_evenement": { - "type": "string" - }, - "derniere_nouvelle": { - "type": "string" - }, - "distance_km": { - "type": [ - "number", - "null" - ] - }, - "espece": { - "type": "string" - }, - "id": { - "type": "string" - }, - "lieu": { - "description": "Lieu écrit, seulement quand la position n'est pas floutée. / Written place, only when the position is not blurred.", - "type": [ - "string", - "null" - ] - }, - "page_race": { - "type": [ - "string", - "null" - ] - }, - "photo": { - "type": [ - "string", - "null" - ] - }, - "race": { - "type": [ - "string", - "null" - ] - }, - "sexe": { - "type": [ - "string", - "null" - ] - }, - "signes_distinctifs": { - "type": [ - "string", - "null" - ] - }, - "statut": { - "description": "Statut dans la langue de la réponse. / Status in the response language.", - "type": "string" - }, - "titre": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "id", - "url", - "titre", - "statut", - "espece", - "race", - "page_race", - "couleur", - "sexe", - "commune", - "lieu", - "date_evenement", - "derniere_nouvelle", - "distance_km", - "signes_distinctifs", - "photo" - ], - "type": "object" - }, - "type": "array" - }, - "ecartees_par_sexe": { - "description": "Les annonces de ce bloc que le seul critère de sexe écarte, dans le même rayon. / Listings of this block left out by the sex criterion alone, within the same radius.", - "type": "number" - }, - "total": { - "type": "number" - }, - "total_exact": { - "type": "boolean" - } - }, - "required": [ - "total", - "total_exact", - "annonces", - "ecartees_par_sexe" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "annonces": { + "items": { + "properties": { + "commune": { + "type": [ + "string", + "null" + ] + }, + "couleur": { + "description": "Couleur de l'annonce, traduite dans la langue de la réponse quand elle est dans le vocabulaire des couleurs, sinon telle qu'écrite. / Listing colour, translated into the response language when it is in the colour vocabulary, otherwise as written.", + "type": [ + "string", + "null" + ] + }, + "date_evenement": { + "type": "string" + }, + "derniere_nouvelle": { + "type": "string" + }, + "distance_km": { + "type": [ + "number", + "null" + ] + }, + "espece": { + "type": "string" + }, + "id": { + "type": "string" + }, + "lieu": { + "description": "Lieu écrit, seulement quand la position n'est pas floutée. / Written place, only when the position is not blurred.", + "type": [ + "string", + "null" + ] + }, + "page_race": { + "type": [ + "string", + "null" + ] + }, + "photo": { + "type": [ + "string", + "null" + ] + }, + "race": { + "type": [ + "string", + "null" + ] + }, + "sexe": { + "type": [ + "string", + "null" + ] + }, + "signes_distinctifs": { + "type": [ + "string", + "null" + ] + }, + "statut": { + "description": "Statut dans la langue de la réponse. / Status in the response language.", + "type": "string" + }, + "titre": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "titre", + "statut", + "espece", + "race", + "page_race", + "couleur", + "sexe", + "commune", + "lieu", + "date_evenement", + "derniere_nouvelle", + "distance_km", + "signes_distinctifs", + "photo" + ], + "type": "object" + }, + "type": "array" + }, + "ecartees_par_sexe": { + "description": "Les annonces de ce bloc que le seul critère de sexe écarte, dans le même rayon. / Listings of this block left out by the sex criterion alone, within the same radius.", + "type": "number" + }, + "total": { + "type": "number" + }, + "total_exact": { + "type": "boolean" + } + }, + "required": [ + "total", + "total_exact", + "annonces", + "ecartees_par_sexe" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
chercher_par_photo1 field changed- changed
Output schema / properties / annonces / items / properties / couleur / descriptionPrevious value: -"Couleur telle qu'écrite dans l'annonce. / Colour as written in the listing."New value: +"Couleur de l'annonce, traduite dans la langue de la réponse quand elle est dans le vocabulaire des couleurs, sinon telle qu'écrite. / Listing colour, translated into the response language when it is in the colour vocabulary, otherwise as written."
- Changed
voir_annonce1 field changed- changed
Output schema / properties / couleur / descriptionPrevious value: -"Couleur telle qu'écrite dans l'annonce. / Colour as written in the listing."New value: +"Couleur de l'annonce, traduite dans la langue de la réponse quand elle est dans le vocabulaire des couleurs, sinon telle qu'écrite. / Listing colour, translated into the response language when it is in the colour vocabulary, otherwise as written."
2 tool updates
- Changed
chercher_par_photo1 field changed- changed
Output schema / properties / race_estimee / anyOfPrevious value: -[ - { - "properties": { - "races": { - "items": { - "properties": { - "id": { - "type": "string" - }, - "nom": { - "type": "string" - }, - "nom_en": { - "type": [ - "string", - "null" - ] - }, - "nom_fr": { - "type": "string" - }, - "page": { - "type": "string" - }, - "part": { - "type": "number" - } - }, - "required": [ - "id", - "nom", - "nom_fr", - "nom_en", - "part", - "page" - ], - "type": "object" - }, - "type": "array" - }, - "verdict": { - "enum": [ - "probable", - "croise", - "incertain" - ], - "type": "string" - } - }, - "required": [ - "verdict", - "races" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "properties": { + "famille": { + "anyOf": [ + { + "properties": { + "id": { + "type": "string" + }, + "nom": { + "description": "Le type dans la langue de la réponse (« chien de berger »). / The type in the response language (“herding dog”).", + "type": "string" + }, + "nom_en": { + "type": "string" + }, + "nom_fr": { + "type": "string" + }, + "part": { + "description": "Part cumulée des races de ce type parmi les trois en tête, en %. / Combined share of this type's breeds among the top three, in %.", + "type": "number" + } + }, + "required": [ + "id", + "nom", + "nom_fr", + "nom_en", + "part" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Le type de chien probable quand aucune race ne domine (verdict « incertain ») mais que les deux premières races, ses exemples, sont de ce type et que ses races parmi les trois en tête réunissent plus de la moitié de l'estimation ; null sinon, et toujours pour un chat. / The likely dog type when no breed dominates (verdict “incertain”) but the first two breeds, its examples, are of this type and its breeds among the top three gather more than half of the estimate; null otherwise, and always for a cat." + }, + "races": { + "items": { + "properties": { + "id": { + "type": "string" + }, + "nom": { + "type": "string" + }, + "nom_en": { + "type": [ + "string", + "null" + ] + }, + "nom_fr": { + "type": "string" + }, + "page": { + "type": "string" + }, + "part": { + "type": "number" + } + }, + "required": [ + "id", + "nom", + "nom_fr", + "nom_en", + "part", + "page" + ], + "type": "object" + }, + "type": "array" + }, + "verdict": { + "enum": [ + "probable", + "croise", + "incertain" + ], + "type": "string" + } + }, + "required": [ + "verdict", + "races", + "famille" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
reconnaitre_race2 fields changed- added
Output schema / properties / familleAdded value: +{ + "anyOf": [ + { + "properties": { + "id": { + "type": "string" + }, + "nom": { + "description": "Le type dans la langue de la réponse (« chien de berger »). / The type in the response language (“herding dog”).", + "type": "string" + }, + "nom_en": { + "type": "string" + }, + "nom_fr": { + "type": "string" + }, + "part": { + "description": "Part cumulée des races de ce type parmi les trois en tête, en %. / Combined share of this type's breeds among the top three, in %.", + "type": "number" + } + }, + "required": [ + "id", + "nom", + "nom_fr", + "nom_en", + "part" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Le type de chien probable quand aucune race ne domine (verdict « incertain ») mais que les deux premières races, ses exemples, sont de ce type et que ses races parmi les trois en tête réunissent plus de la moitié de l'estimation ; null sinon, et toujours pour un chat. / The likely dog type when no breed dominates (verdict “incertain”) but the first two breeds, its examples, are of this type and its breeds among the top three gather more than half of the estimate; null otherwise, and always for a cat." +} - changed
Output schema / requiredPrevious value: -[ - "verdict", - "races", - "note", - "source" -]New value: +[ + "verdict", + "races", + "famille", + "note", + "source" +]
7 tool updates
- Changed
chercher_adoptions9 fields changed- added
Input schema / properties / age_max_moisAdded value: +{ + "description": "Âge maximal en mois, compris (11 pour moins d'un an, 23 pour moins de 2 ans). / Maximum age in months, inclusive (11 for under one year, 23 for under two).", + "maximum": 300, + "minimum": 0, + "type": "integer" +} - added
Input schema / properties / age_min_moisAdded value: +{ + "description": "Âge minimal en mois, compris (96 pour 8 ans ou plus), d'après l'âge écrit par l'association : « 2 ans » compte 24 mois. Un animal d'âge non indiqué est écarté. / Minimum age in months, inclusive (96 for 8 years or more), from the age the association wrote; animals of unstated age are left out.", + "maximum": 300, + "minimum": 0, + "type": "integer" +} - changed
Input schema / properties / commune / descriptionPrevious value: -"Commune française (nom ou code postal), par exemple « Nemours » ou « 77140 ». / French town (name or postcode)."New value: +"Commune française (nom ou code postal), par exemple « Nemours », « Chaumont 52 » (avec le département) ou « 77140 ». / French town (name or postcode), e.g. “Chaumont 52” with the department." - added
Input schema / properties / decalageAdded value: +{ + "default": 0, + "description": "Nombre d'animaux à passer, pour lire la suite d'une liste : 10 donne la deuxième page de 10. / Number of animals to skip, to read the next page.", + "maximum": 500, + "minimum": 0, + "type": "integer" +} - added
Input schema / properties / departementAdded value: +{ + "description": "Département ou région : code (« 77 », « 2A », « 971 ») ou nom (« Seine-et-Marne », « Bretagne », « Île-de-France »), plusieurs séparés par des virgules. Remplace le rayon ; une commune ou des coordonnées données avec lui servent à classer par distance. / Department or region: code or name, several separated by commas. Replaces the radius; a commune or coordinates given with it sort by distance.", + "maxLength": 120, + "minLength": 1, + "type": "string" +} - added
Input schema / properties / ententesAdded value: +{ + "description": "S'entend avec : chats, chiens, enfants, premier_animal (convient à qui n'a jamais eu d'animal). Seuls restent les animaux dont la fiche le dit ; la réponse dit pour combien l'information manque. / Gets on with: chats (cats), chiens (dogs), enfants (children), premier_animal (suits a first-time owner); only animals whose listing says so are kept, and the answer says how many lack the information.", + "items": { + "enum": [ + "chats", + "chiens", + "enfants", + "premier_animal" + ], + "type": "string" + }, + "maxItems": 4, + "minItems": 1, + "type": "array" +} - added
Input schema / properties / raceAdded value: +{ + "description": "Race, en français ou en anglais (« labrador », « berger australien », « Maine coon ») ; un nom partiel (« lévrier ») couvre les races de l'annuaire qui le contiennent. / Breed in French or English; a partial name covers every breed that contains it.", + "maxLength": 60, + "minLength": 2, + "type": "string" +} - added
Input schema / properties / sexeAdded value: +{ + "description": "male ou femelle ; les animaux de sexe non indiqué restent compris. / male or femelle (female); animals of unstated sex are kept.", + "enum": [ + "male", + "femelle" + ], + "type": "string" +} - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "animaux": { + "items": { + "properties": { + "age": { + "type": [ + "string", + "null" + ] + }, + "association": { + "type": "string" + }, + "date": { + "type": [ + "string", + "null" + ] + }, + "departement": { + "type": [ + "string", + "null" + ] + }, + "distance_km": { + "type": [ + "number", + "null" + ] + }, + "espece": { + "type": "string" + }, + "frais": { + "type": [ + "number", + "null" + ] + }, + "id": { + "type": "string" + }, + "lieu": { + "type": [ + "string", + "null" + ] + }, + "nom": { + "type": "string" + }, + "pays_mentionnes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "photo": { + "type": [ + "string", + "null" + ] + }, + "race": { + "type": [ + "string", + "null" + ] + }, + "reserve": { + "type": "boolean" + }, + "sexe": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "nom", + "espece", + "race", + "age", + "sexe", + "lieu", + "departement", + "association", + "frais", + "photo", + "distance_km", + "date", + "reserve", + "pays_mentionnes" + ], + "type": "object" + }, + "type": "array" + }, + "centre": { + "type": [ + "string", + "null" + ] + }, + "criteres": { + "type": [ + "string", + "null" + ] + }, + "decalage": { + "type": "number" + }, + "departements": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "homonymes": { + "anyOf": [ + { + "properties": { + "autres": { + "description": "Les autres, à demander avec leur département (« Saint-Denis (93) »). / The others, to ask for with their department.", + "items": { + "type": "string" + }, + "type": "array" + }, + "commune": { + "type": "string" + }, + "retenue": { + "description": "La commune qui a servi, la plus peuplée (« Saint-Denis (974) »). / The town used, the most populous.", + "type": "string" + } + }, + "required": [ + "commune", + "retenue", + "autres" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Quand plusieurs communes portent exactement le nom donné et qu'aucun département ne les départage ; null sinon. / When several towns have exactly the given name and no department tells them apart; null otherwise." + }, + "plus_proche": { + "anyOf": [ + { + "properties": { + "association": { + "type": "string" + }, + "departement": { + "description": "Le code du département où se trouve l'animal (« 01 »). / Code of the department where the animal is.", + "type": [ + "string", + "null" + ] + }, + "departement_nom": { + "description": "Le nom de ce département (« Ain »). / Name of that department.", + "type": [ + "string", + "null" + ] + }, + "departement_suffisant": { + "description": "Pour une recherche par départements : la valeur de departement qui comprend aussi cet animal (« Rhône, 01 »). / For a department search: the departement value that also includes this animal.", + "type": [ + "string", + "null" + ] + }, + "depuis": { + "description": "D'où se mesure la distance : le centre de la recherche, ou, pour une recherche par départements sans commune, une préfecture (« Lyon (préfecture, 69) »). / Where the distance is measured from: the search centre, or a prefecture for a department search without a town.", + "type": "string" + }, + "distance_km": { + "type": "number" + }, + "id": { + "type": "string" + }, + "lieu": { + "type": [ + "string", + "null" + ] + }, + "nom": { + "type": "string" + }, + "rayon_km_suffisant": { + "type": "number" + }, + "rayon_max_km": { + "type": "number" + }, + "total_exact": { + "type": "boolean" + }, + "total_rayon_max": { + "type": "number" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "nom", + "lieu", + "distance_km", + "rayon_km_suffisant", + "association", + "total_rayon_max", + "total_exact", + "rayon_max_km", + "depuis", + "departement", + "departement_nom", + "departement_suffisant" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Dans une réponse vide, l'animal le plus proche qui répond aux mêmes critères, jusqu'à rayon_max_km du centre ou de la préfecture. / In an empty answer, the closest animal meeting the same criteria, up to rayon_max_km from the centre or the prefecture." + }, + "rappel": { + "type": "string" + }, + "rayon_km": { + "type": [ + "number", + "null" + ] + }, + "repartition": { + "anyOf": [ + { + "items": { + "properties": { + "association": { + "type": "string" + }, + "commune": { + "type": [ + "string", + "null" + ] + }, + "nombre": { + "type": "number" + } + }, + "required": [ + "association", + "nombre", + "commune" + ], + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "total": { + "type": "number" + }, + "total_exact": { + "type": "boolean" + } + }, + "required": [ + "total", + "total_exact", + "centre", + "homonymes", + "rayon_km", + "departements", + "decalage", + "criteres", + "repartition", + "animaux", + "plus_proche", + "rappel" + ], + "type": "object" +}
- Changed
chercher_annonces11 fields changed- changed
Input schema / properties / commune / descriptionPrevious value: -"Commune française (nom ou code postal), par exemple « Nemours » ou « 77140 ». / French town (name or postcode)."New value: +"Commune française (nom ou code postal), par exemple « Nemours », « Chaumont 52 » (avec le département) ou « 77140 ». / French town (name or postcode), e.g. “Chaumont 52” with the department." - added
Input schema / properties / couleurAdded value: +{ + "description": "Couleur de la robe, en français ou en anglais (« noir et blanc », « tabby », « black »), cherchée dans la couleur des annonces ; avec une race, une couleur non précisée reste comprise. / Coat colour in French or English, searched in the listings' colour; with a breed, an unspecified colour is kept.", + "maxLength": 60, + "minLength": 2, + "type": "string" +} - added
Input schema / properties / decalageAdded value: +{ + "default": 0, + "description": "Nombre d'annonces à passer, pour lire la suite d'une liste : 10 donne la deuxième page de 10. / Number of listings to skip, to read the next page.", + "maximum": 500, + "minimum": 0, + "type": "integer" +} - added
Input schema / properties / inclure_race_inconnueAdded value: +{ + "description": "Avec une race, donnée ou reconnue dans texte : un second bloc liste les animaux de même espèce dont la race n'est pas précisée (inconnue, européen pour un chat, croisé pour un chien), les plus proches d'abord. Vrai par défaut quand une race est connue. / With a breed: a second block lists same-species animals of unspecified breed, closest first; true by default when a breed is known.", + "type": "boolean" +} - changed
Input schema / properties / jours / descriptionPrevious value: -"Seulement les annonces des N derniers jours. / Only listings from the last N days."New value: +"Seulement les annonces des N derniers jours, comptés en jours entiers depuis minuit, heure de Paris. / Only listings from the last N calendar days, Paris time." - added
Input schema / properties / perdu_leAdded value: +{ + "description": "Date de la perte, AAAA-MM-JJ : seules restent les annonces dont l'événement (découverte, première observation) date de la veille ou d'après ; remplace jours. / Date the pet was lost, YYYY-MM-DD: only listings whose event dates from the day before or later; replaces jours.", + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" +} - added
Input schema / properties / raceAdded value: +{ + "description": "Race, en français ou en anglais (« labrador », « siamoise », « German Shepherd ») ; un nom partiel (« berger ») couvre les races de l'annuaire qui le contiennent et les races écrites qui contiennent ce mot ; un nom hors de l'annuaire, ou pour un oiseau ou un autre animal (« perruche »), est cherché tel qu'écrit dans la race des annonces, sous ses noms français et anglais pour un animal courant (« lapin » trouve « Rabbit »). / Breed in French or English; a partial name covers every breed that contains it, and written breeds containing the word; a name outside the directory, or for a bird or other animal, is searched as written, under its French and English names for a common animal (“rabbit” finds “Lapin”).", + "maxLength": 60, + "minLength": 2, + "type": "string" +} - added
Input schema / properties / sexeAdded value: +{ + "description": "male ou femelle ; les annonces de sexe inconnu restent comprises. / male or femelle (female); listings of unknown sex are kept.", + "enum": [ + "male", + "femelle" + ], + "type": "string" +} - changed
Input schema / properties / texte / descriptionPrevious value: -"Mots à retrouver dans l'annonce : couleur, race, signe distinctif, collier, nom. / Words to find in the listing."New value: +"Mots ou phrase à retrouver dans l'annonce. La race y est reconnue (féminins, pluriels, « croisé » ou « type » compris), les couleurs françaises ou anglaises sont ramenées au vocabulaire des annonces, chienne, chatte ou femelle disent le sexe ; les autres mots (collier, nom, signe distinctif) sont cherchés dans l'annonce. La réponse dit comment la phrase a été comprise. / Words or a phrase: the breed is recognised, French or English colours are mapped to the listings' vocabulary, sex words are read, other words are searched in the listing; the answer says how it was understood." - added
Input schema / properties / triAdded value: +{ + "default": "recent", + "description": "recent : les plus récentes d'abord (par défaut) ; proche : les plus proches du centre d'abord. / recent: most recent first (default); proche: closest to the centre first.", + "enum": [ + "recent", + "proche" + ], + "type": "string" +} - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "annonces": { + "items": { + "properties": { + "commune": { + "type": [ + "string", + "null" + ] + }, + "couleur": { + "description": "Couleur telle qu'écrite dans l'annonce. / Colour as written in the listing.", + "type": [ + "string", + "null" + ] + }, + "date_evenement": { + "type": "string" + }, + "derniere_nouvelle": { + "type": "string" + }, + "distance_km": { + "type": [ + "number", + "null" + ] + }, + "espece": { + "type": "string" + }, + "id": { + "type": "string" + }, + "lieu": { + "description": "Lieu écrit, seulement quand la position n'est pas floutée. / Written place, only when the position is not blurred.", + "type": [ + "string", + "null" + ] + }, + "page_race": { + "type": [ + "string", + "null" + ] + }, + "photo": { + "type": [ + "string", + "null" + ] + }, + "race": { + "type": [ + "string", + "null" + ] + }, + "sexe": { + "type": [ + "string", + "null" + ] + }, + "signes_distinctifs": { + "type": [ + "string", + "null" + ] + }, + "statut": { + "description": "Statut dans la langue de la réponse. / Status in the response language.", + "type": "string" + }, + "titre": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "titre", + "statut", + "espece", + "race", + "page_race", + "couleur", + "sexe", + "commune", + "lieu", + "date_evenement", + "derniere_nouvelle", + "distance_km", + "signes_distinctifs", + "photo" + ], + "type": "object" + }, + "type": "array" + }, + "centre": { + "type": [ + "string", + "null" + ] + }, + "decalage": { + "type": "number" + }, + "ecartee_par_sexe": { + "anyOf": [ + { + "properties": { + "commune": { + "type": [ + "string", + "null" + ] + }, + "date_evenement": { + "type": "string" + }, + "distance_km": { + "type": [ + "number", + "null" + ] + }, + "id": { + "type": "string" + }, + "mot": { + "description": "Le mot du texte qui a dit le sexe (« chatte »). / The word that gave the sex.", + "type": [ + "string", + "null" + ] + }, + "sexe": { + "description": "Le sexe noté sur l'annonce. / The sex noted on the listing.", + "type": [ + "string", + "null" + ] + }, + "sexe_lu_dans": { + "description": "D'où vient le critère : un mot du texte, ou le paramètre sexe. / Where the criterion comes from.", + "enum": [ + "texte", + "parametre" + ], + "type": "string" + }, + "statut": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "commune", + "distance_km", + "statut", + "date_evenement", + "sexe", + "sexe_lu_dans", + "mot" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "L'annonce que le seul critère de sexe écarte, la plus proche (la plus récente sans centre), que la réponse soit vide ou non ; ecartees_par_sexe dit combien il en écarte. / The closest listing left out by the sex criterion alone, whether or not the answer is empty; ecartees_par_sexe gives how many it leaves out." + }, + "ecartees_par_sexe": { + "type": "number" + }, + "ecartees_par_sexe_rayon_km": { + "description": "Le rayon où ecartees_par_sexe est compté : rayon_km, ou le rayon maximal (100) quand une réponse vide s'est élargie ; null sans critère de sexe ou sans centre. Seules les annonces de la race cherchée y sont comptées, race_non_precisee compte les siennes. / The radius over which ecartees_par_sexe is counted: rayon_km, or the maximum radius (100) when an empty answer was widened; null without a sex criterion or a centre. Only listings of the breed searched for are counted there; race_non_precisee counts its own.", + "type": [ + "number", + "null" + ] + }, + "homonymes": { + "anyOf": [ + { + "properties": { + "autres": { + "description": "Les autres, à demander avec leur département (« Saint-Denis (93) »). / The others, to ask for with their department.", + "items": { + "type": "string" + }, + "type": "array" + }, + "commune": { + "type": "string" + }, + "retenue": { + "description": "La commune qui a servi, la plus peuplée (« Saint-Denis (974) »). / The town used, the most populous.", + "type": "string" + } + }, + "required": [ + "commune", + "retenue", + "autres" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Quand plusieurs communes portent exactement le nom donné et qu'aucun département ne les départage ; null sinon. / When several towns have exactly the given name and no department tells them apart; null otherwise." + }, + "plus_proche": { + "anyOf": [ + { + "properties": { + "commune": { + "type": [ + "string", + "null" + ] + }, + "date_evenement": { + "type": "string" + }, + "distance_km": { + "type": "number" + }, + "id": { + "type": "string" + }, + "rayon_max_km": { + "type": "number" + }, + "statut": { + "type": "string" + }, + "total_exact": { + "type": "boolean" + }, + "total_rayon_max": { + "type": "number" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "commune", + "distance_km", + "statut", + "date_evenement", + "total_rayon_max", + "total_exact", + "rayon_max_km" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "race_non_precisee": { + "anyOf": [ + { + "properties": { + "annonces": { + "items": { + "properties": { + "commune": { + "type": [ + "string", + "null" + ] + }, + "couleur": { + "description": "Couleur telle qu'écrite dans l'annonce. / Colour as written in the listing.", + "type": [ + "string", + "null" + ] + }, + "date_evenement": { + "type": "string" + }, + "derniere_nouvelle": { + "type": "string" + }, + "distance_km": { + "type": [ + "number", + "null" + ] + }, + "espece": { + "type": "string" + }, + "id": { + "type": "string" + }, + "lieu": { + "description": "Lieu écrit, seulement quand la position n'est pas floutée. / Written place, only when the position is not blurred.", + "type": [ + "string", + "null" + ] + }, + "page_race": { + "type": [ + "string", + "null" + ] + }, + "photo": { + "type": [ + "string", + "null" + ] + }, + "race": { + "type": [ + "string", + "null" + ] + }, + "sexe": { + "type": [ + "string", + "null" + ] + }, + "signes_distinctifs": { + "type": [ + "string", + "null" + ] + }, + "statut": { + "description": "Statut dans la langue de la réponse. / Status in the response language.", + "type": "string" + }, + "titre": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "titre", + "statut", + "espece", + "race", + "page_race", + "couleur", + "sexe", + "commune", + "lieu", + "date_evenement", + "derniere_nouvelle", + "distance_km", + "signes_distinctifs", + "photo" + ], + "type": "object" + }, + "type": "array" + }, + "ecartees_par_sexe": { + "description": "Les annonces de ce bloc que le seul critère de sexe écarte, dans le même rayon. / Listings of this block left out by the sex criterion alone, within the same radius.", + "type": "number" + }, + "total": { + "type": "number" + }, + "total_exact": { + "type": "boolean" + } + }, + "required": [ + "total", + "total_exact", + "annonces", + "ecartees_par_sexe" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "rayon_km": { + "type": [ + "number", + "null" + ] + }, + "recherche_comprise": { + "anyOf": [ + { + "properties": { + "couleurs": { + "description": "Les couleurs exigées. / Required colours.", + "items": { + "type": "string" + }, + "type": "array" + }, + "couleurs_facultatives": { + "description": "Les couleurs qui classent sans écarter (« tigré » dans « roux tigré »). / Colours that rank without excluding (tabby in “ginger tabby”).", + "items": { + "type": "string" + }, + "type": "array" + }, + "espece": { + "type": [ + "string", + "null" + ] + }, + "mots": { + "items": { + "type": "string" + }, + "type": "array" + }, + "mots_ignores": { + "items": { + "type": "string" + }, + "type": "array" + }, + "noms_cherches": { + "description": "Pour un animal autre qu'un chien ou un chat (« lapin », « perruche »), ses noms français et anglais, tous cherchés dans la race des annonces (« Rabbit », « Parakeet ») ; vide sinon. / For an animal other than a dog or cat, its French and English names, all searched in the listings' breed; empty otherwise.", + "items": { + "type": "string" + }, + "type": "array" + }, + "race_ecrite": { + "description": "La race donnée, cherchée aussi telle qu'écrite (mot entier) dans la race des annonces : nom partiel, race hors de l'annuaire, oiseau ou autre animal. / The given breed, also searched as written (whole word) in the listings' breed.", + "type": [ + "string", + "null" + ] + }, + "races": { + "items": { + "properties": { + "nom": { + "type": "string" + }, + "page": { + "type": "string" + } + }, + "required": [ + "nom", + "page" + ], + "type": "object" + }, + "type": "array" + }, + "races_couvertes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "sexe": { + "anyOf": [ + { + "enum": [ + "male", + "femelle" + ], + "type": "string" + }, + { + "type": "null" + } + ] + }, + "texte": { + "type": "string" + } + }, + "required": [ + "texte", + "races", + "races_couvertes", + "race_ecrite", + "noms_cherches", + "espece", + "sexe", + "couleurs", + "couleurs_facultatives", + "mots", + "mots_ignores" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "total": { + "type": "number" + }, + "total_exact": { + "type": "boolean" + }, + "tri": { + "enum": [ + "recent", + "proche" + ], + "type": "string" + } + }, + "required": [ + "total", + "total_exact", + "centre", + "homonymes", + "rayon_km", + "annonces", + "tri", + "decalage", + "recherche_comprise", + "plus_proche", + "ecartees_par_sexe", + "ecartees_par_sexe_rayon_km", + "ecartee_par_sexe", + "race_non_precisee" + ], + "type": "object" +}
- Changed
chercher_par_photo2 fields changed- changed
Input schema / properties / commune / descriptionPrevious value: -"Commune française (nom ou code postal), par exemple « Nemours » ou « 77140 ». / French town (name or postcode)."New value: +"Commune française (nom ou code postal), par exemple « Nemours », « Chaumont 52 » (avec le département) ou « 77140 ». / French town (name or postcode), e.g. “Chaumont 52” with the department." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "annonces": { + "items": { + "properties": { + "commune": { + "type": [ + "string", + "null" + ] + }, + "couleur": { + "description": "Couleur telle qu'écrite dans l'annonce. / Colour as written in the listing.", + "type": [ + "string", + "null" + ] + }, + "date_evenement": { + "type": "string" + }, + "derniere_nouvelle": { + "type": "string" + }, + "distance_km": { + "type": [ + "number", + "null" + ] + }, + "espece": { + "type": "string" + }, + "id": { + "type": "string" + }, + "lieu": { + "description": "Lieu écrit, seulement quand la position n'est pas floutée. / Written place, only when the position is not blurred.", + "type": [ + "string", + "null" + ] + }, + "niveau": { + "type": "string" + }, + "page_race": { + "type": [ + "string", + "null" + ] + }, + "photo": { + "type": [ + "string", + "null" + ] + }, + "race": { + "type": [ + "string", + "null" + ] + }, + "ressemblance": { + "type": "number" + }, + "sexe": { + "type": [ + "string", + "null" + ] + }, + "signes_distinctifs": { + "type": [ + "string", + "null" + ] + }, + "statut": { + "description": "Statut dans la langue de la réponse. / Status in the response language.", + "type": "string" + }, + "titre": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "titre", + "statut", + "espece", + "race", + "page_race", + "couleur", + "sexe", + "commune", + "lieu", + "date_evenement", + "derniere_nouvelle", + "distance_km", + "signes_distinctifs", + "photo", + "ressemblance", + "niveau" + ], + "type": "object" + }, + "type": "array" + }, + "centre": { + "type": [ + "string", + "null" + ] + }, + "conseil": { + "type": "string" + }, + "race_estimee": { + "anyOf": [ + { + "properties": { + "races": { + "items": { + "properties": { + "id": { + "type": "string" + }, + "nom": { + "type": "string" + }, + "nom_en": { + "type": [ + "string", + "null" + ] + }, + "nom_fr": { + "type": "string" + }, + "page": { + "type": "string" + }, + "part": { + "type": "number" + } + }, + "required": [ + "id", + "nom", + "nom_fr", + "nom_en", + "part", + "page" + ], + "type": "object" + }, + "type": "array" + }, + "verdict": { + "enum": [ + "probable", + "croise", + "incertain" + ], + "type": "string" + } + }, + "required": [ + "verdict", + "races" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "rayon_km": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "race_estimee", + "centre", + "rayon_km", + "annonces", + "conseil" + ], + "type": "object" +}
- Changed
conseils1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "etapes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "faq": { + "items": { + "properties": { + "question": { + "type": "string" + }, + "reponse": { + "type": "string" + } + }, + "required": [ + "question", + "reponse" + ], + "type": "object" + }, + "type": "array" + }, + "liens": { + "items": { + "properties": { + "label": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "label", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "premieres_heures": { + "items": { + "type": "string" + }, + "type": "array" + }, + "resume": { + "type": "string" + }, + "situation": { + "type": "string" + }, + "titre": { + "type": "string" + } + }, + "required": [ + "situation", + "titre", + "etapes", + "liens" + ], + "type": "object" +}
- Changed
races1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "races": { + "items": { + "properties": { + "a_l_adoption": { + "type": "number" + }, + "annonces_en_cours": { + "properties": { + "perdus": { + "type": "number" + }, + "trouves_ou_vus": { + "type": "number" + } + }, + "required": [ + "perdus", + "trouves_ou_vus" + ], + "type": "object" + }, + "autres_noms": { + "items": { + "type": "string" + }, + "type": "array" + }, + "espece": { + "type": "string" + }, + "nom": { + "type": "string" + }, + "nom_en": { + "type": [ + "string", + "null" + ] + }, + "nom_fr": { + "type": "string" + }, + "origine": { + "items": { + "type": "string" + }, + "type": "array" + }, + "page": { + "type": "string" + }, + "standard_fci": { + "type": [ + "number", + "null" + ] + }, + "wikidata": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "nom", + "nom_fr", + "nom_en", + "autres_noms", + "espece", + "standard_fci", + "origine", + "annonces_en_cours", + "a_l_adoption", + "page", + "wikidata" + ], + "type": "object" + }, + "type": "array" + }, + "source": { + "properties": { + "donnees": { + "type": "string" + }, + "nom": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "nom", + "url", + "donnees" + ], + "type": "object" + } + }, + "required": [ + "races", + "source" + ], + "type": "object" +}
- Changed
reconnaitre_race1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "note": { + "type": "string" + }, + "races": { + "items": { + "properties": { + "id": { + "type": "string" + }, + "nom": { + "type": "string" + }, + "nom_en": { + "type": [ + "string", + "null" + ] + }, + "nom_fr": { + "type": "string" + }, + "page": { + "type": "string" + }, + "part": { + "type": "number" + } + }, + "required": [ + "id", + "nom", + "nom_fr", + "nom_en", + "part", + "page" + ], + "type": "object" + }, + "type": "array" + }, + "source": { + "properties": { + "donnees": { + "type": "string" + }, + "nom": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "nom", + "url", + "donnees" + ], + "type": "object" + }, + "verdict": { + "enum": [ + "probable", + "croise", + "incertain" + ], + "type": "string" + } + }, + "required": [ + "verdict", + "races", + "note", + "source" + ], + "type": "object" +}
- Changed
voir_annonce2 fields changed- changed
Input schema / properties / annonce / descriptionPrevious value: -"Identifiant de l'annonce, ou son adresse https://missionmuseaux.fr/fiches/… / Listing id or address."New value: +"Identifiant de l'annonce, ou son adresse https://missionmuseaux.fr/fiches/… ; ou un animal à l'adoption renvoyé par chercher_adoptions (son id, ou son adresse /adoption/…). / Listing id or address, or an animal for adoption returned by chercher_adoptions (its id or address)." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "age": { + "type": [ + "string", + "null" + ] + }, + "association": { + "type": "string" + }, + "association_verifiee": { + "type": "boolean" + }, + "commune": { + "type": [ + "string", + "null" + ] + }, + "couleur": { + "description": "Couleur telle qu'écrite dans l'annonce. / Colour as written in the listing.", + "type": [ + "string", + "null" + ] + }, + "date": { + "type": [ + "string", + "null" + ] + }, + "date_evenement": { + "type": "string" + }, + "departement": { + "type": [ + "string", + "null" + ] + }, + "derniere_nouvelle": { + "type": "string" + }, + "derniere_observation": { + "type": [ + "string", + "null" + ] + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "description_auteur": { + "description": "« Mission Museaux » quand le texte de l'annonce est un résumé rédigé par Mission Museaux d'après l'annonce d'origine (reformulation, pas une citation) ; null quand c'est le texte de l'annonce, cité. / “Mission Museaux” when the listing text is a summary written by Mission Museaux from the original listing (a rewording, not a quotation); null when it is the listing's own text, quoted.", + "type": [ + "string", + "null" + ] + }, + "distance_km": { + "type": [ + "number", + "null" + ] + }, + "ententes": { + "additionalProperties": { + "type": [ + "boolean", + "null" + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "espece": { + "type": "string" + }, + "frais": { + "type": [ + "number", + "null" + ] + }, + "id": { + "type": "string" + }, + "lieu": { + "type": [ + "string", + "null" + ] + }, + "nom": { + "type": "string" + }, + "observations": { + "type": "number" + }, + "page_race": { + "type": [ + "string", + "null" + ] + }, + "pays_mentionnes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "photo": { + "type": [ + "string", + "null" + ] + }, + "photos": { + "items": { + "type": "string" + }, + "type": "array" + }, + "presentation": { + "description": "Reformulation rédigée par Mission Museaux. / Rewording written by Mission Museaux.", + "type": [ + "string", + "null" + ] + }, + "presentation_auteur": { + "type": [ + "string", + "null" + ] + }, + "race": { + "type": [ + "string", + "null" + ] + }, + "reserve": { + "type": "boolean" + }, + "sante": { + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "sexe": { + "type": [ + "string", + "null" + ] + }, + "signes_distinctifs": { + "type": [ + "string", + "null" + ] + }, + "statut": { + "description": "Statut dans la langue de la réponse. / Status in the response language.", + "type": "string" + }, + "taille": { + "type": [ + "string", + "null" + ] + }, + "titre": { + "type": "string" + }, + "traits": { + "items": { + "type": "string" + }, + "type": "array" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "espece", + "race", + "sexe", + "lieu", + "photo", + "distance_km" + ], + "type": "object" +}
7 tool updates
- First observed
chercher_adoptions - First observed
chercher_annonces - First observed
chercher_par_photo - First observed
conseils - First observed
races - First observed
reconnaitre_race - First observed
voir_annonce
Related MCP Connectors
Guides, housing, jobs, events and communities for foreigners living in France, in 6 languages.
Cães e gatos para adoção no Brasil, de ONGs e protetores. Busque por cidade, porte, idade e saúde.
Real cat photos, diaries, profiles, age and food reference calculators, and breeds.
Paw to paw. Shelter pets, one question away. Ask in plain words, in any of ten languages ("Use Petnecto to find me a calm older dog near Seattle that is good with cats") and get real adoptable pets near the place you name, with photos, ages, sizes, what each rescue says about them, and exactly how to reach the rescue. Listings come from open public data that shelters and governments publish (Taiwan's national adoption listings, King County WA and Montgomery County MD in the US, Zaragoza and Vienna in Europe), credited in every answer. Adoption always happens through the rescue: Petnecto takes no payments, applications or personal details, and needs no account.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables users to find and contact building tradespeople in France, and lets independent tradespeople create free profiles.Apache 2.0
- FlicenseNot gradedqualityFmaintenanceAsk Valérie about French property prices, recent transactions (22M+ DVF records 2020–2025), and internet coverage at any address. Free tier + €5/month subscription.-
- AlicenseNot gradedqualityCmaintenanceAccess 17M+ geocoded French property transactions (DVF), 22M+ DPE energy ratings, and 20M+ building records via MCP or REST API. Search transactions, market stats, comparables, price trends, rental yield, flip detection, and more.MIT
- FlicenseNot gradedqualityFmaintenanceFrench real estate data platform for AI agents. Identifies property owners likely to sell and tracks behavioral signals on active listings. Coverage: metropolitan France.-
Glama MCP Gateway
Add one secure layer between your agents and this server.