Skip to content
FreeInvoices

Gemini invoice generator: import or MCP with FreeInvoices

Updated

Gemini can turn a receipt photo, an email thread, or a few notes into JSON that FreeInvoices fills in with the import box, in any Gemini chat. Gemini CLI can also call the FreeInvoices MCP server directly, which returns a ready-to-open link.

Pick a path

There are two ways to use FreeInvoices with Gemini, and they differ in setup, not in the result. Either way you finish in your browser: review the document, add a logo, and click Download PDF.

  • Import box, no setup: works in the Gemini app on the web and on your phone, and in any other chat tool. You copy a prompt, paste Gemini's JSON reply back, and the editor fills in.
  • MCP server: Gemini CLI can connect to https://freeinvoices.app/mcp and call a create_document tool. It replies with a link that opens the pre-filled document.

Use the import box with the Gemini app

This path needs nothing installed and no account with FreeInvoices. The parsing happens in your browser. Google sees whatever you type or upload to Gemini, as with any Gemini chat.

  1. Open the editor at freeinvoices.app and expand the sidebar panel "Import from ChatGPT, Claude…". Click Copy prompt.
  2. In Gemini (gemini.google.com or the mobile app), paste the prompt, then add your details after "Details:". Gemini apps let you upload images, so a photo of a paper receipt can go in the same message. You can also paste the text of an email thread.
  3. Check the numbers in Gemini's reply. If it misread a quantity or price, tell it and ask for the corrected JSON.
  4. Copy the whole reply, code fences and surrounding sentences included. FreeInvoices parses from the first { to the last }.
  5. Paste it into the "Paste the AI reply" box and click Fill in document. If the JSON has "type": "receipt" (or quote, proforma, credit-note, purchase-order), the matching generator page opens. Your previous draft is saved to local history first.
Turn the details below into JSON for freeinvoices.app. Reply with only a JSON object using these fields (omit any you don't know):
type ("invoice" | "receipt" | "quote" | "proforma" | "credit-note" | "purchase-order"), number, date (YYYY-MM-DD), dueDate (YYYY-MM-DD), paymentTerms, reference, from, billTo, shipTo, currency (ISO code), items (array of {description, quantity, rate}), taxRate (percent), taxLabel, discountPercent, shipping, amountPaid, notes.
Use \n for line breaks inside from/billTo. Numbers must be plain numbers without currency symbols.

Details:
The prompt the Copy prompt button gives you

Receipts from photos and email threads

Gemini is useful here because the source material is usually messy: a crumpled till receipt, or a long thread where the price changed twice. Add one line after the details to tell it what you want, for example "This is a receipt for a client expense. Use the final agreed prices from the thread, and set type to receipt."

Always read the items and totals once before you click Fill in document. A model can misread a smudged digit, and the import takes the JSON at face value. The totals shown in the editor come from FreeInvoices' own math, not from Gemini.

Can the Gemini app use the MCP server?

Google's help page says the Gemini web app lets you add a custom app by entering an MCP server URL, under Settings, then Connected Apps (or Personal Intelligence, then Connected Apps), using the Custom apps field. Apps connected on the web also show up in the mobile app. Google lists these requirements for now: you must be 18 or older and in the US, signed in with a personal Google Account (work and school accounts are not supported), with Keep Activity turned on, and the custom app is English only.

The help page describes sign-in through Dynamic Client Registration or entered credentials. The FreeInvoices server has no authentication at all, and Google's pages do not say whether Gemini accepts a no-auth server, so we have not verified this route. If it works for you, the URL is https://freeinvoices.app/mcp. If it does not, use the import box above, which works for every account.

Add the MCP server to Gemini CLI

Gemini CLI reads MCP servers from mcpServers in settings.json. A remote Streamable HTTP server uses the httpUrl field. The user file is ~/.gemini/settings.json; the project file is .gemini/settings.json.

Status check before you start: Google's repo says free individual access and Google AI Pro and Ultra accounts moved from Gemini CLI to Antigravity CLI on June 18, 2026, and that Gemini CLI is now for organizations with Gemini Code Assist Standard or Enterprise licenses. It also still documents Gemini API key and Vertex AI sign-in. If you are on a consumer plan, the import box above is the supported path for you, and you should check the Antigravity docs for its own MCP configuration, which uses a separate mcp_config.json file and a serverUrl key rather than httpUrl.

gemini mcp add --transport http --scope user freeinvoices https://freeinvoices.app/mcp
gemini mcp list
Add it from the command line (user scope, available in every folder)

Or edit settings.json directly

The command above writes the same thing. Without --scope user it defaults to the project file. No headers or API keys are needed because the server has no authentication.

{
  "mcpServers": {
    "freeinvoices": {
      "httpUrl": "https://freeinvoices.app/mcp"
    }
  }
}
~/.gemini/settings.json

Worked example: invoice from a timesheet

Start gemini in a folder that contains your timesheet or notes and run /mcp to confirm freeinvoices shows as connected with the create_document tool. Then give it the job. Gemini CLI asks for confirmation before calling a tool unless you mark the server as trusted, so you will see the call before it goes out.

Read timesheet.csv. It has two weeks of hours at $95/hour: 32 hours in week 1 and 28.5 in week 2.
Create an invoice number 2026-014 from "Jack Dev, 12 Oak St" to Acme Co, dated 2026-11-30,
due 2026-12-14, in USD, with 8.25% sales tax. Use the freeinvoices create_document tool.
Prompt in Gemini CLI

What comes back

The tool replies with a link and computed totals. Subtotal is 60.5 hours at $95 = $5,747.50. Tax at 8.25% is $474.17. Total and balance due are $6,221.67. The server has no state: it stores nothing and logs no arguments. The document data rides in the part of the link after #, which browsers do not send to any server.

Open the link, add your logo, adjust anything, and click Download PDF. The PDF is made in your browser.

Open this link to review and download the invoice as a PDF:
https://freeinvoices.app/#data=...
Subtotal $5,747.50
Tax $474.17
Total $6,221.67
Tool result (link shortened)

What each path shares with Google

  • Import box: FreeInvoices processes the pasted JSON in your browser only. Google's Gemini sees everything you type or upload to it.
  • MCP in Gemini CLI: the document details are sent to freeinvoices.app/mcp so it can build the link. They are not stored. Google sees your prompts as part of the model call.

Example prompts

  • “Here is a photo of my receipt from the print shop. Turn it into FreeInvoices JSON with type receipt, paying attention to the tax line.”
  • “Summarize this email thread into an invoice for the agreed scope, using the last price we settled on. Reply only with the FreeInvoices JSON.”
  • “Read timesheet.csv and create a FreeInvoices invoice for 2026-11 with one line per project, at $95/hour, due in 14 days.”
  • “Make a quote for a 3-day workshop at 1,200 EUR per day with 20% VAT, valid 30 days, as FreeInvoices JSON.”
  • “Turn this list of items into a purchase order to Northwind Supplies, shipping to our warehouse, in FreeInvoices JSON.”

FAQ

Does Gemini send my invoice data to FreeInvoices?

No. In the import box path you paste Gemini's reply into your own browser tab and nothing is uploaded. Only the MCP path sends details to freeinvoices.app/mcp, and only to build the link.

Do I need Gemini CLI to use FreeInvoices with Gemini?

No. The import box works with any Gemini chat, on the web or on your phone, with no setup. The CLI route only adds a tool call that returns a ready-to-open link.

Why does my Gemini reply fail to import?

The import needs a JSON object. If Gemini wrote prose without a { ... } block, ask it to reply with only the JSON. Code fences and extra sentences around the JSON are fine.

Can Gemini build the link with the data in it by itself?

Do not ask it to. Language models cannot reliably encode the data that goes in the link. Use the import box in chat apps, or the MCP tool, which builds the link correctly.

Is Gemini CLI still available for personal accounts?

Per Google's repo, free individual access and Google AI Pro and Ultra moved to Antigravity CLI on June 18, 2026, and Gemini CLI now targets Code Assist Standard and Enterprise organizations. API key and Vertex AI sign-in are still documented there.

Sources

FreeInvoices is independent and not affiliated with or endorsed by Gemini's maker. Product names are trademarks of their owners.

Try it now

Open the editor and use Import from ChatGPT, Claude…, or connect the MCP server.

Open the invoice generator →