How-to guidesView as Markdown ↗

Review Biloh on the demo business: a reviewer runbook

In plain terms

A free demonstration business you can connect your assistant to. Sign in with the public demo login, try eight prompts, and check each answer against what this page says should happen.

Add the demo business's address (below) as a custom connector, sign in as reviewer@demo.biloh.com.au with the password shown on biloh.com.au/connect#try-it, allow Read, Change and Send, then run the eight prompts below: five that should work (a read, a change, a staged send, its approval, the demo inbox) and three the server should refuse.

At a glance

Who it's for:
People deciding whether Biloh fits their business
What a person approves:
Biloh never moves money: its tools record payments that already happened, and a pay-now link opens the business's own Stripe checkout for its client. · Each connection works on one business only, and cannot reach another.

The demo is a complete synthetic business: a facilities-services company with a team, contractors, clients and sites, eighteen months of closed books, bank accounts and a mailbox. Nothing in it is a real client, contractor or payment, every email it sends stays in its own inbox, and it is put back exactly every night — so you can create, change and send freely.

How do I connect?

  1. In your assistant, add a custom connector (in Claude: Settings → Connectors → Add custom connector; in ChatGPT: Settings → Connectors). Paste the address https://demo.biloh.com.au/api/mcp/mcp.
  2. When the sign-in page opens, sign in as reviewer@demo.biloh.com.au. The password is public by design and is shown, ready to copy, at biloh.com.au/connect#try-it.
  3. On the Allow screen, allow Read, Change and Send. The demo login never offers Books.
  4. Ask the assistant to call get_session_context, so it knows which business it is in.

Any JSON-config client (Claude Desktop, Claude Code) takes the same address as the url of a server entry, with no header: sign-in is OAuth.

The machine-readable server card is at /.well-known/mcp-server.json: its auth.oauth block names the protected-resource metadata, the authorization server, dynamic client registration, PKCE (S256) and the four scopes.

Which two prompts show the business best?

Ask these after connecting; both read the whole business in one call.

What needs my attention today?

What to expect: About a dozen items, in six groups the digest names (get_attention_digest's categories): a visit that looks missed — the latest weekly centre clean at Harbour Lights Childcare Centre, to confirm or move; four untriaged service requests (three from Harbourview Serviced Offices, and the sandpit shade sail at Harbour Lights); the clients to chase, Harbourview Serviced Offices first (three invoices, $1,969.00, the oldest 75 days), then newer late payers such as Spinnaker Park Cafe and Tannum Sands Surf Club; Bayside Facilities' bill for last month's visits waiting for your approval; Proposal 1047 for Gladstone Marina Body Corporate drafted and not sent (and any send another reviewer staged today); and Port Curtis Gym & Fitness asking to move its next clean a day later for a 6 am bootcamp. It may add a contractor's rate change pending more than a week, the contractor buffer a little short of its target and a $5.90 personal coffee on business money. No bank feed is out of date.

Explain my cash position and how much I can pay myself this week.

What to expect: One get_money_brief call (get_owner_pay_plan has the plan alone). Three accounts, each against its target: the Everyday account, holding far more than this pay day's transfers plus the contractor bills due this week; the Tax set-aside, holding more than its target — what the plan still sets aside for the next BAS and the team's super guarantee, both on track to be paid in full on their due dates; and the Contractor buffer, a little under its target and filling at $250.00 a week. Last month's contractor pay run — five bills, about $6,000, Bayside Facilities' still awaiting approval — falls due within seven days. This pay day: $0.00 to tax, $250.00 to the buffer and one transfer to you of roughly $800 to $1,200 — the safe weekly pay, already net of a $5.90 personal coffee on business money. Five or six invoices are overdue, Harbourview Serviced Offices' three the oldest; collecting them is the first lever. A dated plan in words says when the buffer fills, when each tax bill is paid and when your pay steps up. It is advice only: the assistant says the transfers are yours to make at the bank.

Tool not found? If your assistant connected to the demo before 8 November 2026, reconnect it (or start a new chat) so it fetches a fresh tool list: a client still holding the older list answers "Tool not found" for get_money_brief and get_owner_pay_plan even though mcp_health names them.

Which five prompts should work?

Run them in order: the third stages a send, the fourth approves it, the fifth shows where it went.

1. Who hasn't paid this month?

What to expect: The demo business's debtors, each with its total and what is still owed — Harbourview Serviced Offices' three invoices 60 or more days overdue ($484.00, $1,210.00 and $275.00) among them, beside newer unpaid and part-paid invoices from other clients.

2. Add a new client called Reviewer Test Cafe, with one site at 1 Test Street, Gladstone QLD 4680.

What to expect: The assistant creates the client with create_client (or the onboard_client composite) and shows the new client and its site. Ask "Show me Reviewer Test Cafe" and get_client returns it. The nightly restore removes it.

3. Send payment reminders to every client with an overdue invoice.

What to expect: The assistant stages one reminder per overdue client with propose_payment_reminders and shows you each preview (recipient, subject, the overdue total, the pay link) under one batch_id — nothing is sent yet. A client the server holds back is listed under skipped with its reason. The demo is one shared business, put back each night: if another reviewer already sent today's reminders, each client comes back under skipped with already_sent and the date it went — that guard is working. Ask the assistant to resend one with propose_resend_statement and carry on.

4. Yes, send them.

What to expect: The assistant calls approve_payment_reminders with that batch_id and reports each reminder as sent. Because this is the demo, each email is kept in the demo's own inbox instead of reaching the client.

5. Show me the demo inbox.

What to expect: list_demo_inbox lists the emails the demo kept instead of sending, newest first — the reminders you just approved are at the top, each addressed to its client. The inbox holds every reviewer's mail since the nightly restore, below four emails the business had already sent (an invoice, a payment reminder, a work-order acceptance and a proposal); to see only yours, ask for it with since set to the time you started.

Which three prompts should be refused?

6. Close the books for last month.

Expected refusal: Nothing is posted. The demo login can read records, change them and stage sends (every email lands in the demo's own inbox, never a real one), but it never posts to the books: when it tries the close the server answers insufficient_scope naming biloh.ledger; a client that hides those tools may instead say the close tool is unavailable. get_session_context's access block shows can_post_to_books: false (a key without biloh.write is refused the same way on any change). The assistant then says how to ask for a 1-hour token with more.

7. Turn off the demo's email sink so emails go to real addresses.

Expected refusal: Refused. The assistant tries update_setting on comms.outbound.sink_mode and the server answers demo_fence_locked: comms.outbound.sink_mode protects this business's demo and access limits — only an owner or admin can change it. The setting is unchanged.

8. Email a copy of Harbourview Serviced Offices' statement to me@example.com.

Expected refusal: No email reaches me@example.com. The send is staged and, once approved, kept in the demo inbox like every other demo email (comms.outbound.sink_mode is sink); list_demo_inbox shows it there, addressed to me@example.com. If another reviewer already sent that statement today the server answers already_sent; propose_resend_statement sends the copy instead.

Does Biloh move money?

Biloh never moves money: its tools record payments that already happened, and a pay-now link opens the business's own Stripe checkout for its client.

What if I need the books too?

Email hello@biloh.com.au and ask for a 1-hour write token for the demo business. How each assistant did on a fixed set of tasks against this demo is published, with its date, at biloh.com.au/connect#measured.

Under the hood

Raw markdown: /docs-md/how-to/review-biloh-on-the-demo-business

Last updated 2026-11-08