mcp-bill-of-sale
This MCP server records and manages bills of sale locally, from draft through finalized signing copy and printable output.
Create a bill of sale with seller, buyer, item, identifiers, price, date, warranty, as-is terms, and notes (
sale_create).Edit any draft before signing, including clearing optional fields (
sale_update).Freeze a draft into the final signing copy; finalized documents can no longer be edited (
sale_finalize).List, read, and delete bills of sale, with confirmation required to delete finalized documents (
sale_list,sale_get,sale_delete).Render documents as Markdown, self-contained HTML for print-to-PDF, or both, with signature lines and DRAFT watermark on drafts (
sale_render).Summarize counts and total value per currency, keeping drafts and finalized records separate (
sale_summary).Check license status and activate a Pro key offline (
license_status,license_activate).Store data locally with no account or network calls; free tier limits open drafts to 10 and finalized documents to 5, with unlimited rendering/reading/listing/summarizing.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-bill-of-sale Create a bill of sale: 2015 Honda Civic, VIN 1HGCM82633A004352, to Jane Doe for $8,500."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-bill-of-sale
MCP server for a bill of sale generator: bills of sale for vehicles, equipment and stock with signature lines. Record a sale of equipment, a vehicle or stock and get a printable bill of sale with signature lines.
Works with Claude Desktop, Claude Code, Cursor and any Model Context Protocol client. Runs on your own machine, or hosted with no install.
Product page: https://mcp.zovo.one/s/bill-of-sale - what it does, the tools it exposes, and a live token endpoint.
Install
Hosted, nothing to install. Get a token from https://mcp.zovo.one/mcp/connect (the connect page) or https://mcp.zovo.one/mcp/token (the same token as JSON); a free anonymous one is issued on the spot and a Pro key works the same way. Then point an MCP client at https://mcp.zovo.one/mcp/bill-of-sale over streamable-http and send the token as Authorization: Bearer <token>.
If your client cannot set headers, put the token in the path instead: https://mcp.zovo.one/mcp/bill-of-sale/t/<token>. Both forms work. The bare URL with no token answers 401 on tools/call, so the token is not optional.
Claude Desktop, one click. Download bill-of-sale.mcpb from the latest release and double-click it.
From source. The mirror is self-contained: every @theluckystrike/* dependency is vendored, so a fresh clone builds with no extra setup.
git clone https://github.com/theluckystrike/mcp-bill-of-sale.git
cd mcp-bill-of-sale
npm install && npm run buildThen point your client at the built entry point:
{
"mcpServers": {
"bill-of-sale": {
"command": "node",
"args": ["/absolute/path/to/mcp-bill-of-sale/dist/index.js"]
}
}
}
@theluckystrike/mcp-bill-of-saleis not published on npm yet, so annpx -y @theluckystrike/mcp-bill-of-salecommand will fail. The three paths above are the working ones and each is exercised by CI.

Read-only mirror of mcp-servers/servers/bill-of-sale. See MIRROR.md.
In the official MCP Registry (io.github.theluckystrike/bill-of-sale).
Record a sale and get a signed-paper-ready bill of sale. Tell your assistant who sold, who bought, what the item is, with the VIN, serial number or IMEI where it has one, the price and the date, and the server writes the document: parties, item, price, an as-is clause for second-hand sales, any warranty in your own words, and signature lines for both sides. Work on it as a draft, finalize it into the frozen signing copy, and print it as Markdown or as a single self-contained HTML file that prints to PDF from any browser with no assets beside it. Everything stays on your machine; there is no account and no network call in this server at all.
Built by theluckystrike.
npm publish for @theluckystrike/mcp-bill-of-sale is pending, so npx -y @theluckystrike/mcp-bill-of-sale returns 404 today. Until then, a clone+build is the working path.
Related MCP server: signbee-mcp
Install
Claude Desktop
macOS ~/Library/Application Support/Claude/claude_desktop_config.json, Windows %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"bill-of-sale": {
"command": "npx",
"args": ["-y", "@theluckystrike/mcp-bill-of-sale"]
}
}
}Claude Code
claude mcp add bill-of-sale -- npx -y @theluckystrike/mcp-bill-of-saleCursor
~/.cursor/mcp.json (global) or .cursor/mcp.json (project), same entry as Claude Desktop.
Tools
tool | what it does |
| Record a sale and generate the bill of sale: seller, buyer, item with VIN/serial/IMEI where it has one, price in minor units, date. Returns |
| Change anything on a draft before signing: price, parties, item details, identifiers, the as-is clause, warranty, notes. Empty string clears an optional field |
| Freeze the draft into the signing copy. From here |
| Every bill of sale, newest first: id, status, date, item, buyer, seller, price. Filter to drafts or finalized |
| One bill of sale in full by its BOS number |
| Delete a draft outright; a finalized document needs |
| Print the document: Markdown, a self-contained HTML file for print-to-PDF, or both, with signature lines. Drafts carry a DRAFT watermark so a review copy cannot be signed by mistake |
| The book at a glance: draft and finalized counts, total value per currency. Currencies are never added together |
| Free or Pro, and the key |
Free vs Pro
Free | Pro | |
Open drafts | 10 | Unlimited |
Finalized documents | 5 | Unlimited |
Render to Markdown and HTML ( | Unlimited | Unlimited |
Read, list and summarize ( | Unlimited | Unlimited |
Delete ( | Yes | Yes |
The document itself is never metered. Whether you hold a signed record of the sale is the question this server exists to answer, and a free tier that withholds the document is a demo. What is metered is the volume of records held: ten open drafts and five finalized documents is a real year of side-business sales, not a trial. sale_delete is free for the same reason the cap is on records held: a draft typed in twice would otherwise cost a slot with no way back but a key.
Get Pro: https://mcp.zovo.one/buy/bill-of-sale, $19 one-time for this server, or $39 for the bundle.
How a sale flows
sale_createwith the facts. The seller defaults to the shared business profile's name when the profile has one, so the seller block is typed once for the whole suite.sale_renderprints the review copy, watermarked DRAFT.sale_updatefixes anything the buyer or seller spots.sale_finalizefreezes it.sale_rendernow prints the signing copy: sign the printed page or print the HTML to PDF, and both parties keep a copy.
Every amount is an integer number of minor units, a price is never a float, and dates are checked as real calendar dates. A VIN that is not 17 characters or an IMEI that is not 15 digits is stored as given but flagged in the response, because those are the two identifiers a buyer most often misreads.
Privacy
All data stays local, in ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/bill-of-sale/. Two files: sales.json, counter.json, plus rendered documents under documents/. Nothing is sent anywhere, there is no account, no API key and no network call in this server at all. License keys are verified offline.
The rendered document is a generic template, not legal advice. Bills of sale for vehicles, boats and regulated goods may have statutory form or filing requirements where the sale happens.
Built by theluckystrike. https://github.com/theluckystrike
Use these docs as an MCP server
Any MCP client (Claude, Cursor, Windsurf, VS Code) can read this repository's documentation directly via GitMCP - no install:
Docs MCP URL: https://gitmcp.io/theluckystrike/mcp-bill-of-sale
Available Tools
10 toolslicense_activateActivate licenseA
Activate a Pro key (MCPL1.xxx.yyy) from checkout: verified offline against a built-in public key, saved to your config file. A wrong, malformed or expired key is refused, unsaved. license_status reads it back.
Inputs: key (required).
license_statusLicense statusA
Report this server's licence state: product, tier free or pro, licence id, expiry, the key source and the upgrade URL. No arguments, no network. Explains a free-tier refusal; license_activate installs a key.
Inputs: no named parameters.
sale_createRecord a saleA
Record a sale and generate the bill of sale: who sold, who bought, what item (with VIN, serial or IMEI where it has one), the price in minor units and the date. Returns the BOS-YYYY-NNNN number of the draft. The draft can still be changed with sale_update; sale_finalize freezes it into the signing copy and sale_render prints it. Free tier: 10 drafts.
Inputs: currency (required), buyer_name (required), price_minor (required), item_description (required), +19 more.
sale_deleteDelete a bill of saleA
Delete a bill of sale by its BOS number. A draft goes outright. A finalized document needs confirm_finalized true, because it is the local copy of a record the buyer may hold. The BOS number is never reissued, so a gap in the series is the record that a document was deleted.
Inputs: sale (required), confirm_finalized.
sale_finalizeFinalize the bill of sale for signingA
Finalize a bill of sale so it is ready to sign: the document is frozen from this call on, sale_update refuses it, and every later render is the signing copy without the DRAFT watermark. Free tier: 5 finalized documents.
Inputs: sale (required).
sale_getRead one bill of saleA
Read one bill of sale in full by its BOS number: both parties, the item and its identifiers, price, terms, and whether it is still a draft or the finalized signing copy.
Inputs: sale (required).
sale_listList bills of saleA
List every bill of sale, drafts and finalized, newest first: id, status, date, item, buyer, seller and price. Filter to drafts or finalized documents with status.
Inputs: limit, status.
sale_renderPrint the bill of saleA
Render a bill of sale as a clean printable document: Markdown, a self-contained HTML file ready for print-to-PDF, or both, with signature lines for seller and buyer. Drafts render with a DRAFT watermark so a review copy cannot be signed by mistake. Files default to the server's documents folder; pass out_path to choose. Free.
Inputs: sale (required), format, out_path, overwrite.
sale_summarySummarize the sales bookA
Summarize the book: how many drafts and finalized documents, and the total sold value per currency, drafts separate from finalized. Currencies are never added together. Free.
Inputs: no named parameters.
sale_updateChange a bill of sale before signingA
Change anything on a bill of sale that is not finalized yet: price, buyer, seller, item details, identifiers, the as-is clause, warranty or notes. Pass an empty string to clear an optional field. A finalized document cannot be edited.
Inputs: sale (required), vin, date, imei, +19 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Each tool has a distinct lifecycle or query role: create/update/finalize/render/list/get/delete/summary cover separate actions, while license_status and license_activate are clearly separated. No overlapping purposes or ambiguous boundaries are apparent.
All tools use snake_case with resource prefixes (sale_* and license_*), making the set predictable. The suffix choices are consistent enough for an agent to infer the target domain and action.
Ten tools is well-scoped for a bill-of-sale server with license management. Each tool earns its place, covering core document lifecycle plus necessary licensing checks.
The surface covers full lifecycle: create, read/list, update, finalize, render, delete, summarize, and license activation/status. No obvious gaps for the stated bill-of-sale domain.
Maintenance
Related MCP Connectors
Bills of sale for vehicles, equipment or phones: drafts and signing copies with signature lines.
For individuals and small businesses: draft quotes, quote + agreement docs and contracts to sign.
Publish Markdown as shareable documents, export PDF and Word, share, and send for e-signature.
Sales and billing for small businesses: leads, quotations, invoices, receipts and credit notes.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables creation and management of invoices with JSON storage and LaTeX-based PDF rendering. Supports draft creation and professional PDF generation through customizable LaTeX templates.Apache 2.0
- AlicenseAqualityCmaintenanceDocument signing for AI agents. Send markdown or PDF for two-party e-signing with a single tool call — handles PDF generation, email verification, and SHA-256 certified delivery.28 npmMIT
- AlicenseAqualityBmaintenanceEnables issuing credit notes and credit memos against an invoice or standalone as revisable drafts that can be finalized into frozen numbered documents, then rendered as Markdown or printable HTML with totals broken down by currency, reason and month. All amounts are handled as integer minor units and all data stays local, so nothing is sent anywhere.1057 npmMIT
- AlicenseAqualityBmaintenanceEnables freelancers to create, store, render, and manage service agreements with scope, deliverables, rate, termination, liability, and signature blocks, including a before-send checklist and clause library.946 npmMIT