Put invoices into a checked Excel workbook: arithmetic, missing fields and duplicates flagged.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when the user wants invoices verified without making a file: whether net plus VAT equals the total, whether line items add up, which fields are missing, and which invoices look like duplicates. Returns the findings and totals per currency. Nothing is stored.
Every invoice, one entry each, with values exactly as printed on the document. Use null for anything not printed or not legible; never estimate.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http invoice-spreadsheets https://invoicestospreadsheets.com/api/mcp
Use this when the user wants invoices verified without making a file: whether net plus VAT equals the total, whether line items add up, which fields are missing, and which invoices look like duplicates. Returns the findings and totals per currency. Nothing is stored.
| Argument | Type | Description |
|---|---|---|
| invoices* | array | Every invoice, one entry each, with values exactly as printed on the document. Use null for anything not printed or not legible; never estimate. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"invoices"
],
"properties": {
"invoices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"net": {
"anyOf": [
{
"type": "number",
"maximum": 999999999999,
"minimum": -999999999999
},
{
"type": "null"
}
],
"description": "Invoice amount before VAT."
},
"vat": {
"anyOf": [
{
"type": "number",
"maximum": 999999999999,
"minimum": -999999999999
},
{
"type": "null"
}
],
"description": "Total VAT or sales tax."
},
"date": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
{
"type": "null"
}
],
"description": "Invoice date as YYYY-MM-DD."
},
"notes": {
"anyOf": [
{
"type": "string",
"maxLength": 5000
},
{
"type": "null"
}
]
},
"total": {
"anyOf": [
{
"type": "number",
"maximum": 999999999999,
"minimum": -999999999999
},
{
"type": "null"
}
],
"description": "Amount due including VAT."
},
"category": {
"anyOf": [
{
"type": "string",
"maxLength": 120
},
{
"type": "null"
}
]
},
"currency": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Za-z]{3}$"
},
{
"type": "null"
}
],
"description": "ISO 4217 code, e.g. GBP, USD, EUR."
},
"supplier": {
"anyOf": [
{
"type": "string",
"maxLength": 300
},
{
"type": "null"
}
],
"description": "Who issued the invoice."
},
"vat_rate": {
"anyOf": [
{
"type": "number",
"maximum": 999999999999,
"minimum": -999999999999
},
{
"type": "null"
}
],
"description": "VAT rate as a percentage when one rate applies to the whole invoice."
},
"po_number": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
],
"description": "The buyer's purchase order number, if printed."
},
"line_items": {
"type": "array",
"items": {
"type": "object",
"required": [
"description"
],
"properties": {
"net": {
"anyOf": [
{
"type": "number",
"maximum": 999999999999,
"minimum": -999999999999
},
{
"type": "null"
}
],
"description": "Line amount before VAT."
},
"vat": {
"anyOf": [
{
"type": "number",
"maximum": 999999999999,
"minimum": -999999999999
},
{
"type": "null"
}
],
"description": "VAT or sales tax on this line."
},
"category": {
"anyOf": [
{
"type": "string",
"maxLength": 120
},
{
"type": "null"
}
]
},
"quantity": {
"anyOf": [
{
"type": "number",
"maximum": 999999999999,
"minimum": -999999999999
},
{
"type": "null"
}
]
},
"vat_rate": {
"anyOf": [
{
"type": "number",
"maximum": 999999999999,
"minimum": -999999999999
},
{
"type": "null"
}
],
"description": "VAT rate as a percentage, e.g. 20 for 20%."
},
"unit_price": {
"anyOf": [
{
"type": "number",
"maximum": 999999999999,
"minimum": -999999999999
},
{
"type": "null"
}
],
"description": "Price for one unit, before VAT."
},
"description": {
"type": "string",
"maxLength": 2000,
"description": "The line as printed."
}
}
},
"maxItems": 2000
},
"description": {
"anyOf": [
{
"type": "string",
"maxLength": 4000
},
{
"type": "null"
}
],
"description": "One line on what the invoice is for."
},
"invoice_number": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"supplier_tax_id": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
],
"description": "The supplier's VAT or company registration number, if printed."
}
}
},
"maxItems": 200,
"minItems": 1,
"description": "Every invoice, one entry each, with values exactly as printed on the document. Use null for anything not printed or not legible; never estimate."
}
}
}Use this when the user wants invoices, bills or receipts put into an Excel spreadsheet. Builds an .xlsx workbook with one row per invoice, one row per line item, a sheet of arithmetic, missing-field and duplicate checks, and totals per currency, and returns a download link that works for 24 hours.
| Argument | Type | Description |
|---|---|---|
| title | string | Optional name for the file, e.g. "October supplier invoices". |
| invoices* | array | Every invoice, one entry each, with values exactly as printed on the document. Use null for anything not printed or not legible; never estimate. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"invoices"
],
"properties": {
"title": {
"type": "string",
"maxLength": 60,
"description": "Optional name for the file, e.g. \"October supplier invoices\"."
},
"invoices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"net": {
"anyOf": [
{
"type": "number",
"maximum": 999999999999,
"minimum": -999999999999
},
{
"type": "null"
}
],
"description": "Invoice amount before VAT."
},
"vat": {
"anyOf": [
{
"type": "number",
"maximum": 999999999999,
"minimum": -999999999999
},
{
"type": "null"
}
],
"description": "Total VAT or sales tax."
},
"date": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
{
"type": "null"
}
],
"description": "Invoice date as YYYY-MM-DD."
},
"notes": {
"anyOf": [
{
"type": "string",
"maxLength": 5000
},
{
"type": "null"
}
]
},
"total": {
"anyOf": [
{
"type": "number",
"maximum": 999999999999,
"minimum": -999999999999
},
{
"type": "null"
}
],
"description": "Amount due including VAT."
},
"category": {
"anyOf": [
{
"type": "string",
"maxLength": 120
},
{
"type": "null"
}
]
},
"currency": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Za-z]{3}$"
},
{
"type": "null"
}
],
"description": "ISO 4217 code, e.g. GBP, USD, EUR."
},
"supplier": {
"anyOf": [
{
"type": "string",
"maxLength": 300
},
{
"type": "null"
}
],
"description": "Who issued the invoice."
},
"vat_rate": {
"anyOf": [
{
"type": "number",
"maximum": 999999999999,
"minimum": -999999999999
},
{
"type": "null"
}
],
"description": "VAT rate as a percentage when one rate applies to the whole invoice."
},
"po_number": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
],
"description": "The buyer's purchase order number, if printed."
},
"line_items": {
"type": "array",
"items": {
"type": "object",
"required": [
"description"
],
"properties": {
"net": {
"anyOf": [
{
"type": "number",
"maximum": 999999999999,
"minimum": -999999999999
},
{
"type": "null"
}
],
"description": "Line amount before VAT."
},
"vat": {
"anyOf": [
{
"type": "number",
"maximum": 999999999999,
"minimum": -999999999999
},
{
"type": "null"
}
],
"description": "VAT or sales tax on this line."
},
"category": {
"anyOf": [
{
"type": "string",
"maxLength": 120
},
{
"type": "null"
}
]
},
"quantity": {
"anyOf": [
{
"type": "number",
"maximum": 999999999999,
"minimum": -999999999999
},
{
"type": "null"
}
]
},
"vat_rate": {
"anyOf": [
{
"type": "number",
"maximum": 999999999999,
"minimum": -999999999999
},
{
"type": "null"
}
],
"description": "VAT rate as a percentage, e.g. 20 for 20%."
},
"unit_price": {
"anyOf": [
{
"type": "number",
"maximum": 999999999999,
"minimum": -999999999999
},
{
"type": "null"
}
],
"description": "Price for one unit, before VAT."
},
"description": {
"type": "string",
"maxLength": 2000,
"description": "The line as printed."
}
}
},
"maxItems": 2000
},
"description": {
"anyOf": [
{
"type": "string",
"maxLength": 4000
},
{
"type": "null"
}
],
"description": "One line on what the invoice is for."
},
"invoice_number": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"supplier_tax_id": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
],
"description": "The supplier's VAT or company registration number, if printed."
}
}
},
"maxItems": 200,
"minItems": 1,
"description": "Every invoice, one entry each, with values exactly as printed on the document. Use null for anything not printed or not legible; never estimate."
}
}
}Use this when the user wants a blank Excel template to fill in by hand for invoices, expenses, landlord accounts, CIS deductions or construction and development costs. Returns the available templates with a page describing each and a direct .xlsx link.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 14, 2026.