Mcpserver Invoice Creator — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcpserver Invoice Creator (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A local-first MCP project for creating PDF invoices from SQLite data.
Initialize the local SQLite database:
npm run db:initAdd sample data:
npm run db:seedInspect available tables:
npm run db:inspectThe database is created at data/invoices.sqlite and is ignored by git.
The invoice template lives at templates/invoice.html with styles in templates/invoice.css.
It is based on the Beam Beam Digital PDF invoice design and uses:
BEAM BEAMDigital and With thanksThe create-invoice JSON input schema lives at src/schemas/create-invoice.schema.json.
An example payload lives at examples/create-invoice.json.
The required invoice input is intentionally minimal:
client_namework_carried_outhoursThe optional issue_date can override the current local date.
Run the local MCP server over stdio:
npm startCodex project-local MCP config lives at .codex/config.toml and registers this server as:
invoice_makerAfter adding or changing MCP config, restart Codex or open a new Codex thread so the tools are loaded.
Current tools:
add_clientupdate_clientlist_clientscreate_invoiceget_invoicelist_client_invoicesThe create_invoice tool treats an invoice request as a PDF request: it writes the invoice data to SQLite, renders the invoice PDF, and returns the invoice data with a pdf.path and pdf.url.
Render an existing invoice to a local HTML file:
npm run render:html -- 001This writes to output/invoice-001.html.
Render an existing invoice to a local PDF file:
npm run render:pdf -- 001This writes:
output/invoice-001.htmloutput/invoice-001.pdfPDF rendering uses puppeteer-core and the Chrome installed at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome. You can override the browser path with PUPPETEER_EXECUTABLE_PATH.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.