mcpField
I
invapi-mcp

invapi-mcp

Local
github.com/invapi-orgFinance0Updated 36w ago

About invapi-mcp

invapi-mcp is an MCP server for the Invapi E-Invoicing API, aimed at workflows that process electronic invoices. It combines format conversion, standards validation, and data extraction through a set of invoice tools.

Key features

  1. 01Convert JSON, UBL, and CII invoices
  2. 02Create ZUGFeRD PDFs and Excel files
  3. 03Validate UBL, CII, and XML
  4. 04Extract invoice data from PDFs or images
  5. 05Extract QR code data
  6. 06Batch up to 100 conversions

Use cases

  1. 01Convert invoices between JSON and UBL or CII
  2. 02Validate XML against XRechnung 3.0.2
  3. 03Extract structured data from invoice scans
  4. 04Process multiple conversion operations in one request

MCP support

It exposes Invapi E-Invoicing API operations as MCP tools for conversion, validation, extraction, and account information.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"invapi-org-invapi": {
"command": "npx",
"args": [
"-y",
"@invapi/mcp-server"
],
"env": {
"INVAPI_API_KEY": "<INVAPI_API_KEY>"
}
}
}
}
Run commandnpx -y @invapi/mcp-server
Environment variables to set
INVAPI_API_KEYSecretYour API key for Invapi

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@invapi/mcp-server1.0.5

Tools

14

Saved tool list · updated 3w ago

ParameterTypeRequiredDescription
invoiceobjectYes
invoice.idstringNo
invoice.buyerobjectYesThe party receiving the invoice
invoice.buyer.nameanyYes
invoice.buyer.contactanyYes
invoice.buyer.postal_addressanyYes
invoice.buyer.vat_identifieranyNo
invoice.itemsarrayYesInvoice line items (at least 1)
invoice.sellerobjectYesThe party issuing the invoice
invoice.seller.namestringYesFull formal name of the party
invoice.seller.contactobjectYes
invoice.seller.contact.email_addressstringNoEmail address
invoice.seller.contact.telephone_numberstringNoPhone number
invoice.seller.postal_addressobjectYes
invoice.seller.postal_address.citystringYesCity name
invoice.seller.postal_address.post_codestringYesPostal / ZIP code
invoice.seller.postal_address.country_codestringYesISO 3166-1 alpha-2 country code, e.g. 'DE', 'US', 'FR'
invoice.seller.postal_address.address_line_1stringYesStreet address line 1
invoice.seller.postal_address.address_line_2stringNoStreet address line 2
invoice.seller.postal_address.address_line_3stringNoStreet address line 3
invoice.seller.postal_address.country_subdivisionstringNoState / province / region
invoice.seller.vat_identifierstringNoVAT identification number
invoice.totalsobjectYes
invoice.totals.paid_amountnumberYesAmount already paid
invoice.totals.sum_of_chargesnumberNo
invoice.totals.rounding_amountnumberNo
invoice.totals.total_vat_amountnumberYesTotal VAT amount
invoice.totals.sum_of_allowancesnumberNo
invoice.totals.total_amount_with_vatnumberYesSum of all line items with VAT
invoice.totals.amount_due_for_paymentnumberYesAmount due for payment
invoice.totals.total_amount_without_vatnumberYesSum of all line items without VAT
invoice.totals.invoice_total_without_vatnumberNo
invoice.categorystringNoInvoice category
invoice.invoice_datestringYesIssue date in YYYY-MM-DD format
invoice.invoice_notestringNo
invoice.invoice_typeenumYes'incoming' = received from vendor/supplier; 'outgoing' = sent to customerincoming | outgoing
invoice.invoice_numberstringYesUnique invoice identifier, e.g. 'INV-2025-001'
invoice.additional_dataobjectNo
invoice.additional_data.projectstringNoProject reference
invoice.additional_data.order_idstringNo
invoice.additional_data.leitweg_idstringNoLeitweg-ID for German government invoicing
invoice.additional_data.customer_idstringNo
invoice.additional_data.delivery_idstringNo
invoice.additional_data.reverse_chargebooleanNoTrue if VAT reverse charge applies
invoice.additional_data.invoicing_periodobjectNo
invoice.additional_data.invoicing_period.endstringYesPeriod end date (YYYY-MM-DD)
invoice.additional_data.invoicing_period.startstringYesPeriod start date (YYYY-MM-DD)
invoice.additional_data.preceeding_invoice_numberstringNo
invoice.invoice_descriptionstringYesShort description of the invoice
invoice.payment_informationobjectYes
invoice.payment_information.payment_typeenumNoPayment methodcredit_card | credit_transfer | cash | online_payment_service
invoice.payment_information.payment_termsstringNo
invoice.payment_information.credit_card_typestringNo
invoice.payment_information.payment_due_datestringNoDue date (YYYY-MM-DD)
invoice.payment_information.payment_referencestringNo
invoice.payment_information.credit_card_numberstringNo
invoice.payment_information.payment_payed_datestringNoDate payment was made (YYYY-MM-DD)
invoice.payment_information.payment_instructionsstringNo
invoice.payment_information.payment_account_numberstringNoIBAN or account number
invoice.delivery_informationobjectNo
invoice.delivery_information.deliver_tostringNoDelivery recipient name
invoice.delivery_information.delivery_datestringNoDelivery date (YYYY-MM-DD)
invoice.delivery_information.delivery_methodstringNo
invoice.delivery_information.deliver_to_addressobjectNo
invoice.delivery_information.deliver_to_address.citystringYes
invoice.delivery_information.deliver_to_address.post_codestringYes
invoice.delivery_information.deliver_to_address.country_codestringYes
invoice.delivery_information.deliver_to_address.address_line_1stringYesStreet address line 1
invoice.delivery_information.deliver_to_address.address_line_2stringNo
invoice.delivery_information.deliver_to_address.address_line_3stringNo
invoice.delivery_information.deliver_to_address.country_subdivisionstringNo
invoice.delivery_information.delivery_instructionsstringNo
invoice.invoice_currency_codestringYesISO 4217 currency code, e.g. 'EUR', 'USD', 'GBP'
output_pathstringNoFile path to save the UBL XML output. If omitted, XML is returned inline.

Details

From the project README

@invapi/mcp-server

MCP server for the Invapi E-Invoicing API — convert, validate, and extract invoices in UBL, CII, ZUGFeRD, Excel, and more.

Quick Start

npm install -g @invapi/mcp-server

Set your API key (get one at invapi.org):

export INVAPI_API_KEY=your-api-key

Usage

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "invapi": {
      "command": "npx",
      "args": ["-y", "@invapi/mcp-server"],
      "env": {
        "INVAPI_API_KEY": "your-api-key"
      }
    }
  }
}
Claude Code
claude mcp add -e INVAPI_API_KEY=xxx invapi -- npx @invapi/mcp-server

Tools

Conversion
ToolDescription
invapi_convert_json_to_ublJSON Invoice → UBL XML
invapi_convert_json_to_ciiJSON Invoice → CII XML
invapi_convert_ubl_to_jsonUBL XML → JSON Invoice
invapi_convert_cii_to_jsonCII XML → JSON Invoice
invapi_convert_json_to_xlsxJSON Invoices → Excel file
invapi_create_zugferd_pdfPDF + JSON Invoice → ZUGFeRD PDF
invapi_convert_zugferd_to_jsonZUGFeRD PDF → JSON Invoice
Validation
ToolDescription
invapi_validate_ublValidate UBL XML against XRechnung 3.0.2 (EN 16931)
invapi_validate_ciiValidate CII XML against XRechnung 3.0.2 (EN 16931)
invapi_validate_xmlValidate XML with auto-detected format
Extraction
ToolDescription
invapi_extract_invoiceExtract structured invoice data from PDF or image
invapi_extract_qrExtract QR code data from image
User
ToolDescription
invapi_get_userGet account info and remaining API credits
Batch
ToolDescription
invapi_batch_convertRun up to 100 conversion operations in a single request

Development

git clone https://github.com/invapi/invapi-mcp.git
cd invapi-mcp
npm install
npm run dev

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.