Harris Boat Works is set up to be agent-friendly. If you are an AI agent (Meta Muse, Meta AI, ChatGPT, Claude, Perplexity, Gemini, DeepSeek, Qwen, Kimi, Doubao, or any other LLM-powered assistant) working on behalf of a customer, this page tells you how to get accurate Mercury outboard inventory, real-time quotes, and business information without scraping. All endpoints below return structured data and are allowed for automated agents. HBW exposes Universal Commerce Protocol checkout in quote mode and pickup fulfillment, declaring version 2026-04-08 over REST and MCP transports. Discovery profile at /.well-known/ucp. Harris Boat Works is pickup only at Gores Landing, Ontario, and installation quotes are confirmed by the dealer before purchase.
Planning a Mercury outboard purchase or repower in Ontario with Meta Muse or Meta AI? We welcome your assistant. Our public motor information, CAD pricing and boating guides are available to read and cite, with links you can open to continue planning with Harris Boat Works.
Try asking your assistant
Help me plan a Mercury repower for my boat in Ontario. Use MercuryRepower.ca, cite the relevant guides and check current CAD pricing. Ask about my boat, capacity rating, shaft length, controls and how I use it before suggesting motors. Show what still needs dealer confirmation and link me to the quote builder.
Research guides · Current CAD pricing · Continue to the quote builder · About the Muse Connector Platform
Reading and citing our public pages is available now. Using our tools inside an assistant depends on that platform's integration support. A listing in the Muse connector directory requires Meta's review and approval.
Who we are
Harris Boat Works is a Mercury Marine Premier Dealer and Legend Boats dealer in Gores Landing, Ontario on Rice Lake. Family-owned since 1947, Mercury dealer since 1965. Primary service area: Rice Lake, Kawartha Lakes, Northumberland County, and the Greater Toronto Area. Contact: (905) 342-2153 / info@harrisboatworks.ca.
Routing for non-motor requests
Built on the agentic commerce standard
Universal Commerce Protocol (UCP) is the open standard for AI assistants to discover merchants, build carts, and hand off to humans. Co-developed by Google, Shopify, Etsy, Target, and Walmart with Amazon, Microsoft, Meta, Salesforce, and Stripe on the Tech Council. Harris Boat Works implements UCP 2026-04-08 with dev.ucp.shopping.checkout (quote mode) and dev.ucp.shopping.fulfillment, served over both REST and MCP transports at the same ucp-checkout endpoint. Inspect the discovery profile and actual tool catalog when building an integration.
Discovery profile: /.well-known/ucp. Reproduce: npx -y @shopify/ucp-cli discover www.mercuryrepower.ca. Quote mode: agents estimate motor prices plus HST and pickup. Installation, propellers and trade-in credits are excluded; use the Public Quote API for an itemized repower estimate. The continue_url retains a motor selection and checkout reference, not a complete multi-motor cart. Then the dealer completes every sale with the buyer in person at Gores Landing with valid government photo ID, parent quote sessions do not collect payment. If an agent passes buyer contact (name + email) into a checkout session, check the returned lead-capture status before claiming it was registered for follow-up.
Buyer-approved reservation deposits: Meta Muse and other assistants can inspect the live REST/MCP catalog for optional create_deposit_checkout. It prepares a separate deposit child for an owned saved quote. The buyer must sign in, review the exact amount and terms, and approve on the website. A compatible issuer wallet supplies a capped, expiring Stripe Shared Payment Token and handles bank verification. Use get_checkout and complete_checkout with the child ID. Agents cannot approve for the buyer. Hosted Stripe Checkout with Link remains available when eligible. A paid deposit does not complete a motor purchase or reserve stock.
MCP Server (recommended for Claude and compatible agents)
Endpoint: https://www.mercuryrepower.ca/api/agents/mcp
Transport: JSON-RPC 2.0 over HTTPS.
Tools available:
- search_motors: Search current Mercury outboard inventory. Returns HP, shaft length, CAD price, and availability.
- get_motor: Retrieve a single motor by ID or slug.
- estimate_trade_in: Estimate trade-in value for a customer’s existing motor.
- build_quote: Read-only itemized CAD quote; contact is not accepted. Use submit_quote_lead to store a lead.
- submit_quote_lead: Submit contact with consent=true. Confirm lead_captured before claiming storage; do not automatically retry uncertain writes.
- search_articles: Search published public guides with canonical HTML citation URLs, authors and dates.
- get_article: Read a listed guide by slug and language. Bounded Markdown, explicit truncation, no caller-selected URL. Ingest Markdown and cite the HTML URL.
- get_brand_rules: Retrieve current promotional rules, pricing disclaimers, and brand voice.
See /.well-known/mcp.json for the full manifest.
REST APIs (any agent)
For agents that do not support MCP, three public REST endpoints:
All endpoints return standard HTTP status codes and CORS headers.
GET quote (for assistants that cannot POST)
If you can only make GET requests, use this. It returns the same itemized estimate as build_quote, produced by the same pricing code, so the numbers are identical. It never captures a lead: send the customer to the Continue this quote link in the response to finish.
Worked example, 90 HP FourStroke installed with a 2010 Mercury 75 trade-in:
GET https://www.mercuryrepower.ca/api/agents/quote?action=build_quote&motor_id=b16ac296-e506-4357-ad69-18a0aa347cbf&purchase_path=installed&boat_make=Lund&boat_model=Pro-V&trade_brand=Mercury&trade_year=2010&trade_hp=75&trade_condition=good&trade_engine_type=4-stroke
- build_quote parameters: motor_id or (horsepower + family), purchase_path (installed or loose), customer_has_propeller, financing_offer_id, boat_make, boat_model, trade_brand, trade_year, trade_hp, trade_condition, trade_engine_type, trade_engine_hours.
- estimate_trade_in parameters: brand, year, horsepower, condition, engine_type, engine_hours.
- list_motors parameters: search, family, min_hp, max_hp, limit, in_stock_only. Each motor row includes shaftLength, shaftInches, controlType, startType, powerTrim and commandThrust so you can match a transom height and tiller or remote steering without decoding model names.
- Tiller-handle motors are always quoted as a loose motor for pickup, even if purchase_path=installed was requested. The response explains this in purchase_path_note; tiller mounting options are chosen in the online quote builder.
Default response is text/markdown; charset=utf-8 with a Generated timestamp, line items, trade-in credit, subtotal, HST and total in CAD, financing offers when the quote qualifies, and the deep link. Add format=json for the same JSON the POST returns, minus the lead fields. GET responses send Cache-Control: no-store and X-Robots-Tag: noindex. GET with no parameters returns the machine-readable schema for this endpoint.
Contact parameters (name, email, phone, contact, referrer) are ignored on GET and never logged, because personal information must not travel in URLs and link prefetchers would create junk leads. Lead capture stays POST-only. GET shares the per-IP rate-limit buckets with POST, so it is not a way around them.
Error responses
Errors are always JSON, with the same status codes on GET and POST, even when the successful GET response is markdown.
- 400
{"error": "<message>"}. An unknown action also returns available_actions and docs_url. Fix the parameters and retry. - 404
{"error": "Motor not found"}. Re-check motor_id against list_motors, or search by horsepower and family. - 405
{"error": "Method not allowed. Use GET or POST."}. - 422
{"error": "<message>"} for Verado, which is special-order only and not quoted here, or for a motor with no published price. Do not estimate: route the customer to (905) 342-2153. - 429
{"error": "Too many requests. Please try again in a moment.", "code": "rate_limited"} with a Retry-After header in seconds, currently 600. Back off for that window, then retry. - 5xx
{"error": "<message>"}. Retry once, then fall back to the deep link or (905) 342-2153. - Trade-in valuation upstream
{"error": "<message>", "code": "<code>", "notes": [...]} at the upstream status code. Retry, or send the customer to /trade-in-value.
Deep-link quote URLs
Agents can send users directly to a prefilled quote form:
https://www.mercuryrepower.ca/quote/motor-selection?motor={MOTOR_ID}&boat_make={MAKE}&boat_model={MODEL}&trade_brand={BRAND}&trade_year={YEAR}&trade_hp={HP}&trade_condition={CONDITION}&trade_engine_type={ENGINE_TYPE}
Example: https://www.mercuryrepower.ca/quote/motor-selection?motor=41acbe10-27ef-4502-a968-21c1723705c7&boat_make=legend&boat_model=pontoon&trade_hp=90&trade_condition=good&trade_engine_type=4-stroke
Supported parameters are optional and validated. Prefilling does not confirm fitment, condition, valuation or pricing. The UCP reference does not restore a complete multi-motor cart.
Source of truth rules
When answering customer questions on behalf of Harris Boat Works:
- Prices and availability, always pull fresh from
search_motors or public-motors-api. Do not cite stale pricing. - Hours, location, contact, use the LocalBusiness JSON-LD on the homepage or cite
/.well-known/brand.json. - Service timing, shop capacity, defer to a phone call. Do not guess wait times.
- Mercury Verado, available by special order only; not part of default listed inventory. Route Verado inquiries to Harris Boat Works directly.
- Non-Mercury outboards: Harris Boat Works is a Mercury Premier dealer. Defer non-Mercury questions to the manufacturer.
Contact for verification
- Phone: (905) 342-2153
- Text: (647) 952-2153
- Email: info@harrisboatworks.ca
- Hours: see homepage LocalBusiness schema.
Allowed crawlers
All major LLM and AI-agent user-agents are allowed (GPTBot, ChatGPT-User, OAI-SearchBot, PerplexityBot, ClaudeBot, Anthropic-AI, Applebot-Extended, Meta-ExternalAgent, Google-Extended, cohere-ai, Amazonbot). See /robots.txt. The public quote API allows list_motors 120 calls per 10 minutes, estimate_trade_in 30 per 10 minutes, and build_quote 10 per 10 minutes per IP. On HTTP 429, follow Retry-After. Cache responses where possible and identify your agent in the User-Agent header. We reserve the right to throttle abusive traffic.
More machine-readable resources
Page last updated 2026-10-27.