lexware-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LEXWARE_API_TOKEN | Yes | Your Lexware Office API token |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| lexware_create_invoiceA | Create a new invoice in Lexware. Set finalize=true to immediately finalize (status "open"); omit or false to create as draft. The Lexware API does not support finalizing an existing draft — this is the only documented way to obtain a finalized invoice. |
| lexware_get_invoiceA | Retrieve an invoice by ID from Lexware. |
| lexware_download_invoice_fileA | Download the file for an invoice. Defaults to PDF; pass format="xml" to request the XRechnung XML e-invoice when available (the API returns whatever representation it can render). |
| lexware_pursue_invoiceA | Create a new invoice as a follow-up to a preceding sales voucher (quotation, order confirmation, or delivery note). Maps to the documented |
| lexware_deeplink_invoiceA | Get a direct link to view/edit an invoice in the Lexware web app. |
| lexware_create_credit_noteB | Create a new credit note in Lexware. |
| lexware_get_credit_noteA | Retrieve a credit note by ID from Lexware. |
| lexware_download_credit_note_fileA | Download the file for a credit note. Defaults to PDF; pass format="xml" to request the XRechnung XML e-invoice when available (the API returns whatever representation it can render). |
| lexware_pursue_credit_noteA | Create a new credit note as a follow-up to a preceding invoice. Maps to the documented |
| lexware_deeplink_credit_noteA | Get a direct link to view/edit a credit note in the Lexware web app. |
| lexware_create_quotationA | Create a new quotation in Lexware. |
| lexware_get_quotationB | Retrieve a quotation by ID from Lexware. |
| lexware_download_quotation_fileA | Download the PDF file for a quotation. |
| lexware_deeplink_quotationA | Get a direct link to view/edit a quotation in the Lexware web app. |
| lexware_create_order_confirmationB | Create a new order confirmation in Lexware. |
| lexware_get_order_confirmationA | Retrieve an order confirmation by ID from Lexware. |
| lexware_download_order_confirmation_fileA | Download the PDF file for an order confirmation. |
| lexware_pursue_order_confirmationA | Create a new order confirmation as a follow-up to a preceding quotation. Maps to the documented |
| lexware_deeplink_order_confirmationA | Get a direct link to view/edit an order confirmation in the Lexware web app. |
| lexware_create_delivery_noteB | Create a new delivery note in Lexware. |
| lexware_get_delivery_noteA | Retrieve a delivery note by ID from Lexware. |
| lexware_download_delivery_note_fileA | Download the PDF file for a delivery note. |
| lexware_pursue_delivery_noteA | Create a new delivery note as a follow-up to a preceding quotation or order confirmation. Maps to the documented |
| lexware_deeplink_delivery_noteA | Get a direct link to view/edit a delivery note in the Lexware web app. |
| lexware_get_down_payment_invoiceB | Retrieve a down payment invoice by ID from Lexware. |
| lexware_download_down_payment_invoice_fileA | Download the file for a down payment invoice. Defaults to PDF; pass format="xml" to request the XRechnung XML e-invoice when available (the API returns whatever representation it can render). |
| lexware_deeplink_down_payment_invoiceA | Get a direct link to view/edit a down payment invoice in the Lexware web app. |
| lexware_pursue_dunningA | Create a new dunning as a follow-up to a preceding invoice via the documented |
| lexware_get_dunningA | Retrieve a dunning by ID from Lexware. |
| lexware_download_dunning_fileA | Download the PDF file for a dunning. |
| lexware_deeplink_dunningA | Get a direct link to view/edit a dunning in the Lexware web app. |
| lexware_list_articlesA | List all articles with optional pagination. |
| lexware_get_articleA | Get a single article by ID. |
| lexware_create_articleB | Create a new article. |
| lexware_update_articleA | Update an existing article. The body must include the version field for optimistic locking. |
| lexware_delete_articleB | Delete an article by ID. |
| lexware_list_contactsA | List all contacts with optional pagination and filters. |
| lexware_get_contactA | Get a single contact by ID. |
| lexware_create_contactB | Create a new contact. |
| lexware_update_contactA | Update an existing contact. The body must include the version field for optimistic locking. |
| lexware_deeplink_contactA | Get a direct URL to view a contact in the Lexware web app. |
| lexware_list_countriesA | List all available countries with their tax classifications. |
| lexware_list_payment_conditionsA | List all available payment conditions. |
| lexware_list_posting_categoriesA | List all available posting categories for bookkeeping. |
| lexware_get_profileA | Get the organization profile information. |
| lexware_list_print_layoutsA | List available print layout templates. |
| lexware_create_voucherA | Create a new bookkeeping voucher in Lexware. |
| lexware_get_voucherA | Retrieve a bookkeeping voucher by ID from Lexware. The voucherStatus field in the response is normalized to its canonical lowercase form. Known values: unchecked, open, paid, paidoff, voided, transferred, sepadebit. Retries up to 3 times (1 s / 2 s / 4 s) on 404 to absorb the indexing delay after an upload; if the voucher is still missing, returns { voucherId, status: "processing", message } rather than an error. Other failures are reported as errors. |
| lexware_update_voucherA | Update an existing bookkeeping voucher in Lexware. Requires version field for optimistic locking. |
| lexware_list_vouchersA | Look up bookkeeping vouchers by voucher number. GET /vouchers is a LOOKUP endpoint, not a browsable collection: the Lexware API rejects any call without voucherNumber with HTTP 400 "voucherNumber parameter is required". To browse or filter vouchers, use lexware_list_voucherlist, which is the collection endpoint and carries the summary fields (contactName, openAmount) that /vouchers does not. |
| lexware_upload_voucher_fileA | Upload a file attachment to a bookkeeping voucher. Provide either filePath (absolute path on the MCP server host) or contentBase64 (base64-encoded content) — not both. When using filePath, fileName is optional (derived from the file name) and contentType is auto-detected for common image extensions. When using contentBase64, fileName is required. |
| lexware_deeplink_voucherA | Get a direct link to view/edit a bookkeeping voucher in the Lexware web app. |
| lexware_list_voucherlistB | Search and filter across all voucher types in Lexware. This is the main way to find invoices, credit notes, quotations, and other voucher types. |
| lexware_get_paymentsA | Get payment details for a specific voucher. |
| lexware_create_event_subscriptionB | Create a new webhook event subscription in Lexware. |
| lexware_list_event_subscriptionsA | List all webhook event subscriptions in Lexware. |
| lexware_get_event_subscriptionA | Retrieve a webhook event subscription by ID from Lexware. |
| lexware_delete_event_subscriptionB | Delete a webhook event subscription from Lexware. |
| lexware_verify_webhook_signatureA | Verify a Lexware webhook X-Lxo-Signature (RSA-SHA512, base64) against the raw request body. Pass the EXACT raw HTTP body bytes you received — do not JSON.parse/stringify round-trip, as Lexware signs the compact JSON as transmitted (whitespace and key order matter). On first call the public key is fetched once from developers.lexware.io and cached for the process lifetime; set LEXWARE_WEBHOOK_PUBLIC_KEY (PEM) to override (recommended for production where you cannot tolerate one-time TLS-substitution risk on the public-key fetch). |
| lexware_upload_fileA | Upload a file to Lexware. Provide either filePath (absolute path on the MCP server host) or contentBase64 (base64-encoded content) — not both. When using filePath, fileName is optional (derived from the file name) and contentType is auto-detected for common image extensions. When using contentBase64, fileName is required. |
| lexware_download_fileB | Download a file from Lexware. Returns the file as base64-encoded content. |
| lexware_get_file_statusA | Get the processing status of an uploaded file from Lexware. Requires an API key with the file-status scope; keys without it get an access_denied error from Lexware. |
| lexware_deeplink_fileB | Get a direct link to the bookkeeping inbox of newly-uploaded files in the Lexware web app. |
| lexware_list_recurring_templatesB | List recurring invoice templates from Lexware. |
| lexware_get_recurring_templateA | Retrieve a recurring invoice template by ID from Lexware. |
| lexware_deeplink_recurring_templateA | Get a direct link to view/edit a recurring invoice template in the Lexware web app. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| lexware-api-reference | Read-only quick reference for the Lexware Office API surface exposed by this MCP server. |
TDQS
Scored across 66 tools
Most tools target a unique resource-action pair, and the repetitive structure (get/download/deeplink/pursue) is clear per document type. The main confusion risk is between list_vouchers and list_voucherlist, and between generic file upload/download and voucher/file-specific variants, though descriptions do clarify these.
All tools follow a consistent lexware_verb_noun pattern with snake_case throughout. Minor deviations like list_voucherlist (noun already contains 'list') and get_payments (rather than list_payments) keep this from being a perfect 5.
With 66 tools, the surface is very large and will likely overwhelm an agent choosing among options. The breadth reflects a full ERP domain, but it far exceeds the 3-15 well-scoped range and feels heavier than necessary.
The server covers core lifecycles well: articles and contacts have CRUD, sales documents have create/get/download/pursue/deeplink, and vouchers have create/get/update/upload/list. Minor gaps exist—such as no create operation for down payment invoices and no update/delete for most document types—but these may reflect API constraints rather than missing coverage.