# Help widget demo

> A billing help agent reads charges over MCP and stops at a refund nobody has approved.

Pattern: Floating widget. Brand: Ledgerly. Tags: embed, MCP server, governed write, page tools, conversation list.

## What it shows

- **Connections**: a bring-your-own MCP server, where `get_account` and `list_charges` are discovered, not written
- **Approvals**: `issue_refund` governed as a write; until an operator approves it the agent is not given it, and says so instead of claiming a refund
- The drop-in `<mindset-agent>` element in a floating launcher, with `conversation-list` so customers can reopen earlier conversations
- Page tools `highlight_charge` and `open_invoice` acting on the billing table, with the page and account id sent as situational awareness

## Files

- `demos/ledgerly-help/demo.json`
- `demos/ledgerly-help/README.md`
- `demos/ledgerly-help/prompt/policy-rules.md`
- `demos/ledgerly-mcp/src/tools.ts`
- `src/demos/widget/index.tsx`
- `src/demos/widget/pageTools.ts`
- `src/content/demos/widget.ts`
- `src/content/demos/widget.md`

## More

- [Source](https://docs.mindset.ai/demos/widget/source)
- [How it works](https://docs.mindset.ai/demos/widget/how)
- [Put an agent on your page](https://docs.mindset.ai/docs/put-an-agent-on-your-page)
- [The mindset-agent element](https://docs.mindset.ai/docs/the-mindset-agent-element)
- [Connect a system](https://docs.mindset.ai/docs/connect-a-system)
- [Approve what agents can do](https://docs.mindset.ai/docs/approve-what-an-agent-can-do)
- [Test behavior](https://docs.mindset.ai/docs/test-an-agents-behavior)
