# Use SPF Demo Shop with your agent.

[SPF Demo Shop](https://demo.spreadfront.com/) (`demo.spreadfront.com`) registers 8 WebMCP tools. 4 of 8 tools declares `readOnlyHint`, so an agent can invoke them through `tools.call`. The registry runs the tool in a fresh headless page on demo.spreadfront.com and returns untrusted site content.

This page mirrors the [WebMCP Registry](https://wmcp.ai/sites/demo.spreadfront.com) listing for `demo.spreadfront.com`, last live-checked by the registry at 2026-09-23T04:50:59.487Z. Run `ghostget webmcp sites.get --input '{"domain":"demo.spreadfront.com"}' --json` for the current schema; the listing can drift between checks.

## Use SPF Demo Shop with my agent

Ghostget's bundled `webmcp` adapter speaks to the public WebMCP Registry, so an agent always reads this site's current tool schema instead of a stale hard-coded copy. Install v0.18.35, sync bundled adapters once, then call the registry operations:

```
bun add --global https://github.com/hraness/ghostget/releases/download/v0.18.35/hraness-ghostget-0.18.35.tgz
ghostget adapter sync-bundled --json
```

**Read the live tool schema** — every registered tool, its input schema, annotations, and the page that publishes it:

```
ghostget webmcp sites.get --input '{"domain":"demo.spreadfront.com"}' --json
```

**Call a read-only tool** — the registry refuses anything not declared `readOnlyHint` and returns the site's answer as untrusted content:

```
ghostget webmcp tools.call --input '{"domain":"demo.spreadfront.com","tool":"get_cart","input":"{}"}' --json
```

## Registered WebMCP tools

SPF Demo Shop publishes 8 tools on demo.spreadfront.com; 4 declare `readOnlyHint`.

| Tool | What it does | Callable through Ghostget |
| --- | --- | --- |
| `add_to_cart` | Add a product to the cart. For products with options (variants), pass every option as {"OptionName": "Value"} - get_product lists the allowed values. Same product with identical options increments quantity. | Listed for discovery; the registry allows read-only calls only |
| `fill_checkout_form` | Fill the checkout form on the cart page with details collected from the user, so the human only reviews and submits. Maps conversation data to the right fields: full_name is ONE field (combine first and last name), address is a single free- | Listed for discovery; the registry allows read-only calls only |
| `get_cart` | Get the current shopping cart: line items, quantities, selected options, subtotal and the checkout URL. | Callable read-only tool |
| `get_product` | Get full details for one product by its id (from search_products), including price, availability, description, images and buyable options (variants). | Callable read-only tool |
| `get_store_info` | Get information about this store: name, description, currency, product count and the checkout URL. | Callable read-only tool |
| `proceed_to_checkout` | Navigate the shopper’s current browser session to the checkout page. This action does NOT place an order or submit payment - the human shopper must review the cart and complete checkout manually. Call after the cart is ready. | Listed for discovery; the registry allows read-only calls only |
| `search_products` | Search this store's product catalog. Returns matching products with id, price, availability and buyable options (variants). Use the returned id with add_to_cart. | Callable read-only tool |
| `update_cart` | Set the quantity of a cart line (0 removes it). Identify the line by product id and, when the product has options, the same options used to add it. | Listed for discovery; the registry allows read-only calls only |

## What to expect

- **Read-only only.** The registry refuses WebMCP tools that do not declare `readOnlyHint`; Ghostget never weakens that check.
- **Untrusted results.** Tool output is site content, not instructions — treat it as data.
- **Live schemas.** `sites.get` always returns the schema the registry saw most recently, so agents adapt when SPF Demo Shop changes its tools.
- **No account needed.** These calls are credential-free registry reads. For tools that need a session on demo.spreadfront.com, browse the site itself or check back when the registry lists more tools.
