# Use PostalForm with your agent.

[PostalForm](https://postalform.com/) (`postalform.com`) registers 7 WebMCP tools. 1 of 7 tools declares `readOnlyHint`, so an agent can invoke it through `tools.call`. The registry runs the tool in a fresh headless page on postalform.com and returns untrusted site content.

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

## Use PostalForm 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":"postalform.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":"postalform.com","tool":"postalform.get_workflow_state","input":"{}"}' --json
```

## Registered WebMCP tools

PostalForm publishes 7 tools on postalform.com; 1 declare `readOnlyHint`.

| Tool | What it does | Callable through Ghostget |
| --- | --- | --- |
| `postalform.get_workflow_state` | Return the current PostalForm home workflow state, including step, addresses, delivery settings, and submit readiness. | Callable read-only tool |
| `postalform.go_to_step` | Jump to a specific workflow step by index (0-6) or step id (upload, recipient_address, recipient_name, sender_name, sender_address, review, submission). | Listed for discovery; the registry allows read-only calls only |
| `postalform.set_delivery_options` | Update delivery and print options on review: color, double-sided, mail class, certified, and certified electronic return receipt. | Listed for discovery; the registry allows read-only calls only |
| `postalform.set_pdf_from_data_url` | Set the workflow PDF using a data:application/pdf;base64 URL, then optionally advance to the recipient-address step. | Listed for discovery; the registry allows read-only calls only |
| `postalform.set_recipient_details` | Update recipient name and/or recipient address in the home workflow. Can optionally advance to the next relevant step. | Listed for discovery; the registry allows read-only calls only |
| `postalform.set_sender_details` | Update sender name and/or sender address in the home workflow. Can optionally advance to the next relevant step. | Listed for discovery; the registry allows read-only calls only |
| `postalform.submit_order` | Submit the current order draft for checkout using the same validation and confirmation behavior as the review button. | 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 PostalForm changes its tools.
- **No account needed.** These calls are credential-free registry reads. For tools that need a session on postalform.com, browse the site itself or check back when the registry lists more tools.
