# Orizu Studio — Agent Quickstart

The prompt is the install. Paste the block below into Claude, ChatGPT, Cursor,
or any MCP-capable agent. Use the one-line install from the landing page for
OAuth, or replace the placeholder bearer key with one minted from
https://orizustudio.co.uk/products/ai-invoice-generator/dashboard.

## Install in Claude Code

```
claude mcp add --transport http orizu https://orizustudio.co.uk/products/ai-invoice-generator/api/mcp
# then: /mcp → orizu → Authenticate → browser → Allow
```

For Cursor, Codex, Windsurf, ChatGPT Desktop: paste the six-line JSON block
from the install snippet on the landing page.

## Endpoint

- **URL:** `https://orizustudio.co.uk/products/ai-invoice-generator/api/mcp`
- **Auth:** OAuth (browser sign-in) OR Bearer `ozs_live_…` / `ozs_test_…`
- **Transport:** MCP over Streamable HTTP — your agent will introspect the
  tool list on connect.

## Canonical agent prompt

```
You are my invoicing agent, running Orizu's MCP toolset.

Connect to: https://orizustudio.co.uk/products/ai-invoice-generator/api/mcp
Auth: Browser sign-in (OAuth) — your client will open a window and you
      click Allow. Or a bearer key starting with ozs_live_…

Defaults
  Currency: GBP
  Terms:    Net 14
  Branding: Use the workspace's saved letterhead

Behaviour
  When I describe a job — client, scope, amount — draft an invoice with
  the parsed fields. Always show me the draft before issuing or sending.
  If the client doesn't exist yet, create the record first.

  When I say "remind me", set a sensible reminder cadence (default:
  +3 days, +7 days, +14 days past due).

  When I say "recurring", confirm the schedule in plain English
  ("every 1st of the month, 12 occurrences") before committing.

  For multi-currency, fetch the live FX rate first and quote it inline.
  Never invent an FX rate.

Output style
  After every action, return: invoice number, public link, total in
  display currency, and the next thing I should review. Keep it short —
  I'm reading this on my phone.

Safety rails
  Never void or delete an invoice without explicit confirmation.
  Never mark an invoice paid without an explicit reference (txn id, wire ref, etc.).
  If a tool errors, surface the error verbatim — don't paper over it.
```

## Tools (26)

- `draft_invoice` — Create a new draft invoice from freeform brief + items.
- `get_invoice` — Fetch a single invoice by UUID or invoice number.
- `list_invoices` — List invoices. Filter by status, client, or issue-date range.
- `list_overdue_invoices` — Unpaid invoices whose due date has passed.
- `list_unpaid_invoices` — All not-yet-Paid invoices (Draft + Sent + Overdue).
- `update_invoice` — Edit fields on an existing invoice.
- `mark_invoice_sent` — Mark an invoice as Sent.
- `mark_invoice_paid` — Mark as Paid + auto-evaluate any conditional discounts.
- `mark_invoice_unpaid` — Undo a Paid mark (defaults to reverting to Sent).
- `delete_invoice` — Permanently delete an invoice.
- `attach_payment_link` — Mint a Stripe Payment Link for an invoice.
- `get_invoice_pdf_url` — Signed Supabase URL to the hosted PDF (90-day expiry).
- `get_invoice_share_link` — Short branded URL at /p/{slug} — never expires.
- `upsert_client` — Add or update a client in the address book.
- `list_clients` — Query the saved address book. Optional partial-match search.
- `get_client` — Fetch a single client by UUID.
- `list_recent_clients` — Clients synthesized from recent invoice history.
- `get_period_summary` — Aggregate totals + top clients + currency mix for a date range.
- `fx_rate` — Live FX rate (ECB-backed) between two currencies. Optional amount → returns converted figure.
- `send_invoice_reminder` — Send a payment-reminder email to the client. Three tone presets.
- `schedule_invoice` — Set up a recurring invoice template (weekly/monthly/quarterly/yearly).
- `list_schedules` — List active/paused/canceled recurring schedules.
- `pause_schedule` — Pause a recurring schedule — cron skips it until resumed.
- `resume_schedule` — Resume a paused schedule + re-arm the next run for today.
- `cancel_schedule` — Cancel a schedule permanently. Already-issued invoices untouched.
- `schedule_reminder` — Attach an auto-reminder cadence to an invoice. Cadence in days + escalating tone (friendly → neutral → firm). Auto-stops on Paid.
- `list_reminder_schedules` — List reminder schedules. Filter by status or invoice_id.
- `pause_reminder_schedule` — Pause a reminder schedule — cron skips it until resumed.
- `resume_reminder_schedule` — Resume a paused reminder schedule + re-arm the next run.
- `cancel_reminder_schedule` — Cancel a reminder schedule permanently. Already-sent reminders stay in the audit log.
- `get_usage` — Current billing-period PDF API + MCP usage vs plan caps.

## Defaults to assume unless told otherwise

- Currency: **GBP**
- Terms: **Net 14**
- Branding: workspace's saved letterhead

## Safety rails for any agent acting on a user's behalf

- Never call `delete_invoice` without explicit user confirmation.
- Never call `mark_invoice_paid` without an explicit reference (txn id, wire
  ref) — record it in the invoice notes or via update_invoice.
- For multi-currency, call `fx_rate` first and quote the rate inline. Never
  invent an FX rate from training data.
- Show the user the draft before calling `mark_invoice_sent` — once it's
  Sent, the assumption is the client has the document.
- Before `send_invoice_reminder`, confirm tone (friendly / neutral / firm)
  and check the invoice's days-overdue makes the chase appropriate.
- When setting up `schedule_invoice`, confirm the cadence + start date in
  plain English ("every 1st of the month, 12 occurrences") before committing.
- Surface tool errors verbatim — don't paper over them.

## Other agent-readable URLs on this site

- `/llms.txt` — top-level introduction to the site for any LLM that fetches it.
- `/.well-known/mcp.json` — machine-readable MCP discovery descriptor.
- `/sitemap.xml` — full URL inventory.

## Where this came from

Orizu Studio ships an MCP server with 33 tools as the recommended interface
for power users running their business through a chat window. The editor at
`/dashboard` exists as a second-class surface for visual review and hand-off
to non-technical collaborators (e.g. accountants).
