honestdog
Server Details
Vetted German dog-breeder directory, S-E breed health grades and tests, adoptable shelter dogs
- Status
- Healthy
- Uptime
- 100.0% over 72 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool targets a distinct resource or action: about_honestdog provides service info, get_breed_health_profile retrieves detailed health data for a specific breed, search_breeds discovers breeds, search_breeders finds breeders, and search_shelter_dogs finds shelter dogs. Although search_breeds and get_breed_health_profile both involve breed health, their purposes (discovery vs. detailed profile) are clearly separated in the descriptions.
All tool names use snake_case and follow a verb-based pattern (search_*, get_*), with about_honestdog as a minor exception since 'about' is not a verb. The overall convention is predictable and readable.
Five tools is well-scoped for a read-only directory service covering breed health, breeder search, shelter adoption, breed discovery, and service information. Each tool earns its place without redundancy.
The surface covers the core discovery workflows: finding breeds, getting breed health profiles, searching breeders, searching shelter dogs, and learning about HonestDog. Minor gaps exist, such as dedicated detail retrieval for individual breeders or shelter dogs, but search results provide enough information for agents to proceed.
Available Tools
5 toolsabout_honestdogAbout HonestDog (platform, data provenance, attribution)ARead-onlyIdempotentInspect
What HonestDog is, where its breeder, shelter and breed-health data comes from, and how results link back to honestdog.de. Use when the user asks what HonestDog is or whether its data can be trusted. / Was HonestDog ist, woher die Daten stammen und wie Ergebnisse auf honestdog.de verweisen.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 the safety profile is fully covered by structured data. The description adds meaningful framing that this is an explanatory/attribution response rather than live lookup results, but says nothing about response shape (e.g., whether text, when to surface it to the user) beyond that. The modest added context justifies a 3.
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?
The English sentence is front-loaded: purpose, then provenance, then attribution, then the usage trigger. The full German mirror doubles the length, which is defensible for a .de platform with German-speaking users but is still redundant payload relative to a purely technical reading.
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 zero-parameter informational tool with no output schema and annotations covering its safety profile, the description supplies everything needed to select and invoke it correctly: what it returns conceptually and when to call it. Only the response format is left implicit, which is acceptable given there is no return schema to align with.
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?
The tool takes zero parameters, so per the rubric the baseline is 4. There is nothing the description could add, and it introduces no misleading argument hints.
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 precisely states the tool's content: what HonestDog is, where breeder/shelter/breed-health data originates, and how results link back to honestdog.de. That is unmistakably distinct from the sibling search_* tools, which retrieve entities rather than platform/provenance background. It lacks an explicit verb-and-resource phrasing, but the scope is unambiguous.
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 when the user asks what HonestDog is or whether its data can be trusted" gives a concrete trigger condition, effectively excluding entity-search requests that belong to siblings. It stops short of naming those siblings as the alternative path, so it is clear context without explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_breed_health_profileBreed health profile (S–E grade + health tests)ARead-onlyIdempotentInspect
Use when someone asks how healthy a breed is, which hereditary diseases it has, or which health tests to ask a breeder for (e.g. 'Labrador hip dysplasia tests', 'Französische Bulldogge gesund?'). HonestDog's proprietary per-breed health data: the S–E breeding-health grade with rationale, hereditary diseases, and the health tests breeders should run — L1 = the breed's core standard: required by the breed club's Zuchtordnung where club_required is true (club and document named), otherwise HonestDog's recommended standard. Where HonestDog has an explainer, qualzucht_traits lists the breed's extreme-breeding (Qualzucht) traits with their level — a listed trait does not mean every dog of the breed is affected. / HonestDogs Gesundheitsprofil je Rasse: S–E-Note, Erbkrankheiten und die wichtigsten Gesundheitstests (Pflicht laut Zuchtordnung, wo der Verein sie vorschreibt, sonst empfohlener Standard).
| Name | Required | Description | Default |
|---|---|---|---|
| breed_slug | Yes | Breed slug as returned by search_breeds, e.g. 'zwergpudel' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower; the description instead adds genuinely non-obvious context: what L1 means, that club_required is driven by the breed club's Zuchtordnung, and the caveat that a listed qualzucht_trait does not mean every dog is affected. It stops short of auth/permission or freshness/rate-limit context.
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-loads the use-case triggers, then layers field-by-field explanations, so the important routing information is first. The fully duplicated German translation is a meaningful chunk of the length, but it plausibly serves a bilingual audience rather than being pure filler.
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?
No output schema exists, so the description must carry return-value semantics — and it does, defining the S–E grade with rationale, hereditary diseases, health tests, club_required, and qualzucht_traits levels. An agent can understand the payload without a response 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 description coverage is 100% for the single breed_slug parameter and the description adds nothing about it (e.g. that the slug must come from search_breeds, or casing/format rules). Baseline 3 applies when the schema does the lifting.
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 ('per-breed health data: S–E breeding-health grade, hereditary diseases, health tests') and anchors it with real user-query examples. It is clearly distinguishable from search_breeds/search_breeders, which locate breeds or breeders rather than return health profiles.
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 explicit trigger conditions ('Use when someone asks how healthy a breed is, which hereditary diseases it has, or which health tests to ask a breeder for') plus sample phrasings. It does not name an alternative tool or state when not to use it, so it stops short of a full when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_breedersSearch approved breedersARead-onlyIdempotentInspect
Use when someone wants to buy a puppy from a reputable breeder, e.g. 'find a Labrador breeder in Bavaria' or 'seriöser Züchter Golden Retriever Bayern'. Searches HonestDog's directory of vetted, APPROVED dog breeders — mostly in Germany and Austria, with some in other European countries (each result names its country). Filter by breed (slug from search_breeds; exact breed only — breeders of crosses such as Labradoodle are not listed under a parent breed), region (state in the breeder's country, German spelling, e.g. 'Bayern', 'Steiermark') or city. Returns kennel name, photo, city/region/country, HonestDog score and the honestdog.de profile URL — contact happens there, never through this tool. For Qualzucht breeds this returns a caution instead of results. / Für 'Welpen vom seriösen Züchter kaufen': durchsucht das Verzeichnis geprüfter Züchter (nur freigegebene Profile, öffentliche Daten; Ort nur als Stadt/Region/Land).
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City (substring) | |
| limit | No | ||
| state | No | Region in the breeder's country, German spelling — a German or Austrian Bundesland such as 'Bayern' or 'Steiermark' (English names like 'Bavaria' are mapped) | |
| breed_slug | No | Restrict to breeders of this breed (slug from search_breeds) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds context annotations cannot: contact happens on honestdog.de and never through this tool, the returned fields are listed, and there is a special Qualzucht caution-instead-of-results behavior. That is exactly the kind of non-obvious behavior an agent needs.
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 a clear 'Use when...' clause, which is good, but the trailing German sentence largely restates the English content and inflates length for an agent-facing tool. The return-value list is useful, yet the overall text could shed the duplication.
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 no output schema, the description compensates by enumerating the returned fields (kennel name, photo, city/region/country, score, profile URL) and explains contact flow and the Qualzucht edge case. Nothing an agent needs to call or interpret this tool correctly 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 coverage is 75% and the description adds genuinely new semantics the schema lacks: breed_slug accepts only exact breeds (crosses like Labradoodle are not listed under a parent breed) and state uses German spelling with English names mapped. The limit parameter gets no mention, and the state/city spelling guidance largely duplicates the schema, so it falls slightly short of 5.
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 ('Searches HonestDog's directory of vetted, APPROVED dog breeders') and immediately distinguishes itself from siblings by naming search_breeds as the source of the breed slug and contrasting with shelter adoption implicitly. The geographic scope (Germany/Austria/other Europe) further sharpens what this tool is versus a generic search.
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 concrete when-to-use triggers with real example queries in two languages. However, it never explicitly names an alternative to route to (e.g. search_shelter_dogs for adoption) or states when NOT to use it, so the routing guidance stops just short of the top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_breedsSearch dog breedsARead-onlyIdempotentInspect
Use when someone is choosing a dog breed or asks which breeds are healthy, e.g. 'healthiest small dog breeds' or 'welche Rasse passt zu mir'. Searches HonestDog's breed catalogue by name (German or English, umlauts optional), size class, or S–E breeding-health grade, most popular first. Returns breed slugs for the other tools, a breed photo, and the honestdog.de breed page URL. / Durchsucht den HonestDog-Rassenkatalog nach Name, Größe oder S–E-Gesundheitsnote.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Size class filter. Breeds are recorded as small/medium/large (toy and giant currently match nothing) | |
| limit | No | ||
| query | No | Breed name or part of it, in German or English, umlauts optional — e.g. 'pudel', 'german shepherd', 'schaeferhund' | |
| health_grade | No | HonestDog S–E health grade (S = healthiest breeding basis) |
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), and the description adds genuinely new behavior: results are ranked most popular first, query matching accepts German or English with optional umlauts, and it returns breed slugs, a photo, and the honestdog.de page URL. With no output schema, that return-value disclosure is exactly the missing context.
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 usage trigger and examples, then the mechanics and return values. The German sentence is a full translation of the English one, which is redundant for an agent, but the overall length is proportionate to the information delivered.
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 read-only, no-required-param search tool with no output schema, the description covers the trigger, the searchable dimensions, ranking, and the shape of the return (slugs keyed to the other tools, photo, URL). Only the limit behavior and any zero-result handling are 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 coverage is 75% and already documents query language/umlaut handling, size class, and the S–E grade scale. The description restates these filter dimensions but adds no syntax or format detail beyond the schema, and never mentions the limit parameter — so the 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 and resource ('Searches HonestDog's breed catalogue') plus the fields searched (name, size, health grade) and the result ordering. An agent can distinguish it from search_breeders and search_shelter_dogs, which are the sibling searches over different corpora.
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 trigger context ('when someone is choosing a dog breed or asks which breeds are healthy') with concrete example queries in two languages. It does not explicitly say when NOT to use it or name the sibling tool to prefer for breeder/shelter lookups, so it stops short of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_shelter_dogsSearch adoptable shelter dogsARead-onlyIdempotentInspect
Use when someone wants to adopt a dog from a shelter in Germany, e.g. 'adopt a dog in Berlin' or 'Hund aus dem Tierheim adoptieren Bayern'. Searches dogs currently listed for adoption by German partner shelters on HonestDog (coverage is still small — a few shelters, mostly mixed breeds), by breed (German or English), size, gender, or Bundesland. Returns name, photos (only where the shelter consented), age in years, size, shelter and the honestdog.de listing URL; adoption happens with the shelter via the linked pages. / Durchsucht die aktuell zur Adoption gelisteten Tierheimhunde nach Rasse, Größe, Geschlecht oder Bundesland.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Size class (shelters list sizes in German; mapped server-side) | |
| limit | No | ||
| state | No | German Bundesland of the shelter, e.g. 'Nordrhein-Westfalen' (English names like 'North Rhine-Westphalia' are mapped) | |
| gender | No | ||
| breed_text | No | Breed in German or English, umlauts optional (e.g. 'Schäferhund', 'german shepherd', 'Mischling'); matched against the shelter's breed text and HonestDog's breed catalogue |
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), so the bar is lower — and the description still adds real context: small coverage ('a few shelters, mostly mixed breeds'), photos only where the shelter consented, and that adoption completes off-platform via the linked listing pages.
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 trigger condition and efficient; every sentence carries information. The full German translation roughly doubles the length and is redundant for an agent, though it is a deliberate bilingual choice for a German-market 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 no output schema, the description carries the return contract itself — name, consented photos, age in years, size, shelter, and the honestdog.de listing URL — plus the coverage limitation. Nothing an agent needs to call or interpret this correctly 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 coverage is 60% and the schema already documents the notable semantics (size mapped from German, state English-name mapping, bilingual breed matching). The description merely recaps the filter dimensions ('breed (German or English), size, gender, or Bundesland') without adding new meaning, and never explains the limit parameter.
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 ('Searches dogs currently listed for adoption by German partner shelters on HonestDog') plus the filter dimensions. The resource (shelter dogs for adoption) is distinct from the sibling search_breeders, so an agent can separate them without opening either 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 when someone wants to adopt a dog from a shelter in Germany' with two concrete example utterances gives clear trigger conditions. It does not explicitly name an alternative or a when-not case (e.g. use search_breeders for buying from breeders), so it stops 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Changed
search_breeders2 fields changed- added
Input schema / properties / city / descriptionAdded value: +"City (substring)" - changed
Input schema / properties / state / descriptionPrevious value: -"German Bundesland, e.g. 'Bayern'"New value: +"Region in the breeder's country, German spelling — a German or Austrian Bundesland such as 'Bayern' or 'Steiermark' (English names like 'Bavaria' are mapped)"
- Changed
search_breeds2 fields changed- changed
Input schema / properties / query / descriptionPrevious value: -"Breed name (substring, case-insensitive), e.g. 'pudel'"New value: +"Breed name or part of it, in German or English, umlauts optional — e.g. 'pudel', 'german shepherd', 'schaeferhund'" - changed
Input schema / properties / size / descriptionPrevious value: -"Size class filter"New value: +"Size class filter. Breeds are recorded as small/medium/large (toy and giant currently match nothing)"
- Changed
search_shelter_dogs5 fields changed- changed
Input schema / properties / breed_text / descriptionPrevious value: -"Breed text as listed by the shelter (substring match)"New value: +"Breed in German or English, umlauts optional (e.g. 'Schäferhund', 'german shepherd', 'Mischling'); matched against the shelter's breed text and HonestDog's breed catalogue" - added
Input schema / properties / size / descriptionAdded value: +"Size class (shelters list sizes in German; mapped server-side)" - added
Input schema / properties / size / enumAdded value: +[ + "small", + "medium", + "large", + "giant" +] - removed
Input schema / properties / size / maxLengthRemoved value: -30 - changed
Input schema / properties / state / descriptionPrevious value: -"German Bundesland of the shelter"New value: +"German Bundesland of the shelter, e.g. 'Nordrhein-Westfalen' (English names like 'North Rhine-Westphalia' are mapped)"
5 tool updates
- First observed
about_honestdog - First observed
get_breed_health_profile - First observed
search_breeders - First observed
search_breeds - First observed
search_shelter_dogs
Related MCP Connectors
Match dog breeds to your life, compare them, plan a test drive and estimate U.S. vet costs.
Canine genomics for agents: breed allele frequencies, AI pathogenicity + OMIA clinical disease layer
Dog & cat toxic-food risk check, breed profiles, and Korean vet clinics, shelters, pet travel
RescueGroups.org MCP — adoptable animals and the rescues/shelters that list them, from the…
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceCite-grade German legal-text infrastructure for LLM agents, providing access to federal, Länder, and EU laws with cryptographic provenance.51 PyPI2Apache 2.0
- AlicenseNot gradedqualityFmaintenanceEnables querying over 6,800 German federal statutes, case law, and legislative preparatory works with verbatim source text. Integrates EU law cross-references and provides citation validation and legal stance building.160 npm23Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables searching RescueGroups.org for adoptable animals by species, postal-code radius, breed, and traits, and exploring the rescues/shelters that list them, including full details, photos, contact info, and adoption process.10 npmMIT
- AlicenseNot gradedqualityBmaintenanceProvides access to Swiss livestock regulations and compliance data covering animal welfare standards (TSchV), RAUS/BTS direct payment programs, and TVD movement rules. Enables querying of housing specifications, stocking densities, feed requirements, and breed data for cattle, pigs, poultry, sheep, goats, and horses.36 npmApache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.
Directories
Last observed