---
title: "Braidwater Rail"
description: "A regional-railway passenger-desk demo showing a website assistant grounded in the operator's own published conditions of travel and refund policy, opening a delay-repay or refund claim as a structured ticket through an in-chat form card, serving its service catalogue and ticket data over its own MCP server, registering its page actions over WebMCP, and reading back a signed-in passenger's own tickets through the identity hand-off."
last_updated: 2026-09-19
---

# Braidwater Rail

> A regional-railway passenger-desk demo showing a website assistant grounded in the operator's own published conditions of travel and refund policy, opening a delay-repay or refund claim as a structured ticket through an in-chat form card, serving its service catalogue and ticket data over its own MCP server, registering its page actions over WebMCP, and reading back a signed-in passenger's own tickets through the identity hand-off.

This is a Busymate AI integration demo — a working example, not a real store.
Real orders, payments and customer accounts do not exist here.

## Pages
- [Braidwater Rail — Refunds, delays and season tickets, sorted before your next train](https://zendesk.demo.busymate.ai/)
- [The Zendesk integration](https://busymate.ai/integrations/zendesk)

## Talk to it
A live Busymate AI assistant is embedded on every page, grounded only in
this site's own content. It cites its sources and says when it does not
know something instead of guessing.

## Act on it (agents)
This site exposes an MCP server at `https://zendesk.demo.busymate.ai/mcp` (JSON-RPC 2.0 over
HTTPS). The connection itself needs no credential; a tool marked below for
identified visitors additionally needs a signed proof of who is asking, and
answers for that customer alone. The tools:
- `list_services` — The full Braidwater Rail catalogue — every service on offer, with its code, what it covers, which plan it belongs to and how long it takes.
- `list_plans` — Braidwater Rail's plans and what each one costs, including which services each tier covers and who it suits.
- `search_knowledge` — Search everything Braidwater Rail publishes — the services, the plan detail and the answers on its FAQ — by keyword. Use this before answering from memory.
- `get_ticket` — Look up one ticket at Braidwater Rail by its ticket number together with the email it was raised under. Both are needed — a ticket number alone never returns anything.
- `my_tickets` — Every ticket belonging to the SIGNED-IN visitor at Braidwater Rail, with its current state and what happens next. Only ever call this for the person actually signed in — never for an address somebody types. (identified visitors only)
- `open_ticket` — Do NOT ask the person for these fields one at a time — calling this with whatever is already known IS how the form opens. Open a ticket at Braidwater Rail, and report back what was recorded. (MCP server only, not registered on the page)
- `highlight_service` — Scroll Braidwater Rail's catalogue to one entry and highlight it on the page the visitor is reading. Runs in the page; it changes what is on screen, not any record. (WebMCP page tool only, not on the MCP server)
- `open_desk_form` — Open Braidwater Rail's open a ticket form already on this page, with any known details filled in. Runs in the page — it opens a form, it does not submit one. (WebMCP page tool only, not on the MCP server)

Every tool above that is not marked otherwise is ALSO registered in the page
itself over WebMCP (`document.modelContext`, see `/agents.json` and
`/webmcp-catalog.json`), for a browser agent that never leaves the page.

## Identity
Signed-in visitors get personalized answers through a short-lived launch
proof this site mints itself — see https://busymate.ai/docs/guides/identified-visitors. A demo customer is provided on the page, so the identified experience — a person's own tickets — can be tested without a real account.

## Learn more
- [Connect your MCP server as assistant tools](https://busymate.ai/docs/guides/connect-mcp-server)
- [Ground the assistant in your own content](https://busymate.ai/docs/guides/knowledge)
- [Identified visitors](https://busymate.ai/docs/guides/identified-visitors)
- [Publish your page's actions (WebMCP)](https://busymate.ai/docs/guides/page-tools)
- [Ask with a form card, not a paragraph](https://busymate.ai/docs/guides/form-cards)
- [Human hand-off](https://busymate.ai/docs/guides/human-handoff-setup)
- [Busymate AI and Zendesk](https://busymate.ai/docs/guides/connect-mcp-server)

## Optional
- [llms-full.txt](https://zendesk.demo.busymate.ai/llms-full.txt): every page above, in full, in one request
- [agents.json](https://zendesk.demo.busymate.ai/agents.json): the agents.json v0.1.0 tool-actions manifest (agentsjson.org)
- [.well-known/agents.json](https://zendesk.demo.busymate.ai/.well-known/agents.json): this site's own machine-readable card (name/url/tools/identity/human hand-off)
- [webmcp-catalog.json](https://zendesk.demo.busymate.ai/webmcp-catalog.json): the page tools, readable without running the page
- [openapi.json](https://zendesk.demo.busymate.ai/openapi.json): the same tools as a real OpenAPI document
- [sitemap.xml](https://zendesk.demo.busymate.ai/sitemap.xml): every page with an honest last-modified date
- [MCP endpoint](https://zendesk.demo.busymate.ai/mcp): JSON-RPC 2.0 over HTTPS, the catalogue and policies open to anyone

## Sitemap
Every page on this site, as Markdown headings and links, no HTML required: [sitemap.md](https://zendesk.demo.busymate.ai/sitemap.md)