A stateless review service

Connect.
Prepare.
Inspect.

The website and five data MCP tools share the same bounded preparation logic. This guide describes the implemented service and its access limits.

Use it in a compatible host.

The candidate adds a native MCP Apps widget via open_owner_workspace. Browser UI preview uses the same widget in a labelled harness. Actual ChatGPT desktop/mobile rendering is untested. The earlier five-tool revision lacks this UI until activation.

For ChatGPT, open ChatGPT Plugins, use the plus button → Add custom MCP server, enter the HTTPS /mcp endpoint below, review the warning and choose Create as a plugin. Install the resulting plugin and select it with @ in a new chat. See the connection and privacy instructions and official quickstart. Package import does not establish registration; root must use a real registered technical ID for any .app.json binding.

Try the web demo directly, or connect a host that supports remote Streamable HTTP MCP to:

https://doggopokko.sandboxmcp.app/mcp

The endpoint is public and read-only. It has no authentication or paid API key. A compatible host must permit this configuration; account permissions and host policies may differ. The portable Agent Plugins 1.0 package contains the manifest, remote MCP configuration, owner-care skill and original branding. Importing it is a host-side step. Download availability does not establish marketplace approval or installation in your ChatGPT account.

  1. Connect the remote endpoint or import the package in a host supporting its format.
  2. Discover the five data tools (and, after candidate activation, open_owner_workspace), then call list_use_cases to select one of the seven workflows.
  3. Ask the owner for relevant history and unknowns. Obtain consent before sending owner-specific text.
  4. Use returned questions, source links and the unsent handoff. The owner decides whether to share it with a professional.
A photo remains optional. The website previews it locally. In ChatGPT, any host observation must be checked and confirmed by the owner before it is sent as text. This server accepts no image bytes, URLs or files and performs no image inference.

Five data tools and a native UI opener.

Shared data tools and HTTP routes
ToolPurpose and HTTP equivalent
open_owner_workspaceCandidate native MCP Apps opener, strict empty arguments {}. Returns the catalogue with the UI resource reference; requires candidate activation and a compatible connected host.
list_use_casesList seven preparation workflows. GET /api/use-cases.
prepare_owner_enquiryPrepare a sourced checklist and unsent note using owner context and consent:true. POST /api/prepare.
compare_published_pricesInspect dated local research pointers. This does not search live providers or confirm full prices. POST /api/compare.
calculate_care_costsCalculate owner-entered INR amounts. Unknown spending stays unknown; emergency reserve is separate. POST /api/calculate.
inspect_research_evidenceLook up known local evidence IDs without fetching source URLs. GET /api/evidence?ids=OWN-048,LEAD-009.

Read the full HTTP/MCP contract · Inspect actual discovered tool schemas · Check service version and revision

Example preparation request

{
  "use_case": "grooming",
  "consent": true,
  "context": {
    "city": "Bengaluru",
    "goal": "Ask for gentle grooming and a full quote",
    "handling_concern": "unknown"
  }
}

Send JSON to POST /api/prepare from the owned site. Unknown keys, unconfirmed photo descriptions and invalid bounds are rejected. Empty context:{} produces questions. Reported emergency or pain/skin-change concerns override routine advice and route to a veterinarian; negative or missing answers do not establish safety.

Know the review boundary.

The server performs local preparation, arithmetic and evidence lookup. It makes no diagnosis, medication, temperament or individual diet conclusion. It has no owner profile, paid image model, provider partner API, live slots, booking, messaging or purchases. Handoffs always have sent:false.

Owner request bodies and responses are not saved or logged by this service. Operational rate counters keep only IP, count and expiry in bounded memory for up to 90 seconds. Host/platform data handling is separate; leave out identifying details and raw records. JSON requests are limited to 32 KiB, with validation and rate protection.

The one curated Bengaluru grooming pointer is a dated research snapshot. A published baseline is not a complete quote, budget fit, partnership or verified qualification. After seven days, invalid dates or future dates, displayed price becomes unknown. Other cities or services may have no curated record.

Official SDK client checks verify protocol discovery and tool calls. Engineering tests do not establish clinical performance, owner usability, paid demand or account installation. The evidence graph and current owner manual keep the provenance and unanswered questions visible.

Reproduce and extend carefully.

Source and full run/test/deployment instructions are in the repository. Node 22 or newer is required. No credentials or database are needed for local review.

npm ci --ignore-scripts
npm test
npm start
npm run verify:mcp -- http://127.0.0.1:18183

The official client verifies legacy initialize negotiation and current protocol discovery, five data tools plus the candidate opener, all seven preparation workflows and malformed-input rejection. The package build requires a fresh actual successful public verification receipt.

Read the review and maintenance SOP. Reference: OpenAI plugin documentation, Agent Plugins manifest schema, official MCP TypeScript SDK. Implemented strict schemas remain authoritative for this service.