Skip to content
FreeInvoices

Microsoft Copilot and GitHub Copilot invoice generator

Updated

Microsoft Copilot can turn an Outlook email or an Excel table of hours into invoice JSON that you paste into the FreeInvoices import box. GitHub Copilot agent mode in VS Code can call the FreeInvoices MCP server directly and hand back a link that opens the invoice pre-filled.

Two paths, two tools

Microsoft Copilot (the app and Copilot inside Microsoft 365) and GitHub Copilot are different products, and they connect to FreeInvoices differently.

  • Microsoft Copilot: ask for JSON, copy the reply, paste it into the import box. Nothing to install or configure.
  • GitHub Copilot in VS Code: add the FreeInvoices server to an MCP config file, then ask agent mode to invoice from a timesheet, a CSV or your git log. It calls the create_document tool and returns a link.

Microsoft Copilot: draft from an email or an Excel table

The import box accepts any chat reply, so it works with Copilot. In the FreeInvoices editor sidebar, open the panel "Import from ChatGPT, Claude…" and press Copy prompt. Paste that prompt into Copilot, then add your details after "Details:".

Two sources suit Copilot well. In Outlook, Copilot can summarize an email thread and pull out key points, so a client thread that ends in "please invoice the 12 days we agreed" gives it enough to work from. In Excel, Copilot works with data formatted as a table, so a sheet of dates, tasks and hours can be summed into line items.

  1. In FreeInvoices, open the import panel in the editor sidebar and press Copy prompt.
  2. In Copilot, paste the prompt. After "Details:", paste the email text or the rows from your Excel table, and add anything missing (your address, the currency, your hourly rate).
  3. Copy Copilot's whole reply. Code fences and surrounding prose are fine; FreeInvoices parses from the first { to the last }.
  4. Paste it into "Paste the AI reply" and press Fill in document. Your previous draft is saved to local history first.
  5. Check the numbers, add a logo, and press Download PDF.

Check what Copilot gives back

Chat models sometimes return amounts with currency symbols, dates in a local format, or one lump total instead of line items. The prompt asks for plain numbers and YYYY-MM-DD dates, but read the filled-in invoice before you send it. If a rate is wrong, fix it in the editor instead of asking Copilot again.

If the JSON says "type": "receipt" (or quote, proforma, credit-note, purchase-order), the matching generator page opens instead of the invoice page.

Microsoft Copilot and MCP

This guide covers Microsoft Copilot through the import box only. Microsoft documents MCP for Copilot Studio agents: the MCP wizard on an agent's Tools page asks for a server name, description and URL, supports the Streamable transport (not SSE), and offers None, API key or OAuth 2.0 authentication. The FreeInvoices endpoint, https://freeinvoices.app/mcp, is Streamable HTTP with no authentication, so it fits those options, but we have not tested it in Copilot Studio.

Copilot Studio is for building your own agents, and Microsoft notes that generative orchestration must be turned on to use MCP there. For a one-off invoice, the import box is quicker.

GitHub Copilot in VS Code: add the MCP server

VS Code's editor-managed MCP format reads .vscode/mcp.json in your workspace, with a top-level servers object and "type": "http" for remote servers. Create the file in your project root:

{
  "servers": {
    "freeinvoices": {
      "type": "http",
      "url": "https://freeinvoices.app/mcp"
    }
  }
}
.vscode/mcp.json. No headers or keys are needed because the server has no authentication.

Newer VS Code config and the org policy

VS Code's current docs say the Local harness, which uses the .vscode/mcp.json format above, is deprecated and will be removed in February 2027. For new setups they recommend the Copilot harness, which reads a portable mcpServers format from .mcp.json at the workspace root (the docs say that workspace file is offered when the experimental chat.mcp.workspaceRootConfig.enabled setting is on) or from ~/.copilot/mcp-config.json.

If you use Copilot through a work account, check the policy. Organizations and enterprises control MCP with the "MCP servers in Copilot" policy, which is disabled by default. It applies to Copilot Business and Copilot Enterprise members of an organization that configures it; GitHub says Copilot Free, Pro, Pro+ and Max users are not governed by it. If you are on a Business or Enterprise seat, ask your admin to enable it before the server will work.

After saving the file, run MCP: List Servers from the Command Palette to see the server controls, and review any trust prompt before accepting it. Then use Copilot chat in agent mode and ask for an invoice. The same server in the Copilot harness format:

{
  "mcpServers": {
    "freeinvoices": {
      "type": "http",
      "url": "https://freeinvoices.app/mcp",
      "tools": ["*"]
    }
  }
}
.mcp.json (Copilot harness format)

Worked example: invoice from a timesheet CSV

A freelancer keeps hours.csv in the repo. Three rows, billed at 85 GBP an hour:

  • Prompt in agent mode: "Read hours.csv and create an invoice with the freeinvoices tool. From Northwind Dev Studio, 12 Mill Lane, Bristol BS1 4DJ. Bill to Harbor Coffee Co., 88 Quay Street, Bristol BS1 5TT. Number INV-2026-014, dated 2026-11-13, Net 15, GBP, 85 an hour, 20% VAT."
  • Copilot reads the file, builds three line items (18.5, 6 and 4.25 hours at 85) and calls create_document.
  • The tool replies with a link plus totals: subtotal 2,443.75, VAT 488.75, total 2,932.50 GBP, balance due 2,932.50.
  • Open the link, add your logo and press Download PDF. Compare the totals with the hours in the CSV before you send it.
date,task,hours
2026-11-03..07,Checkout page rebuild,18.5
2026-11-10,Stripe webhook fixes,6
2026-11-11..12,Code review and QA,4.25
hours.csv

What goes where

  • Import box: your pasted JSON is parsed in your browser and never sent to FreeInvoices. Microsoft sees whatever you type into Copilot.
  • MCP: the invoice details are sent to freeinvoices.app/mcp so it can build the link and compute totals. The tool is read-only, stores nothing and logs no arguments. The link carries the data in the URL fragment after #, which browsers do not send to servers.
  • GitHub Copilot sees the files and prompts you give it in VS Code, including the CSV in the example.

Example prompts

  • “Use the freeinvoices tool to invoice Harbor Coffee Co. for the hours in hours.csv at 85 GBP an hour, 20% VAT, Net 15.”
  • “Read the last 30 days of git log for this repo, group the commits into three billable work items, and create a freeinvoices invoice at 600 USD per item.”
  • “Turn this email thread into JSON for freeinvoices.app: the client agreed 12 days at 450 EUR plus 21% VAT, due in 30 days.”
  • “Sum the Hours column in this Excel table by project and give me JSON for freeinvoices.app with one line item per project at 70 USD an hour.”
  • “Create a freeinvoices quote, not an invoice, for the three tasks in TODO.md at fixed prices I will give you.”

FAQ

Does Microsoft Copilot need the MCP server?

No. Copy the prompt from the import box, paste Copilot's reply back, and press Fill in document. That works with any chat app and needs no setup.

Why is my MCP server not working in VS Code with a work account?

On Copilot Business and Copilot Enterprise, the organization's "MCP servers in Copilot" policy is disabled by default and must be enabled by an admin. Personal Copilot Free, Pro, Pro+ and Max plans are not governed by that policy.

Should I use .vscode/mcp.json or .mcp.json?

VS Code's docs say the Local harness that reads .vscode/mcp.json is deprecated and will be removed in February 2027, and recommend the Copilot harness files for new setups. Both snippets above point at the same server.

Can I ask Copilot to write the invoice link itself?

No. Models cannot reliably encode the link data. Use the import box for chat replies, or the MCP tool, which builds the link for you.

Sources

FreeInvoices is independent and not affiliated with or endorsed by Microsoft Copilot and GitHub Copilot'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 →