DogPolicies
io.github.xultrax-web/dogpolicies-mcpxultrax-webstreamable-httpv0.2.5Scanned
Verified dog rules for California and Nevada travel: parks, beaches, hotels, fees, sourced and dated
26 tools: 12 change things and 14 only read.
- Reads private data · 0
- Reads text others write · 5
- Can send data out · 0
- 4 findings
Anlyon alternative
12 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
26 tools
Changes things 12Claude Code: ask
dogpolicies_changes_nearVerification events (confirmed, changed, source gone, blocked, disputed) since a date for places within a radius of a town, county or point, newest first.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 Verification events (confirmed, changed, source gone, blocked, disputed) since a date for places within a radius of a town, county or point, newest first. The way to answer "has anything changed around Tahoe since my last trip?" or to re-check a saved itinerary. Use dogpolicies_changes_since for everything everywhere. Example: "What changed near Monterey since September?" -> place="Monterey", since="2026-09-01"
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dogpolicies_changes_sinceEverything that changed in the whole data set since a date: verification events and rule changes everywhere, newest first, so an agent can poll cheaply instead of re-reading every …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 Everything that changed in the whole data set since a date: verification events and rule changes everywhere, newest first, so an agent can poll cheaply instead of re-reading every record. Each entry names the place, what happened (confirmed, changed, source_gone, blocked, disputed), who checked, and links the record.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dogpolicies_nearAnything for dogs around a town, county or point: everything dog-related nearby, grouped by kind: beaches, parks, trails, hotels, campgrounds, cabins, places to eat and rest areas,…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 Anything for dogs around a town, county or point: everything dog-related nearby, grouped by kind: beaches, parks, trails, hotels, campgrounds, cabins, places to eat and rest areas, each sorted by distance, with the dog rule and citation for each. The one call to make when a user names a place and asks "what can I do with my dog there?". Takes a town or county name (no coordinates needed) or a point. Use dogpolicies_find_hotels when the question is about a specific dog's weight or budget, dogpolicies_plan_trip for a whole stay, dogpolicies_search_places for one kind with filters. Examples: - "What can my dog do in Carmel?" -> place="Carmel" - "Dog beaches and parks around South Lake Tahoe" -> place="South Lake Tahoe", types=["beach","park"] - "Anything dog-friendly within 5 miles of here" -> near={lat:36.6, lon:-121.9}, radius_miles=5
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dogpolicies_plan_tripPlan a stay in a California or Nevada town with a dog, in one call: where to stay (hotels, campgrounds and cabins that will take this dog, with the pet fee for the whole stay worke…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 Plan a stay in a California or Nevada town with a dog, in one call: where to stay (hotels, campgrounds and cabins that will take this dog, with the pet fee for the whole stay worked out), what to do (beaches, parks and trails that allow dogs, nearest first) and where to eat (patios that take dogs), every item with its citation. Give the town or county and the dog: weight, how many dogs, nights, and the most the user will pay in pet fees. Use dogpolicies_route_stops for the drive there and dogpolicies_near for a quick list without the stay check. Examples: - "Three nights in Monterey with our 70 lb Lab, pet fees under $100" -> place="Monterey", dog_weight_lb=70, nights=3, max_total_fee=100 - "A weekend in South Lake Tahoe with two small dogs" -> place="South Lake Tahoe", dogs=2, nights=2 - "Camping near Mammoth Lakes with a dog" -> place="Mono County", stay_types=["campground","cabins"]
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dogpolicies_report_correctionFile a correction when a user says a rule on a record is wrong or has changed (a fee went up, a beach closed to dogs, a hotel now takes two pets).Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it File a correction when a user says a rule on a record is wrong or has changed (a fee went up, a beach closed to dogs, a hotel now takes two pets). The report goes to a person who re-reads the official source; nothing is published automatically and the record does not change until it is verified. Give the place id, what is wrong in a sentence or two, and the official page the user saw, if any. Never send personal details beyond an optional contact the user offers.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
dogpolicies_route_stopsDog-friendly stops along a California or Nevada highway, in driving order: rest areas (Caltrans rest areas with pet areas; Nevada rest areas, where leashed dogs are allowed), trave…2 findings
Why it is in this group
- The name "dogpolicies_route_stops" says "stop": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Info
The description is 2,291 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...we stop?" -> route="i-80-nevada", near={lat:39.53, lon:-119.81}, direction="east""
- Warn
The server marks "dogpolicies_route_stops" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "dogpolicies_route_stops" says "stop": a word for a change.
Description, as the server wrote it Dog-friendly stops along a California or Nevada highway, in driving order: rest areas (Caltrans rest areas with pet areas; Nevada rest areas, where leashed dogs are allowed), travel stops with dog parks, hotels, cabin resorts and campgrounds or RV parks near the road (all checked against the dog's weight and the pet-fee budget) and parks or beaches that allow dogs. Each stop has its mile on the route and its distance off the road. Each route covers one state and stops at the state line. California miles follow the Caltrans odometer: north on I-5 (from the Mexican border), US-101 (from Los Angeles), Highway 1 (from Dana Point) and I-15 (i-15, San Diego to Primm); east on I-80 (i-80, San Francisco to the Nevada line) and US-50 (us-50, West Sacramento to Stateline). Nevada routes count Nevada mileposts from the California line, matching the exit numbers: north on I-15 (i-15-nevada), east on I-80 (i-80-nevada) and US-50 (us-50-nevada, Stateline to Utah); north on US-95 (us-95-nevada, California line to Oregon) and US-93 (us-93-nevada, Hoover Dam to Idaho), whose miles include the stretches they share with other highways. Where Highway 1 runs on US-101, stops on that stretch say so in on_road. Give a starting point with from_mile or near, and a direction. Routes covered: I-5 (i-5, 796 miles), US-101 (us-101, 809 miles), Highway 1 (highway-1, 736 miles), I-15 (i-15, 294 miles), I-80 (i-80, 204 miles), US-50 (us-50, 109 miles), I-15 (i-15-nevada, 124 miles), I-80 (i-80-nevada, 410 miles), US-50 (us-50-nevada, 409 miles), US-95 (us-95-nevada, 664 miles), US-93 (us-93-nevada, 526 miles). Examples: - "Driving north on I-5 from Los Angeles with a 70 lb dog, where can we stop?" -> near={lat:34.05, lon:-118.24}, direction="north", dog_weight_lb=70 - "Pet areas on the Grapevine" -> from_mile=170, to_mile=222, kinds=["rest_area","park"] - "Heading south on 101 from San Francisco to Santa Barbara, where can the dog run?" -> route="us-101", near={lat:37.77, lon:-122.42}, to_mile=100, direction="south" - "Dog-friendly hotel near Redding under $40 a night" -> near={lat:40.59, lon:-122.39}, kinds=["lodging"], max_total_fee=40 - "Driving I-80 east from Reno with a dog, where can we stop?" -> route="i-80-nevada", near={lat:39.53, lon:-119.81}, direction="east"
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dogrulebook_changes_nearAlias of dogpolicies_changes_near, kept for older clients.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 Alias of dogpolicies_changes_near, kept for older clients. Verification events (confirmed, changed, source gone, blocked, disputed) since a date for places within a radius of a town, county or point, newest first. The way to answer "has anything changed around Tahoe since my last trip?" or to re-check a saved itinerary. Use dogpolicies_changes_since for everything everywhere. Example: "What changed near Monterey since September?" -> place="Monterey", since="2026-09-01"
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dogrulebook_changes_sinceAlias of dogpolicies_changes_since, kept for older clients.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 Alias of dogpolicies_changes_since, kept for older clients. Everything that changed in the whole data set since a date: verification events and rule changes everywhere, newest first, so an agent can poll cheaply instead of re-reading every record. Each entry names the place, what happened (confirmed, changed, source_gone, blocked, disputed), who checked, and links the record.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dogrulebook_nearAlias of dogpolicies_near, kept for older clients.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 Alias of dogpolicies_near, kept for older clients. Anything for dogs around a town, county or point: everything dog-related nearby, grouped by kind: beaches, parks, trails, hotels, campgrounds, cabins, places to eat and rest areas, each sorted by distance, with the dog rule and citation for each. The one call to make when a user names a place and asks "what can I do with my dog there?". Takes a town or county name (no coordinates needed) or a point. Use dogpolicies_find_hotels when the question is about a specific dog's weight or budget, dogpolicies_plan_trip for a whole stay, dogpolicies_search_places for one kind with filters. Examples: - "What can my dog do in Carmel?" -> place="Carmel" - "Dog beaches and parks around South Lake Tahoe" -> place="South Lake Tahoe", types=["beach","park"] - "Anything dog-friendly within 5 miles of here" -> near={lat:36.6, lon:-121.9}, radius_miles=5
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dogrulebook_plan_tripAlias of dogpolicies_plan_trip, kept for older clients.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 Alias of dogpolicies_plan_trip, kept for older clients. Plan a stay in a California or Nevada town with a dog, in one call: where to stay (hotels, campgrounds and cabins that will take this dog, with the pet fee for the whole stay worked out), what to do (beaches, parks and trails that allow dogs, nearest first) and where to eat (patios that take dogs), every item with its citation. Give the town or county and the dog: weight, how many dogs, nights, and the most the user will pay in pet fees. Use dogpolicies_route_stops for the drive there and dogpolicies_near for a quick list without the stay check. Examples: - "Three nights in Monterey with our 70 lb Lab, pet fees under $100" -> place="Monterey", dog_weight_lb=70, nights=3, max_total_fee=100 - "A weekend in South Lake Tahoe with two small dogs" -> place="South Lake Tahoe", dogs=2, nights=2 - "Camping near Mammoth Lakes with a dog" -> place="Mono County", stay_types=["campground","cabins"]
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dogrulebook_report_correctionAlias of dogpolicies_report_correction, kept for older clients.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Alias of dogpolicies_report_correction, kept for older clients. File a correction when a user says a rule on a record is wrong or has changed (a fee went up, a beach closed to dogs, a hotel now takes two pets). The report goes to a person who re-reads the official source; nothing is published automatically and the record does not change until it is verified. Give the place id, what is wrong in a sentence or two, and the official page the user saw, if any. Never send personal details beyond an optional contact the user offers.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
dogrulebook_route_stopsAlias of dogpolicies_route_stops, kept for older clients.2 findings
Why it is in this group
- The name "dogrulebook_route_stops" says "stop": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Info
The description is 2,349 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...we stop?" -> route="i-80-nevada", near={lat:39.53, lon:-119.81}, direction="east""
- Warn
The server marks "dogrulebook_route_stops" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "dogrulebook_route_stops" says "stop": a word for a change.
Description, as the server wrote it Alias of dogpolicies_route_stops, kept for older clients. Dog-friendly stops along a California or Nevada highway, in driving order: rest areas (Caltrans rest areas with pet areas; Nevada rest areas, where leashed dogs are allowed), travel stops with dog parks, hotels, cabin resorts and campgrounds or RV parks near the road (all checked against the dog's weight and the pet-fee budget) and parks or beaches that allow dogs. Each stop has its mile on the route and its distance off the road. Each route covers one state and stops at the state line. California miles follow the Caltrans odometer: north on I-5 (from the Mexican border), US-101 (from Los Angeles), Highway 1 (from Dana Point) and I-15 (i-15, San Diego to Primm); east on I-80 (i-80, San Francisco to the Nevada line) and US-50 (us-50, West Sacramento to Stateline). Nevada routes count Nevada mileposts from the California line, matching the exit numbers: north on I-15 (i-15-nevada), east on I-80 (i-80-nevada) and US-50 (us-50-nevada, Stateline to Utah); north on US-95 (us-95-nevada, California line to Oregon) and US-93 (us-93-nevada, Hoover Dam to Idaho), whose miles include the stretches they share with other highways. Where Highway 1 runs on US-101, stops on that stretch say so in on_road. Give a starting point with from_mile or near, and a direction. Routes covered: I-5 (i-5, 796 miles), US-101 (us-101, 809 miles), Highway 1 (highway-1, 736 miles), I-15 (i-15, 294 miles), I-80 (i-80, 204 miles), US-50 (us-50, 109 miles), I-15 (i-15-nevada, 124 miles), I-80 (i-80-nevada, 410 miles), US-50 (us-50-nevada, 409 miles), US-95 (us-95-nevada, 664 miles), US-93 (us-93-nevada, 526 miles). Examples: - "Driving north on I-5 from Los Angeles with a 70 lb dog, where can we stop?" -> near={lat:34.05, lon:-118.24}, direction="north", dog_weight_lb=70 - "Pet areas on the Grapevine" -> from_mile=170, to_mile=222, kinds=["rest_area","park"] - "Heading south on 101 from San Francisco to Santa Barbara, where can the dog run?" -> route="us-101", near={lat:37.77, lon:-122.42}, to_mile=100, direction="south" - "Dog-friendly hotel near Redding under $40 a night" -> near={lat:40.59, lon:-122.39}, kinds=["lodging"], max_total_fee=40 - "Driving I-80 east from Reno with a dog, where can we stop?" -> route="i-80-nevada", near={lat:39.53, lon:-119.81}, direction="east"
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 14Show 14 read-only tools
dogpolicies_browse_answersReady-made lists that answer common questions (list the state parks, national parks, beaches or hotels that allow dogs), such as "Which California national parks allow dogs?" or "W…Reads text others writeNo findings
Why it is in this group
- The name "dogpolicies_browse_answers" says "browse": a word for reading.
What it can reach
- untrusted-inputThe name "dogpolicies_browse_answers" says "browse": it reads web pages, which anyone can write.
Description, as the server wrote it Ready-made lists that answer common questions (list the state parks, national parks, beaches or hotels that allow dogs), such as "Which California national parks allow dogs?" or "Where can dogs go off leash on California beaches?". Without a slug, lists every question with its slug and result count. With a slug, returns that question's places.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dogpolicies_compare_placesWhich one is better for a dog?No findings
Why it is in this group
- The name "dogpolicies_compare_places" says "compare": a word for reading.
Description, as the server wrote it Which one is better for a dog? Compare two to six places on the facts that decide a dog trip: dogs allowed, leash rule, where dogs may go, pet fee, weight limit, pets per room, restrictions, plus confidence, freshness and who confirmed each record. One row per fact, one column per place, every place with its citation. Use after a search returned candidates and the user asks "which one?". Ids come from any search result. Example: ids=["carmel-beach","asilomar-state-beach"].
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dogpolicies_find_hotelsFind hotels and motels in California and Nevada that will take a specific dog, with the estimated pet fee for the stay.No findings
Why it is in this group
- The name "dogpolicies_find_hotels" says "find": a word for reading.
Description, as the server wrote it Find hotels and motels in California and Nevada that will take a specific dog, with the estimated pet fee for the stay. Each hotel is sorted into "match" (the policy says yes on everything asked), "possible" (nothing rules it out, but something needs a call: a hotel that decides case by case, an unstated weight limit, a limit the hotel lifts with its approval, an "up to" fee) or excluded (left out). Matches come first, cheapest pet fee first. The fee arithmetic is spelled out for every result. Examples: - "Will a Monterey hotel take my 70 lb Lab for under $50?" -> county="Monterey", dog_weight_lb=70, max_total_fee=50 - "Two dogs, three nights near Palm Springs" -> near={lat:33.83, lon:-116.55}, dogs=2, nights=3 - "Is the Motel 6 in Fresno dog friendly?" -> query="Motel 6 Fresno" - "A Las Vegas hotel for my 60 lb dog" -> county="Clark", state="NV", dog_weight_lb=60
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dogpolicies_get_brand_policyA hotel chain's published pet policy: pets per room, weight limit, fee, rules, listed exceptions and how many California and Nevada properties carry it.No findings
Why it is in this group
- The name "dogpolicies_get_brand_policy" says "get": a word for reading.
Description, as the server wrote it A hotel chain's published pet policy: pets per room, weight limit, fee, rules, listed exceptions and how many California and Nevada properties carry it. Brands covered: Best Western (best-western), Extended Stay America (extended-stay-america), Kimpton Hotels (kimpton), La Quinta by Wyndham (la-quinta), Motel 6 (motel-6), Red Roof Inn (red-roof). Example: brand="red-roof" or brand="Kimpton".
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dogpolicies_get_placeThe full record for one place you already know by id: every dog rule with its display text, the rules list, and each source with its URL, publisher, capture date and quote.Reads text others writeNo findings
Why it is in this group
- The name "dogpolicies_get_place" says "get": a word for reading.
What it can reach
- untrusted-inputThe description's first sentence says "url": it reads web pages, which anyone can write.
Description, as the server wrote it The full record for one place you already know by id: every dog rule with its display text, the rules list, and each source with its URL, publisher, capture date and quote. Full rules and sources for one place: every fact with its display text, the rules list, and each source with its URL, publisher, capture date and quote. Use after dogpolicies_search_places or dogpolicies_find_hotels, which return ids. Example: id="carmel-beach".
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dogpolicies_get_ruleOne rule (a fee, a leash rule, a weight limit) by its stable id, with its value, the source it cites, the quote, its confidence, the date it was verified and its freshness, plus th…No findings
Why it is in this group
- The name "dogpolicies_get_rule" says "get": a word for reading.
Description, as the server wrote it One rule (a fee, a leash rule, a weight limit) by its stable id, with its value, the source it cites, the quote, its confidence, the date it was verified and its freshness, plus the place's citation line. Rule ids look like "rul_<place uid>_<kind>" and appear in every place result as rule_records.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dogpolicies_search_placesSearch parks, beaches, trails, hotels, campgrounds and cabin resorts in California and Nevada by name, location and dog rules.No findings
Why it is in this group
- The name "dogpolicies_search_places" says "search": a word for reading.
Description, as the server wrote it Search parks, beaches, trails, hotels, campgrounds and cabin resorts in California and Nevada by name, location and dog rules. Returns one page of places with a one-line answer ("Yes, on a leash no longer than 6 feet."), status (yes, yes_restricted, no, varies), verification date and page URL. Use dogpolicies_get_place for full rules and sources, and dogpolicies_find_hotels to check a specific dog's weight and budget at hotels. Examples: - "Off-leash beaches near San Diego" -> type="beach", off_leash=true, near={lat:32.72, lon:-117.16} - "Can I bring my dog to Point Lobos?" -> query="Point Lobos" - "State parks in Marin County that allow dogs" -> type="park", county="Marin", dogs_allowed=true - "Lake Tahoe beaches in Nevada that allow dogs" -> type="beach", state="NV", dogs_allowed=true - "Off-leash dog parks in Las Vegas" -> type="park", off_leash=true, county="Clark", state="NV" - "RV parks in Fresno County that take dogs" -> type="campground", county="Fresno", dogs_allowed=true - "Dog-friendly cabins in June Lake" -> type="cabins", query="June Lake", dogs_allowed=true - "Restaurants with a dog-friendly patio in Alameda" -> type="restaurant", query="Alameda"
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dogrulebook_browse_answersAlias of dogpolicies_browse_answers, kept for older clients.Reads text others writeNo findings
Why it is in this group
- The name "dogrulebook_browse_answers" says "browse": a word for reading.
What it can reach
- untrusted-inputThe name "dogrulebook_browse_answers" says "browse": it reads web pages, which anyone can write.
- untrusted-inputThe description's first sentence says "browse": it reads web pages, which anyone can write.
Description, as the server wrote it Alias of dogpolicies_browse_answers, kept for older clients. Ready-made lists that answer common questions (list the state parks, national parks, beaches or hotels that allow dogs), such as "Which California national parks allow dogs?" or "Where can dogs go off leash on California beaches?". Without a slug, lists every question with its slug and result count. With a slug, returns that question's places.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dogrulebook_compare_placesAlias of dogpolicies_compare_places, kept for older clients.No findings
Why it is in this group
- The name "dogrulebook_compare_places" says "compare": a word for reading.
Description, as the server wrote it Alias of dogpolicies_compare_places, kept for older clients. Which one is better for a dog? Compare two to six places on the facts that decide a dog trip: dogs allowed, leash rule, where dogs may go, pet fee, weight limit, pets per room, restrictions, plus confidence, freshness and who confirmed each record. One row per fact, one column per place, every place with its citation. Use after a search returned candidates and the user asks "which one?". Ids come from any search result. Example: ids=["carmel-beach","asilomar-state-beach"].
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dogrulebook_find_hotelsAlias of dogpolicies_find_hotels, kept for older clients.No findings
Why it is in this group
- The name "dogrulebook_find_hotels" says "find": a word for reading.
Description, as the server wrote it Alias of dogpolicies_find_hotels, kept for older clients. Find hotels and motels in California and Nevada that will take a specific dog, with the estimated pet fee for the stay. Each hotel is sorted into "match" (the policy says yes on everything asked), "possible" (nothing rules it out, but something needs a call: a hotel that decides case by case, an unstated weight limit, a limit the hotel lifts with its approval, an "up to" fee) or excluded (left out). Matches come first, cheapest pet fee first. The fee arithmetic is spelled out for every result. Examples: - "Will a Monterey hotel take my 70 lb Lab for under $50?" -> county="Monterey", dog_weight_lb=70, max_total_fee=50 - "Two dogs, three nights near Palm Springs" -> near={lat:33.83, lon:-116.55}, dogs=2, nights=3 - "Is the Motel 6 in Fresno dog friendly?" -> query="Motel 6 Fresno" - "A Las Vegas hotel for my 60 lb dog" -> county="Clark", state="NV", dog_weight_lb=60
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dogrulebook_get_brand_policyAlias of dogpolicies_get_brand_policy, kept for older clients.No findings
Why it is in this group
- The name "dogrulebook_get_brand_policy" says "get": a word for reading.
Description, as the server wrote it Alias of dogpolicies_get_brand_policy, kept for older clients. A hotel chain's published pet policy: pets per room, weight limit, fee, rules, listed exceptions and how many California and Nevada properties carry it. Brands covered: Best Western (best-western), Extended Stay America (extended-stay-america), Kimpton Hotels (kimpton), La Quinta by Wyndham (la-quinta), Motel 6 (motel-6), Red Roof Inn (red-roof). Example: brand="red-roof" or brand="Kimpton".
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dogrulebook_get_placeAlias of dogpolicies_get_place, kept for older clients.No findings
Why it is in this group
- The name "dogrulebook_get_place" says "get": a word for reading.
Description, as the server wrote it Alias of dogpolicies_get_place, kept for older clients. The full record for one place you already know by id: every dog rule with its display text, the rules list, and each source with its URL, publisher, capture date and quote. Full rules and sources for one place: every fact with its display text, the rules list, and each source with its URL, publisher, capture date and quote. Use after dogpolicies_search_places or dogpolicies_find_hotels, which return ids. Example: id="carmel-beach".
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dogrulebook_get_ruleAlias of dogpolicies_get_rule, kept for older clients.No findings
Why it is in this group
- The name "dogrulebook_get_rule" says "get": a word for reading.
Description, as the server wrote it Alias of dogpolicies_get_rule, kept for older clients. One rule (a fee, a leash rule, a weight limit) by its stable id, with its value, the source it cites, the quote, its confidence, the date it was verified and its freshness, plus the place's citation line. Rule ids look like "rul_<place uid>_<kind>" and appear in every place result as rule_records.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dogrulebook_search_placesAlias of dogpolicies_search_places, kept for older clients.No findings
Why it is in this group
- The name "dogrulebook_search_places" says "search": a word for reading.
Description, as the server wrote it Alias of dogpolicies_search_places, kept for older clients. Search parks, beaches, trails, hotels, campgrounds and cabin resorts in California and Nevada by name, location and dog rules. Returns one page of places with a one-line answer ("Yes, on a leash no longer than 6 feet."), status (yes, yes_restricted, no, varies), verification date and page URL. Use dogpolicies_get_place for full rules and sources, and dogpolicies_find_hotels to check a specific dog's weight and budget at hotels. Examples: - "Off-leash beaches near San Diego" -> type="beach", off_leash=true, near={lat:32.72, lon:-117.16} - "Can I bring my dog to Point Lobos?" -> query="Point Lobos" - "State parks in Marin County that allow dogs" -> type="park", county="Marin", dogs_allowed=true - "Lake Tahoe beaches in Nevada that allow dogs" -> type="beach", state="NV", dogs_allowed=true - "Off-leash dog parks in Las Vegas" -> type="park", off_leash=true, county="Clark", state="NV" - "RV parks in Fresno County that take dogs" -> type="campground", county="Fresno", dogs_allowed=true - "Dog-friendly cabins in June Lake" -> type="cabins", query="June Lake", dogs_allowed=true - "Restaurants with a dog-friendly patio in Alameda" -> type="restaurant", query="Alameda"
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.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data or outbound.
- Reads private data0
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write5
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out0
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
The server marks "dogpolicies_route_stops" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "dogpolicies_route_stops" says "stop": a word for a change.
The server marks "dogrulebook_route_stops" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "dogrulebook_route_stops" says "stop": a word for a change.
The description is 2,291 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...we stop?" -> route="i-80-nevada", near={lat:39.53, lon:-119.81}, direction="east""
The description is 2,349 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...we stop?" -> route="i-80-nevada", near={lat:39.53, lon:-119.81}, direction="east""
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 0.2.5. Values in angle brackets are yours to fill in.
claude mcp add --transport http dogpolicies https://dogpolicies.com/mcp/claude mcp add --transport http dogpolicies https://dogpolicies.com/mcp/Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__dogpolicies__dogpolicies_search_places",
"mcp__dogpolicies__dogrulebook_search_places",
"mcp__dogpolicies__dogpolicies_get_place",
"mcp__dogpolicies__dogrulebook_get_place",
"mcp__dogpolicies__dogpolicies_compare_places",
"mcp__dogpolicies__dogrulebook_compare_places",
"mcp__dogpolicies__dogpolicies_find_hotels",
"mcp__dogpolicies__dogrulebook_find_hotels",
"mcp__dogpolicies__dogpolicies_get_brand_policy",
"mcp__dogpolicies__dogrulebook_get_brand_policy",
"mcp__dogpolicies__dogpolicies_browse_answers",
"mcp__dogpolicies__dogrulebook_browse_answers",
"mcp__dogpolicies__dogpolicies_get_rule",
"mcp__dogpolicies__dogrulebook_get_rule"
],
"ask": [
"mcp__dogpolicies__dogpolicies_near",
"mcp__dogpolicies__dogrulebook_near",
"mcp__dogpolicies__dogpolicies_plan_trip",
"mcp__dogpolicies__dogrulebook_plan_trip",
"mcp__dogpolicies__dogpolicies_route_stops",
"mcp__dogpolicies__dogrulebook_route_stops",
"mcp__dogpolicies__dogpolicies_changes_since",
"mcp__dogpolicies__dogrulebook_changes_since",
"mcp__dogpolicies__dogpolicies_changes_near",
"mcp__dogpolicies__dogrulebook_changes_near",
"mcp__dogpolicies__dogpolicies_report_correction",
"mcp__dogpolicies__dogrulebook_report_correction"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as dogpolicies. Review it before you use it.
Capability tags behind 5 rules
- mcp__dogpolicies__dogpolicies_get_place untrusted-input
- mcp__dogpolicies__dogpolicies_browse_answers untrusted-input
- mcp__dogpolicies__dogrulebook_browse_answers untrusted-input
- mcp__dogpolicies__dogpolicies_report_correction untrusted-input
- mcp__dogpolicies__dogrulebook_report_correction untrusted-input
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/io.github.xultrax-web/dogpolicies-mcp/verify?hash=d390d852dbe4de20a57709d1a4dff2e641509e99a9190dcdfd8e260e9f5aeea2" | jq -e '.changed == false'Pinned hash d390d852dbe4, from Nov 1, 2026, 07:17 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/io.github.xultrax-web/dogpolicies-mcp/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/io.github.xultrax-web/dogpolicies-mcp)Source: MCP Registry · repository. Synced Nov 1, 2026, 07:17 UTC.