Skip to content

TheDogs.app

by thedogs.app · remote · no sign-in to list tools · v6.10.0 · published by app.thedogs

Match dog breeds to your life, compare them, plan a test drive and estimate U.S. vet costs.

Changes · 51 high finding

10 tools: 5 change things and 5 only read.

Scanned Oct 21, 2026

2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http dog-breed-advisor https://mcp.thedogs.app/mcp

Findings

Matches of fixed checks, with the text they matched.

1 high1 warn
  • The description contains "do not tell the user", an instruction to keep something from the user.

    Matched text

    description: "...a statistical estimate, not as advice: do not tell the user to buy insurance or that 'the model sug..."

    What this check looks for
  • The server marks "create_test_drive_plan" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "create_test_drive_plan" says "create": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

10 tools

Changes things 5Claude Code: ask
  • assess_breed_fitUse this when the user asks whether a specific breed is right for them or what would make it work.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Use this when the user asks whether a specific breed is right for them or what would make it work. It computes a personal fit score and rank for that breed. Reality-checks ONE named breed against the person's lifestyle with the TheDogs.app quiz scoring: overall fit %, its rank among 121 breeds for the same answers, a per-area breakdown (home, activity, experience, kids, shedding, barking, time alone, vet budget, strangers, trainability), the biggest mismatch, and which single change in the person's situation would raise the fit most. Use when someone asks 'is a <breed> right for me?', 'should I get a <breed>?' or 'what would make a <breed> work?'. The five key answers (home, activity, experience, kids, time alone) must come from the user: if any is unknown, ask for it first and never guess or assume a value. The rest default to neutral. Use match_dog_breeds instead when no breed is named. In apps that display widgets, a visual card with these results is shown to the user; there, keep your text reply short and do not repeat every number or list from the card. Do not use for symptoms, emergencies or treatment questions (refer the user to a veterinarian) or for training and behavior how-tos. If several of the five key answers are missing, ask for all of them in one short message, and reuse any answers the user already gave earlier in the conversation.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • create_test_drive_planUse this when the user is unsure whether they are ready for a specific breed or wants to try life with it before adopting.1 finding

    Why it is in this group

    • The name "create_test_drive_plan" says "create": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "create_test_drive_plan" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "create_test_drive_plan" says "create": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Use this when the user is unsure whether they are ready for a specific breed or wants to try life with it before adopting. Builds a short, practical try-before-you-adopt plan (3, 7 or 14 days) for ONE named breed, matched to the person's lifestyle: 3–8 concrete trials (daily exercise at the breed's level, workday/alone-time plan, coat care, noise, floor space, kids supervision, training commitment, and a dog-account budget using TheDogs.app vet-cost estimates), each with daily time ranges and a pass criterion. The trial that tests the person's biggest mismatch is marked decisive and comes first. Use when someone asks how to know if they're ready for a breed, wants to 'try before buying', or is unsure about a specific breed. The five key answers (home, activity, experience, kids, time alone) must come from the user: ask for any that are missing, never guess. Returns a plan_id: nothing is stored, so tell the user to save the summary. In apps that display widgets, a visual card with these results is shown to the user; there, keep your text reply short and do not repeat every number or list from the card. Do not use for symptoms, emergencies or treatment questions (refer the user to a veterinarian) or for training and behavior how-tos. If several of the five key answers are missing, ask for all of them in one short message, and reuse any answers the user already gave earlier in the conversation.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • estimate_dog_insurance_costUse this when the user asks what a specific dog breed will cost at the vet, whether pet insurance is worth it for their dog, or how deductible or reimbursement choices change their…1 finding

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • High

      The description contains "do not tell the user", an instruction to keep something from the user.

      Matched text

      description: "...a statistical estimate, not as advice: do not tell the user to buy insurance or that 'the model sug..."

      What this check looks for
    Description, as the server wrote it
    Use this when the user asks what a specific dog breed will cost at the vet, whether pet insurance is worth it for their dog, or how deductible or reimbursement choices change their risk. It runs TheDogs.app's cost simulation for that breed, age and ZIP code. Simulates thousands of possible lifetimes for a U.S. dog of the given breed and age (breed health-registry data + U.S. vet cost ranges adjusted to ZIP code) and returns expected vet costs, the chance of a year with bills above the owner's emergency savings, the plan structure that keeps that risk under 5%, and a modeled monthly premium (benchmark, not a quote). Use when a user asks whether pet insurance is worth it for their dog, how much vet care or insurance costs for a breed, or how deductible and reimbursement levels change their risk. Present results as a statistical estimate, not as advice: do not tell the user to buy insurance or that 'the model suggests/recommends' a policy; say what the numbers show and leave the decision to the user. Always give the user the reportUrl link (full report with price-by-age chart and all 27 plan structures) and mention that it is an estimate, not a quote. In apps that display widgets, a visual card with these results is shown to the user; there, keep your text reply short and do not repeat every number or list from the card. Do not use for symptoms, emergencies or treatment questions (refer the user to a veterinarian) or for training and behavior how-tos. Do not use for cost questions outside the U.S.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • match_dog_breedsUse this when the user wants a personal recommendation of which dog breed suits their home, schedule, activity level, experience or family.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Use this when the user wants a personal recommendation of which dog breed suits their home, schedule, activity level, experience or family. It scores all 121 breeds with TheDogs.app's matching engine. Runs the TheDogs.app breed-matching quiz on 121 breeds and returns the top 3 matches as cards with a sarcastic tagline, why the breed works, Dr. Waggs' reality check and a link to the breed page. Use when someone asks which dog breed suits them. The five key answers (living situation, activity, experience, kids, time alone) must come from the user: if any is unknown, ask for it first and never guess or assume a value. The rest default to neutral. Always share the links. In apps that display widgets, a visual card with these results is shown to the user; there, keep your text reply short and do not repeat every number or list from the card. Do not use for symptoms, emergencies or treatment questions (refer the user to a veterinarian) or for training and behavior how-tos. If several of the five key answers are missing, ask for all of them in one short message, and reuse any answers the user already gave earlier in the conversation.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • review_test_driveUse this when the user reports back on a TheDogs.app test drive plan (by plan ID or by describing how the trials went).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Use this when the user reports back on a TheDogs.app test drive plan (by plan ID or by describing how the trials went). Reviews a finished TheDogs.app test drive: takes the plan_id and, for each trial, whether it worked, was a struggle, or was skipped. Returns three blocks (Worked / Needs a solution / Not yet known), a fix for each struggle, an overall readout that weighs the decisive trial most, and better-matching, easier-to-find breeds when it didn't go well. Use when the user reports back on a test drive. Trial keys come from the plan (exercise, alone, coat, noise, space, kids, training, budget); map the user's words to them and leave out trials they didn't mention. Nothing is stored. In apps that display widgets, a visual card with these results is shown to the user; there, keep your text reply short and do not repeat every number or list from the card.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 5Claude Code: allow
  • compare_dog_breedsUse this when the user compares two or three breeds or asks 'X or Y'.No findings

    Why it is in this group

    • The name "compare_dog_breeds" says "compare": a word for reading.
    Description, as the server wrote it
    Use this when the user compares two or three breeds or asks 'X or Y'. Compares 2–3 dog breeds on size, energy, shedding, barking, trainability, kid-friendliness and life expectancy, plus estimated vet costs (expected lifetime cost and modeled monthly insurance premium (benchmark, not a quote) at age 1, U.S. average prices). Use for 'X vs Y' questions. Estimates are statistical, not quotes or recommendations of a policy. In apps that display widgets, a visual card with these results is shown to the user; there, keep your text reply short and do not repeat every number or list from the card. Do not use for symptoms, emergencies or treatment questions (refer the user to a veterinarian) or for training and behavior how-tos. Do not use for cost questions outside the U.S.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • find_similar_breedsUse this when the user loves a breed that may not fit them, or asks for a similar but easier breed.No findings

    Why it is in this group

    • The name "find_similar_breeds" says "find": a word for reading.
    Description, as the server wrote it
    Use this when the user loves a breed that may not fit them, or asks for a similar but easier breed. Finds breeds that share the look and personality of a breed the user is drawn to (e.g. 'I love Huskies but…', 'something like a German Shepherd but smaller/easier', 'dogs similar to a Golden'). Uses TheDogs.app look & personality tags plus AKC group. If the five key lifestyle answers are given, it only returns easier-to-find breeds that fit the user at least 10 points better than the loved breed, with their fit %; without answers it returns the closest look-and-vibe twins. Use match_dog_breeds when no breed is named, assess_breed_fit to check one breed. In apps that display widgets, a visual card with these results is shown to the user; there, keep your text reply short and do not repeat every number or list from the card. Do not use for symptoms, emergencies or treatment questions (refer the user to a veterinarian) or for training and behavior how-tos.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_arrival_checklistUse this when the user is getting a dog soon and asks what to buy or prepare.No findings

    Why it is in this group

    • The name "get_arrival_checklist" says "get": a word for reading.
    Description, as the server wrote it
    Use this when the user is getting a dog soon and asks what to buy or prepare. Builds TheDogs.app's arrival checklist for a breed: what to have before the dog comes home, on day one and in the first week, sized for the breed (crate, harness), with breed-specific items (e.g. ramp for back-problem breeds, cooling mat for flat-faced breeds) and a 'don't buy yet' list. Optional lifestyle answers personalize it (apartment, alone all day, first dog). Use when the user is getting a dog soon, passed a test drive, or asks what to buy/prepare. The list is editorial, not sponsored; it contains no prices or shopping links. In apps that display widgets, a visual card is shown to the user; there, keep your text reply short and do not repeat every item from the card. Do not use for symptoms, emergencies or treatment questions (refer the user to a veterinarian) or for training and behavior how-tos.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_breed_profileUse this when the user asks for a general overview of ONE named breed (what it's like, pros and cons, health watch).No findings

    Why it is in this group

    • The name "get_breed_profile" says "get": a word for reading.
    Description, as the server wrote it
    Use this when the user asks for a general overview of ONE named breed (what it's like, pros and cons, health watch). For a personal fit check use assess_breed_fit; to weigh 2–3 breeds use compare_dog_breeds; for vet costs use estimate_dog_insurance_cost. Returns TheDogs.app's (sarcastic but factual) profile of a dog breed: tagline, short description, strengths, Dr. Waggs' reality check, health watch list, key stats and breed-specific gear picks (product types chosen for the breed's health risks), with links to the full breed page and its vet-cost estimate. Health items are general breed tendencies, not a diagnosis. In apps that display widgets, a visual card with these results is shown to the user; there, keep your text reply short and do not repeat every number or list from the card.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_breedsUse this when the user asks which breeds TheDogs.app covers or a breed name can't be matched.No findings

    Why it is in this group

    • The name "list_breeds" says "list": a word for reading.
    Description, as the server wrote it
    Use this when the user asks which breeds TheDogs.app covers or a breed name can't be matched. Lists dog breeds supported by the TheDogs.app pet insurance cost estimator, optionally filtered by a search term.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 6.10.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http dog-breed-advisor https://mcp.thedogs.app/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__dog-breed-advisor__list_breeds",
      "mcp__dog-breed-advisor__find_similar_breeds",
      "mcp__dog-breed-advisor__get_arrival_checklist",
      "mcp__dog-breed-advisor__get_breed_profile",
      "mcp__dog-breed-advisor__compare_dog_breeds"
    ],
    "ask": [
      "mcp__dog-breed-advisor__estimate_dog_insurance_cost",
      "mcp__dog-breed-advisor__match_dog_breeds",
      "mcp__dog-breed-advisor__assess_breed_fit",
      "mcp__dog-breed-advisor__create_test_drive_plan",
      "mcp__dog-breed-advisor__review_test_drive"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as dog-breed-advisor. Review it before you use it.