Show me Acme's unbilled billable expenses as invoice lines with a 10 percent markup.
Paste this into Claude with the server connected.
expense_to_invoice. It returns the project's unbilled billable expenses in exactly the
line-item shape invoice_create expects, per currency, with your markup applied. It marks
nothing as rebilled, and there is no option to make it, which is the design decision that matters
here.
Because you can preview and then not issue the invoice. If the preview closed expenses out, a conversation you abandoned would leave real costs marked as billed and invisible to the next preview. So the sequence is fixed: preview, create the invoice, then
Mark those expenses rebilled against INV-2026-0007.
Paste this into Claude with the server connected.
expense_mark_rebilled, and invoice_number is required. Marking by ids is
the precise route. Marking by project and date range additionally requires a currency, so invoicing
the EUR group cannot accidentally close the PLN one.
One invoice carries one currency. A week of USD hours, a EUR receipt and a GBP mileage line comes
back as three groups, each with its own expense_ids, and you pass one group. To get a
single invoice, supply target_currency and your own fx_rates, which puts the
rate you used on the record instead of a rate the server picked. The currency server's
fx_rates_for returns European Central Bank reference rates in that shape; free covers
history up to 90 days.
A stored rate of 0 is a rate, not a gap: an exempt receipt stays exempt. An expense
recorded with no rate at all holds a gross amount and is rebilled as-is with
tax_rate: 0 and a description saying so, precisely so a default rate on the invoice
cannot tax a receipt that already included tax. To split those older lines anyway, pass
assume_vat_rate and they come back flagged [vat assumed 23%].
The expense_settings default is applied when the expense is inserted and never
retroactively at rebill time. Changing that default in March does not rewrite what a receipt entered
in January meant.
| EUR | |
|---|---|
| Stock photo licence, logged gross | 48.00 |
| VAT split at 23 percent | net 39.02, VAT 8.98 |
| Rebilled net with 10 percent markup | 42.92 |
| On the invoice at 23 percent | 52.79 gross |
The split rounds the VAT rather than the net, so net plus VAT is exactly the gross and a half-cent of VAT rounds up instead of disappearing.
Logging is unlimited. expense_to_invoice handles 20 items at a time on free, markup
included; Pro removes the item cap and adds xlsx export and unlimited projects and rules. Twelve tools
on this server, counted from data/tools.json.
Yes, that is the default. Markup is a parameter you pass, not a setting that lurks. Passing zero and passing nothing produce the same lines.
The preview only returns unbilled billable expenses, so anything already closed out with expense_mark_rebilled is excluded. That is the whole reason the marker exists rather than a date cutoff, which would break the moment you invoiced out of order.
expense_update with rebilled: false clears both the marker and the invoice number. Changing the amount, currency or VAT rate of an already-rebilled expense is refused unless you pass unlink_rebill: true, because the invoice charged something else and quietly diverging from it is worse than a refusal.
No. It comes through in the line amount, not as a separate line, which is normally what you want. If you need it visible, put it in the line description before you create the invoice, which is free text.
All MCP servers and prices · All guides · Buy the bundle $39