Skip to main content
Glama
InnarM

blank-invoice-maker-mcp

by InnarM

Blank Invoice Maker — MCP Server

An MCP server that lets any AI assistant (Claude, and other MCP clients) create invoices with Blank Invoice Maker — the free, no-signup, no-watermark invoice generator.

Ask your assistant to make an invoice, and it returns a link that opens blankinvoicemaker.com with the invoice fully pre-filled, ready to review and download as a PDF.

Privacy by design. The invoice data travels inside the link's URL fragment (#invoice=…) and is decoded entirely in your browser. Nothing is uploaded — consistent with Blank Invoice Maker's no-account, no-server-storage model.

Tools

Tool

What it does

list_templates

Lists the industry invoice templates available at blankinvoicemaker.com/templates (slug, name, description, URL).

create_invoice

Builds an invoice from your details and returns a pre-filled blankinvoicemaker.com link to review and download.

create_invoice example

"Invoice Globex LLC for 10 hours of design at $90/hr and one $120 hosting setup, net 14, in GBP."

The assistant calls create_invoice with:

{
  "business": { "name": "Acme Studio", "email": "hi@acme.studio" },
  "client": { "name": "Globex LLC", "email": "ap@globex.com" },
  "items": [
    { "description": "Design work", "quantity": 10, "unitPrice": 90, "unit": "hours" },
    { "description": "Hosting setup", "quantity": 1, "unitPrice": 120 }
  ],
  "currency": "GBP",
  "paymentTerms": "Net 14"
}

…and returns a https://blankinvoicemaker.com/#invoice=… link that opens the editor pre-filled.

Related MCP server: Invoice MCP Server

Installation

Requires Node.js 18+.

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "blank-invoice-maker": {
      "command": "npx",
      "args": ["-y", "blank-invoice-maker-mcp"]
    }
  }
}

Other MCP clients

Run the server over stdio:

npx -y blank-invoice-maker-mcp

How it works

create_invoice maps your input into the invoice structure used by blankinvoicemaker.com, compresses it with lz-string, and appends it to the site URL as a #invoice= fragment. Opening the link hydrates the editor in your browser — no signup, no watermark, no data leaving your machine.

Development

npm install
npm run build       # compile TypeScript to dist/
npm test            # build + run the unit tests
npm start           # run the server over stdio

Keeping templates in sync

src/templates-data.ts is generated from the Blank Invoice Maker template registry:

BIM_APP_DIR=/path/to/blank-invoice-maker npm run generate:templates

License

MIT © Blank Invoice Maker

Available Tools

2 tools
create_invoiceCreate an invoiceA

Create a professional invoice and return a link that opens it — fully pre-filled — in the free Blank Invoice Maker editor (https://blankinvoicemaker.com). No signup, no watermark. The user opens the link to review and download the PDF; all invoice data stays in their browser (it travels in the link's URL fragment and is never sent to a server).

ParametersJSON Schema
NameRequiredDescriptionDefault
businessYesYour business — the sender / payee
clientYesThe client being billed
itemsYesLine items (at least one)
currencyNoISO currency code, e.g. "USD", "EUR", "GBP". Default "USD"
invoiceNumberNoDefault "INV-001"
invoiceDateNoYYYY-MM-DD. Default: today
paymentTermsNoe.g. "Net 30", "Due on receipt". Default "Net 30"
dueDateNoYYYY-MM-DD. Default: derived from payment terms
taxesNoTax lines. Omit for a tax-free invoice
discountRateNoInvoice-wide discount in percent
notesNoFooter notes / payment instructions
documentTitleNoDocument title, e.g. "Invoice", "Proforma Invoice"
colorNoAccent colour as a hex code. Default #3b82f6
bankNoBank / payment details

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description takes full responsibility for behavioral disclosure. It reveals that the tool returns a link, that invoice data travels in the URL fragment and never reaches a server, and that no signup or watermark is involved. This is highly transparent about privacy and output, though it omits error handling or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each adding distinct value: purpose, benefits, and data privacy. It is front-loaded with the core action and remains concise without unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (14 parameters, nested objects, no output schema), the description covers the essential behavioral aspects and privacy model. However, it lacks specification of the return format (e.g., whether the response is a JSON object with a 'url' field), which would aid agent processing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the baseline is 3. The tool description does not add additional meaning beyond what the schema already describes for each parameter, so no extra credit is warranted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create a professional invoice'), the resource ('invoice'), and the output ('return a link that opens it'). It also distinguishes from the sibling 'list_templates' by specifying the purpose is to generate a new invoice, not list existing templates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool (e.g., when the user wants to create an invoice and get a link). It mentions benefits like no signup and no watermark. However, it does not explicitly state when to avoid this tool or provide alternatives beyond the implied 'list_templates' sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_templatesList invoice templatesA

List the industry-specific invoice templates available on Blank Invoice Maker (https://blankinvoicemaker.com). Returns each template's slug, name, description, and page URL. Use this to discover templates; build a custom invoice with create_invoice.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description fully carries the burden. It discloses that the tool lists templates (read-only) and returns specific fields, but does not mention any additional behavioral aspects like rate limits or data freshness. Still sufficient for a simple list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loading the purpose and linking to the sibling tool. No extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (zero parameters, no output schema), the description fully covers what it does, what it returns, and how it relates to the sibling tool. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and the schema covers 100% of the input. The description does not need to add parameter info; it correctly omits any.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists invoice templates, specifies the returned fields (slug, name, description, page URL), and distinguishes it from the sibling tool create_invoice by indicating its discovery purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to use this tool for discovering templates and to use create_invoice for building a custom invoice, providing clear context and an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 2 tool updatesv1.0.2
    • First observedcreate_invoice
    • First observedlist_templates

TDQS

A4.4/5.0
Disambiguation5/5

The two tools have entirely distinct purposes: one lists templates, the other creates invoices from them. There is no overlap or ambiguity.

Naming Consistency5/5

Both tools follow the consistent verb_noun pattern with snake_case (create_invoice, list_templates).

Tool Count3/5

Only 2 tools, which is the minimal end of reasonable for a focused domain. While the server accomplishes its core purpose, the small count feels thin.

Completeness5/5

The tool set covers the full intended workflow: discovering templates and then creating an invoice from one. There are no obvious gaps for the stated scope.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables the generation of professional PDF invoices and their distribution via email using customizable templates. It allows users to create, manage, and send invoices with standard business fields like tax rates and line items through natural language.
    3
    29
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    InvoiceXML brings e-invoice compliance to your AI agent. Create, validate, convert, render, and extract structured invoices across UBL (Peppol BIS Billing 3.0, used worldwide), CII, Factur-X, ZUGFeRD, and XRechnung, all checked against the EN 16931 standard and official Schematron rules. Ask your assistant to generate a compliant invoice, validate one for errors, or convert between formats, with n
    5
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/InnarM/blank-invoice-maker-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server