Home · Guides

A bill of sale from chat

Record a sale: Kowalski Transport buys my 2019 Ford Transit, VIN WF0XXXTTGXKC12345, EUR 18,500, as-is, dated 2026-03-10.

Paste this into Claude with the server connected.

That is sale_create on the MCP Bill of Sale server (mcp-bill-of-sale). It stores the parties, the item, the price in whole minor units and the date, and returns a BOS-YYYY-NNNN id. The seller defaults to the shared business profile's name, so the seller block is typed once for the whole suite. Everything stays on your machine; there is no account and no network call in the server at all.

Proof it as a draft, then freeze it

Print the draft so they can read it. They spotted the price: it is 18,200. Fix it and finalize.

Paste this into Claude with the server connected.

sale_render prints the draft with a DRAFT watermark on both the Markdown and the HTML, so a review copy cannot be signed by mistake. sale_update changes anything while it is a draft, and sale_finalize freezes it: from there the edit tool refuses it by name, the watermark is gone, and the render is the signing copy. A finalized document needs confirm_finalized to delete, and the BOS number is never reissued, so a gap in the series is the record of a deletion.

The identifiers are checked, not refused

A VIN is 17 characters and an IMEI is 15 digits. A value that fails either check is stored as given and flagged in the response, because those are the two identifiers a buyer most often misreads, and a warning on the record beats a typo nobody was told about. A byte-identical repeat sale is refused before the free cap is consulted and names the id already stored; duplicate_ok is the way through for a genuine second sale of the same item.

Free tier and price

Ten open drafts and five finalized documents on free, with rendering, listing, reading, the summary and deleting unlimited on every tier. The document itself is never metered, because whether you hold a signed record of the sale is the question this server exists to answer. Pro is $19 once for unlimited drafts and finalized documents, or $39 for the whole collection.

It has no hosted endpoint, so it installs from the bill-of-sale.mcpb bundle on the latest release or from a clone and build, and the document it renders is a generic template, not legal advice: bills of sale for vehicles, boats and regulated goods can have statutory form or filing requirements where the sale happens.

Questions

Does the bill of sale leave my machine?

No. The server makes no network call anywhere, the store is two JSON files under your home directory, and rendering writes to the server's own documents folder or a path you name. You hand the printed page or the HTML file to the buyer yourself.

What is the difference between the draft and the finalized copy?

The draft renders with a DRAFT watermark and can still be changed with sale_update. Finalizing freezes the document, removes the watermark and refuses every later edit, because the finalized copy is the one the buyer may hold. sale_delete on a finalized document needs confirm_finalized.

Why is a bad VIN stored instead of refused?

Because a 16-character VIN is a misreading, not a different vehicle, and the buyer checking the record against the plate is exactly when the flag in the response matters. The check warns; it does not pretend the identifier is invalid when it is only mis-copied.

Can two people sign different versions?

The finalized copy is frozen, so the version printed is the version stored. The protection against an honest mix-up is the DRAFT watermark on every pre-finalization render: a review copy cannot be signed by mistake.

Related

All MCP servers and prices · All guides · Buy the bundle $39