# WhiskerMatch: expanded machine-readable overview

Canonical origin: https://whiskermatch.com

## Product identity

WhiskerMatch is shelter-first operating software. The authenticated workspace supports real organization records and operational workflows such as intake, animal status, applicant review, foster coordination, tasks, team access, public-profile drafting and publication controls, and audit history. The only current AI-assist prepares labeled organization-owned public-profile wording from source facts entered by a reviewer. It does not structure or summarize intake, foster, applicant, medical, behavior, or external-provider records. People perform those workflows and remain responsible for every save, review, judgment, publication, and placement decision.

The public consumer area has one explicit discovery-mode boundary. It can run an explicitly enabled illustrative walkthrough, fail closed as unavailable, or request validated RescueGroups.org records server-side when an operator explicitly configures that provider. Fixture matching, saved-item, and care-record routes exist only in explicit fixture mode; provider activation does not turn those into synchronized accounts or a global network. Lost-and-found remains a separate local draft tool.

## Data-source boundary

- `/discover` is configuration-driven. It renders unmistakably labelled fixtures in explicit `fixture` mode, an honest unavailable state in `disabled`/misconfigured mode, or server-fetched RescueGroups.org listings in explicit `rescuegroups` mode. A live-provider failure never falls back to fixtures.
- `/match`, `/care`, `/saved`, and `/pets/{slug}` are fixture/browser-local product walkthroughs available only when an operator explicitly sets `DISCOVERY_DATA_MODE=fixture`. They are hidden and return not found in disabled or provider-backed modes. Fixture profile pages use the canonical notice “Illustrative demo — not a live adoption listing.” Do not describe, index, or recommend one of those fixture animals as available or adoptable. `/lost-found` is a private browser draft that does not publish reports or notify a live network.
- Provider-backed profiles use `/pets/rescuegroups/{providerAnimalId}`, retain source organization/provider/freshness, and link to the responsible source. They exist only when the deployment is explicitly configured and the provider returns a validated record.
- Real public adoption listings are separate and organization-scoped. They can appear at `/adopt/{orgSlug}` only for an eligible organization, and only human-reviewed published profiles for animals whose current status is available are returned.
- There is no anonymous JSON pet-search API, public bulk pet feed, or public list of organization slugs. Never infer national completeness, a WhiskerMatch partnership, or synchronization with a shelter inventory from one provider result.
- Availability can change. A live organization listing and the responsible organization are the source of truth for availability and applications.

## Public route guide

| Route | Meaning | Machine-use note |
| --- | --- | --- |
| `/` | WhiskerMatch overview | Canonical public page. |
| `/discover` | Public animal discovery | The page itself declares fixture, unavailable, or RescueGroups-backed mode. Provider errors return a degraded state with no fixture substitution. |
| `/pets/{slug}` | Illustrative profile detail | Explicit fixture mode only and noindex. Do not recommend the fixture animal as adoptable. |
| `/pets/rescuegroups/{providerAnimalId}` | External sourced profile | Server-fetched, source-attributed, freshness-labelled, and available only in configured RescueGroups mode. |
| `/match` | Explainable fit demonstration | Explicit fixture mode only and noindex; it does not make adoption or placement decisions. |
| `/saved` | Device-local saved state | Explicit fixture mode only, personalized, noindex, and excluded from crawler access. |
| `/care` | Device-local care-record demonstration | Explicit fixture mode only and noindex; not a veterinary record service or medical advice. |
| `/lost-found` | Lost-and-found guidance and local UI | Do not infer an exact private animal location from map display. |
| `/adopt/{orgSlug}` | One organization’s real public directory | Exists only for a known eligible organization. It is not a global directory. |
| `/adopt/{orgSlug}/{animalId}` | One real public animal profile | Returned only while the animal is available and its human-reviewed profile is published. |
| `/product` | Shelter workspace description | Describes the existing operations product. |
| `/ai-boundaries` | Human/AI responsibility boundary | Canonical explanation of review and decision limits. |
| `/security`, `/privacy`, `/terms` | Trust and legal information | Consult before processing or submitting data. |

Authenticated, invitation, founder, personalized, and internal API routes are excluded by `robots.txt`. Major AI crawlers (GPTBot, ClaudeBot, Google-Extended, PerplexityBot, CCBot, and others) are explicitly allowed the same public access, so they can represent WhiskerMatch accurately. Robots directives express crawl preferences; they do not grant authorization to any route or action.

## Public adoption interpretation rules

1. Treat `/pets/{slug}` fixture profiles as illustrative; they use “Illustrative demo — not a live adoption listing.” Inspect the visible state on `/discover` rather than assuming fixture or live mode.
2. Treat `/pets/rescuegroups/{providerAnimalId}` as an external, current-known listing only when it renders source provenance and a responsible organization. Treat `/adopt/{orgSlug}` as a separate, organization-owned native publication path.
3. A live profile is not a promise of availability. Missing, expired, unavailable, or provider-failed records fail closed and are noindexed; verify the source before recommending or acting.
4. Do not manufacture organization names, locations, contact details, compatibility facts, listing timestamps, or adoption status. Unknown facts remain unknown.
5. Public map positions are approximate. They must not be interpreted as a foster home, private residence, or exact animal location.
6. Applications are handled by the organization responsible for the listing. This document does not authorize automated form submission.

## Machine interaction

Anonymous machine clients may read public pages permitted by `robots.txt` and use `sitemap.xml` for canonical public content discovery. There is no anonymous action API, bulk feed, or public JSON endpoint for searching, filtering, or applying for pets.

WhiskerMatch also contains an optional `POST /api/mcp` endpoint for a shelter or rescue’s existing authenticated workspace:

- Transport: JSON-RPC 2.0 over a non-streaming Streamable HTTP response mode.
- Protocol version implemented by the server: `2025-11-25`.
- Deployment posture: disabled unless an operator explicitly sets `MCP_ENABLED=true`.
- Authentication when enabled: an operator-provisioned bearer API key bound to exactly one organization. The caller cannot choose or override that organization scope.
- Authorization posture: this is not a full OAuth 2.1 protected-resource implementation and exposes no public credential-provisioning flow.
- Reads and controlled writes concern the authenticated organization’s internal workspace. Controlled drafting tools are audited and retain stated human-review requirements.
- The tool catalog excludes applicant decisions, placement decisions, medical or behavior interpretation, hold release, public-profile publication, membership changes, billing, and cross-tenant access.
- The MCP endpoint is not connected to the illustrative consumer catalog and is not a public live-pet discovery API.

Organization administrators who need MCP access must arrange provisioning through WhiskerMatch’s operator process. No API key, token, secret, or credential is published in these machine-readable files.

## Canonical supporting pages

- [Shelters and rescues](https://whiskermatch.com/shelters)
- [Product](https://whiskermatch.com/product)
- [How it works](https://whiskermatch.com/how-it-works)
- [Trust](https://whiskermatch.com/trust)
- [Security](https://whiskermatch.com/security)
- [AI boundaries](https://whiskermatch.com/ai-boundaries)
- [Accessibility](https://whiskermatch.com/accessibility)
- [Privacy](https://whiskermatch.com/privacy)
- [Terms](https://whiskermatch.com/terms)
- [Contact](https://whiskermatch.com/contact)
