DogPolicies MCP server
dogpolicies.com · Verified dog rules for California and Nevada travel, for AI assistants. Install guide and example.
Listed in Claude's connector directory since November 4, 2026: add DogPolicies in Claude with nothing to install. DogPolicies is independent and not affiliated with Anthropic.
Ask Claude, Cursor or any MCP client "can my 70 lb dog stay at a Monterey hotel for under $50?", "what can my dog do in Carmel?" or "plan three nights in Tahoe with two dogs" and get an answer with the official source, the date it was checked and a link to the record. No API key, no account, no configuration: the data ships inside the package.
[npm]
[CI]
[license: MIT code, CC BY 4.0 data]
[MCP 2026-07-28]
[Node 20+]
What it answers
- Whether dogs are allowed at 2,400+ parks, beaches, trails, hotels, campgrounds, cabin resorts and restaurant patios, with leash rules, restrictions, weight limits and pet fees.
- Which hotel will take your dog: weight, number of dogs, nights and a fee budget, with the fee arithmetic spelled out ("2 dogs x 3 nights x $25 per pet per night = $150, capped at $100 per stay").
- A whole trip in one call: where to stay with this dog, what to do, where to eat, near any town or county.
- Dog-friendly stops along I-5, US-101, Highway 1, I-15, I-80, US-50, US-95 and US-93, in driving order. On I-5 in California, every stop sits on the I-5 centerline (s meters from San Ysidro) with its side, elevation and stretch; the next family stop (restrooms and a pet area stated by the source) in N miles; paired exits; and Caltrans conditions right now.
- Hotel chain pet policies (Motel 6, Red Roof, Kimpton and more) and which properties are exceptions.
- Side-by-side comparisons, and what changed since a date, everywhere or near a town.
- Areas the way travelers name them: East Bay, Lake Tahoe, Big Sur, Yosemite, Death Valley, the Mendocino Coast and the Bay Area's metros, as a filter, a place name in
near and plan_trip, and a resource.
Every fact comes from an official source (an agency page or the business's own policy) with the date it was checked. Every result starts with a one-line citation and ends with DogPolicies, dogpolicies.com, CC BY 4.0, verified {date}. When a source does not state something, the record says "not stated" instead of guessing.
Install
Pick the first one that fits; they all give the same server.
1. Claude (claude.ai or Claude Desktop): add the hosted connector, nothing to install
Open DogPolicies in Claude's connector directory and add it, then turn it on in the chat's tools menu. Or by hand: Settings → Connectors → Add custom connector → name DogPolicies, URL https://dogpolicies.com/mcp/ → Add. No Node.js, no file editing; works on every plan that has connectors.
2. Claude Desktop: one-click extension
Download dogpolicies-mcp-.mcpb from the latest release and open it (double-click, or Claude Desktop → Settings → Extensions → Install Extension). The data is inside; nothing else to install.
3. One command, any client
It finds the client's config on Windows, macOS and Linux, creates the file or the mcpServers key if missing, merges one entry without touching other settings, writes a timestamped backup first, refuses (and explains) a file it cannot parse, does nothing the second time, needs no admin rights, and prints the exact restart step. On Windows it writes the form that works (cmd /c npx ...). Requires Node.js 20.19 or newer.
4. One-click buttons (hosted server, no Node.js)
[Add to Cursor]
[Install in VS Code]
[Install in VS Code Insiders]
Both buttons add the hosted server at https://dogpolicies.com/mcp/; the client asks you to confirm.
5. Claude Code
6. By hand
Claude Desktop
Settings → Developer → Edit Config (the file is %APPDATA%\Claude\claude_desktop_config.json on Windows, ~/Library/Application Support/Claude/claude_desktop_config.json on macOS). If the file has no mcpServers key yet, add one:
On Windows use "command": "cmd", "args": ["/c", "npx", "-y", "dogpolicies-mcp"]. Then fully quit Claude Desktop (tray icon → Quit on Windows, Cmd+Q on macOS) and reopen it.
Cursor
~/.cursor/mcp.json (global) or .cursor/mcp.json in a project, same mcpServers block as above (Windows: the cmd /c form), or { "url": "https://dogpolicies.com/mcp/" } for the hosted server.
VS Code
~/.copilot/mcp-config.json (what the guided flow calls Global → Copilot Global) with the same mcpServers block, or from a terminal:
Windsurf
~/.codeium/windsurf/mcp_config.json, same mcpServers block, or { "serverUrl": "https://dogpolicies.com/mcp/" }.
Local HTTP
Troubleshooting
- It does not show up after installing. Restart properly. Claude Desktop must be fully quit: right-click the tray icon (Windows) or Claude menu → Quit (macOS); closing the window leaves it running. Cursor: toggle the server in Settings → MCP. VS Code: MCP: List Servers → Start. Windsurf: Refresh in the MCP panel.
- Check the server itself.
npx dogpolicies-mcp check loads the data and calls every tool; npx dogpolicies-mcp demo prints a real answer. If these work, the problem is the client's config or restart.
- Where the client's logs are. Claude Desktop:
%APPDATA%\Claude\logs\mcp.log and mcp-server-dogpolicies.log (Windows), ~/Library/Logs/Claude/ (macOS). Cursor: Output panel → MCP Logs. VS Code: MCP: List Servers → Show Output. Claude Code: claude mcp list, or --mcp-debug.
- "spawn npx ENOENT" on Windows. The client starts commands without a shell and
npx is a .cmd file. Use "command": "cmd", "args": ["/c", "npx", "-y", "dogpolicies-mcp"] (the installer writes this), or the hosted connector.
- Node version.
node --version must be 20.19 or newer (npx comes with Node). The hosted connector and the Claude Desktop extension need no Node at all (the extension uses Claude Desktop's own).
- Behind a corporate proxy.
npx needs to reach registry.npmjs.org once to fetch the package; set HTTPS_PROXY (npm reads npm config set proxy too) or use the extension or the hosted connector, which need no npm. The server itself makes one background request to dogpolicies.com for newer data and works offline without it; set DOGPOLICIES_OFFLINE=1 to never try.
- Still stuck? Open an issue with the output of
npx dogpolicies-mcp check, your OS and client: https://github.com/xultrax-web/dogpolicies-mcp/issues
Try it in the terminal
The demo output is the exact text an assistant receives:
Tools
Every tool returns readable markdown by default and structured JSON (response_format: "json"), with an output schema. Every record carries confidence (stated, inferred_from_agency, inherited_brand), freshness (fresh, due, stale, unreadable, computed for today), verified_at, url and source_urls. Errors set isError with a code: not_found, invalid, rate_limited, unavailable, offline. The full reference, generated from the code, is docs/tools.md.
Resources and prompts
Resources let a client attach a record without a tool call: dogpolicies://place/{id}, dogpolicies://brand/{id}, dogpolicies://answer/{slug}, dogpolicies://route/{id}, dogpolicies://area/{id} (all with completion), plus dogpolicies://about, dogpolicies://answers, dogpolicies://status and dogpolicies://corridor/i-5 (the I-5 stretches and every stop by s). Prompts give a client's slash menu the common trips: plan_dog_trip, check_hotel_for_dog, road_trip_with_dog, drive_i5_with_dog, what_can_my_dog_do_here, cite_a_rule, with town-name completion.
How the data stays current
The package ships a dated snapshot (as_of in every result). On start it serves that snapshot immediately, then checks https://dogpolicies.com/data/mcp-snapshot-v1.json in the background and, when a newer one exists, swaps it in and caches it for next time. Until the site is deployed there, that check fails fast and silently and the bundled data serves on its own. Set DOGPOLICIES_OFFLINE=1 (or pass --offline) to never use the network. All options: docs/configuration.md.
Privacy
- Nothing is collected. No telemetry, analytics or crash reporting; tool arguments are never logged above
debug level (stderr, your terminal).
- What leaves your machine: one conditional GET for the data snapshot on start, and, only when you use
dogpolicies_report_correction, the correction text you typed plus an optional contact you chose to give. Both go to dogpolicies.com over https and nowhere else. --offline stops both.
- Threat model and controls: docs/security.md.
License and attribution
- Code: MIT.
- Data: CC BY 4.0. Attribute "DogPolicies" with a link to https://dogpolicies.com/ and cite each record with its URL and verified date; every result includes a ready-made citation line. Chain-hotel names and locations come from OpenStreetMap under the ODbL and say so in
record_license.
- The rules are a sourced, dated summary, not legal advice. Confirm with the agency or the business before you go, especially when a record says
stale, unreadable or inherited_brand. Service animals are governed by the ADA, not these pet rules. Terms: https://dogpolicies.com/terms/
Report a wrong rule
Tell your assistant "that rule is wrong" and it can file a correction with dogpolicies_report_correction, or use the form on any record page. A person re-reads the official source, usually within a week; the record's verification history shows the result.
For developers
createServer(ctx) returns an McpServer from the official @modelcontextprotocol/server SDK for any transport. The reusable, dog-free core (dogpolicies-mcp/core) and how to build another server on it: docs/architecture.md. Versioning and deprecation: docs/versioning.md. Contributing: CONTRIBUTING.md.
Tests: npm test runs unit, contract, security, performance, surface, eval (33 real questions scored for tool selection and answer facts) and fuzz tests; npm run test:e2e packs the tarball and runs it over stdio. CI runs on Linux, macOS and Windows with Node 20, 22 and 24.