A support assistant that closes the ticket itself.
Ledgerline's users kept asking the same questions — "where's my March VAT report?", "resend invoice #4821" — and every answer was a support ticket. They embedded the CMD+K widget, connected it to their own API through a hosted MCP, and the assistant now answers from their docs and takes the action in the same breath.
Fictional invoicing & accounting SaaS · 40 people · 9,000 customers
Support volume grew linearly with customers. 60% of tickets were questions the product could already answer — users just couldn't find the button. Docs existed; nobody read them.
Publish the API as an MCP
Ledgerline pasted their existing OpenAPI spec into CMD+K. Minutes later they had a hosted MCP server with tools like invoices.search and reports.vat — every call scoped to the calling user.
cmdk mcp create --spec ledgerline.yamlDrop the widget into the app
One script tag in their dashboard layout, one signed JWT from their backend. The assistant inherits the signed-in user's identity — row-level security just works.
<script src="…/embed/widget.js" …>Ground it in their knowledge
Help center and product docs became the knowledge base. Answers cite the exact article, so users learn the product while getting unblocked.
Let it act — with guardrails
"Resend invoice #4821" triggers invoices.resend as that user, behind a confirm step. Destructive tools stay read-only until Ledgerline flips them on per plan.
→ invoices.resend(id: 4821) · confirm?“The surprising part wasn't the answers — it was watching the assistant do the thing instead of linking to the settings page.”
Illustrative scenario — Ledgerline is a fictional company; numbers show the shape of the outcome, not a measured result.