In-depth architectural comparison of the Bill of sale and PDFGate MCP Server MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
Bill of sale
Legal · Local stdio
Quality: 52/100 (Good) | Auth: No auth required
PDFGate MCP Server
Legal · Local stdio
Quality: 63/100 (Good) | Auth: API Key required
Verdict Summary: Choose Bill of sale if you need specialized Legal tools running via a local process. Choose PDFGate MCP Server if your workspace requires Legal integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
B
Choose Bill of sale when:
You need dedicated capabilities in the Legal domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: No auth required (Free / Open Source).
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 `BOS-YYYY-NNNN`. An identical repeat sale is refused unless you confirm it
sale_update
Change anything on a draft before signing: price, parties, item details, identifiers, the as-is clause, warranty, notes. Empty string clears an optional field
sale_finalize
Freeze the draft into the signing copy. From here `sale_update` refuses it and every render prints without the DRAFT watermark
sale_list
Every bill of sale, newest first: id, status, date, item, buyer, seller, price. Filter to drafts or finalized
sale_get
One bill of sale in full by its BOS number
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
Bill of sale is categorized under Legal and uses a local stdio subprocess. In contrast, PDFGate MCP Server belongs to Legal using local stdio subprocess. Select Bill of sale when you need capabilities focused on legal and PDFGate MCP Server when you require tools for legal.
Delete a draft outright; a finalized document needs `confirm_finalized: true`. The number is never reissued, so a gap in the series is the record of the deletion
sale_render
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
sale_summary
The book at a glance: draft and finalized counts, total value per currency. Currencies are never added together
license_status
Free or Pro, and the key
PDFGate MCP Server Tools (24)
generate_pdf
Generate a PDF from a URL or raw HTML. Provide either 'url' or 'html', not both.
upload_file
Upload a PDF to PDFGate so it can be referenced by other operations. Provide either 'filePath' (local path) or 'url'.
get_document
Retrieve metadata for a stored PDFGate document by its ID.
delete_document
Delete a PDFGate document.
flatten_pdf
Flatten an interactive PDF into a static, non-editable PDF. Creates a new document; does not overwrite the original.
extract_form_data
Extract form field values from a fillable PDF. Returns a JSON object mapping field names to their values.
add_form_fields
Add interactive form fields to a stored PDF — from placeholder tags (refined via fieldOverrides) and/or explicitly positioned fields.
compress_pdf
Compress/optimise a PDF to reduce file size without changing visual content.
protect_pdf
Encrypt a PDF with a password and optional permission restrictions. Produces a new document; the original is unchanged.
watermark_pdf
Apply a text or image watermark to a PDF. For type='text' provide 'text'; for type='image' provide 'watermarkImagePath'.
download_file
Download the raw PDF bytes of a stored document, returned as an embedded resource. For a shareable link instead, use get_document.
create_envelope
Create a signing envelope from one or more existing PDFGate documents. Each recipient is given either as email and name or as the recipientId of a stored recipient. Recipients marked embedded sign inside your application via create_embed_link and receive no emails. Use signingOrder to make recipients sign in sequence. Returns an envelope in 'created' status; call send_envelope to dispatch signing emails.