Lexware Office MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.7.3 · published by io.usefulapi
Read Lexware Office contacts, articles, invoices and vouchers; create contacts and draft invoices.
21 tools: 3 can delete or cancel things, 1 do something that can't be undone and 17 only read.
Scanned Oct 21, 2026
- Deletes or cancels3Claude Code: deny: see these tools
- Can't be undone1Claude Code: ask: see these tools
- Changes things0Claude Code: ask
- Only reads17Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http lexware-office https://lexware-office.usefulapi.io/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "lexware_list_payment_conditions" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "lexware_list_payment_conditions" says "list": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
21 tools
Deletes or cancels 3Claude Code: deny
lexware_create_contactWRITE: creates a new customer and/or vendor in Lexware Office (Lexware assigns the customer/vendor number).No findings
Why it is in this group
- The name "lexware_create_contact" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: creates a new customer and/or vendor in Lexware Office (Lexware assigns the customer/vendor number). Give company_name for a company OR person_last_name for a private person. One billing and one shipping address, one email and one phone at most. Check lexware_list_contacts first to avoid duplicates. POST /v1/contacts.
Annotations the server declares
- title: Create a contact
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
lexware_create_draft_invoiceWRITE: creates an invoice in Lexware Office as a DRAFT (never finalized, numbered or sent; Lexware assigns the number when the user finalizes it in the app).No findings
Why it is in this group
- The name "lexware_create_draft_invoice" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: creates an invoice in Lexware Office as a DRAFT (never finalized, numbered or sent; Lexware assigns the number when the user finalizes it in the app). Address it to an existing customer (contact_id) or a one-time address (name + country_code). Prices are EUR. Returns the new id and lexwareAppUrl to review and finalize it in Lexware Office. POST /v1/invoices (without finalize).
Annotations the server declares
- title: Create a draft invoice
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
lexware_create_draft_quotationWRITE: creates a quotation (Angebot) in Lexware Office as a DRAFT (never finalized or sent).No findings
Why it is in this group
- The name "lexware_create_draft_quotation" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: creates a quotation (Angebot) in Lexware Office as a DRAFT (never finalized or sent). Address it to an existing customer (contact_id) or a one-time address (name + country_code). Prices are EUR. Returns the new id and lexwareAppUrl to review and finalize it in Lexware Office. POST /v1/quotations (without finalize).
Annotations the server declares
- title: Create a draft quotation
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
Can't be undone 1Claude Code: ask
lexware_list_payment_conditionsThe payment conditions configured in Lexware Office (days until due, early-payment discount, label template, which is the organization default).1 finding
Why it is in this group
- The name "lexware_list_payment_conditions" says "list": a word for reading.
- The description's first verb is "payment": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "lexware_list_payment_conditions" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "lexware_list_payment_conditions" says "list": a word for reading.
Description, as the server wrote it The payment conditions configured in Lexware Office (days until due, early-payment discount, label template, which is the organization default). GET /v1/payment-conditions.
Annotations the server declares
- title: List payment conditions
- readOnlyHint: true
Only reads 17Claude Code: allow
lexware_get_articleGet one article (product or service) by id: title, type, article number, GTIN, unit, net/gross price and tax rate.No findings
Why it is in this group
- The name "lexware_get_article" says "get": a word for reading.
Description, as the server wrote it Get one article (product or service) by id: title, type, article number, GTIN, unit, net/gross price and tax rate. GET /v1/articles/{id}.
Annotations the server declares
- title: Get an article
- readOnlyHint: true
lexware_get_bookkeeping_voucherGet one bookkeeping voucher (salesinvoice, salescreditnote, purchaseinvoice or purchasecreditnote from the voucher list) by id: status, voucher items with posting category ids, tax…No findings
Why it is in this group
- The name "lexware_get_bookkeeping_voucher" says "get": a word for reading.
Description, as the server wrote it Get one bookkeeping voucher (salesinvoice, salescreditnote, purchaseinvoice or purchasecreditnote from the voucher list) by id: status, voucher items with posting category ids, tax amounts, contact, file ids. Includes lexwareAppUrl, a link that opens it in Lexware Office. GET /v1/vouchers/{id}.
Annotations the server declares
- title: Get a bookkeeping voucher
- readOnlyHint: true
lexware_get_contactGet one contact (customer and/or vendor) by id: customer/vendor numbers, company or person, contact persons, addresses, emails, phones, note.No findings
Why it is in this group
- The name "lexware_get_contact" says "get": a word for reading.
Description, as the server wrote it Get one contact (customer and/or vendor) by id: customer/vendor numbers, company or person, contact persons, addresses, emails, phones, note. Includes lexwareAppUrl, a link that opens it in Lexware Office. GET /v1/contacts/{id}.
Annotations the server declares
- title: Get a contact
- readOnlyHint: true
lexware_get_credit_noteGet one credit note by id: status, line items, totals, related invoice.No findings
Why it is in this group
- The name "lexware_get_credit_note" says "get": a word for reading.
Description, as the server wrote it Get one credit note by id: status, line items, totals, related invoice. Includes lexwareAppUrl, a link that opens it in Lexware Office. GET /v1/credit-notes/{id}.
Annotations the server declares
- title: Get a credit note
- readOnlyHint: true
lexware_get_delivery_noteGet one delivery note by id: status, line items, shipping conditions.No findings
Why it is in this group
- The name "lexware_get_delivery_note" says "get": a word for reading.
Description, as the server wrote it Get one delivery note by id: status, line items, shipping conditions. Includes lexwareAppUrl, a link that opens it in Lexware Office. GET /v1/delivery-notes/{id}.
Annotations the server declares
- title: Get a delivery note
- readOnlyHint: true
lexware_get_down_payment_invoiceGet one down payment invoice (Abschlagsrechnung) by id: status, amounts, related closing invoice.No findings
Why it is in this group
- The name "lexware_get_down_payment_invoice" says "get": a word for reading.
Description, as the server wrote it Get one down payment invoice (Abschlagsrechnung) by id: status, amounts, related closing invoice. Includes lexwareAppUrl, a link that opens it in Lexware Office. GET /v1/down-payment-invoices/{id}.
Annotations the server declares
- title: Get a down payment invoice
- readOnlyHint: true
lexware_get_dunningGet one dunning (payment reminder) by id: status, the dunned invoice in relatedVouchers, line items, totals.No findings
Why it is in this group
- The name "lexware_get_dunning" says "get": a word for reading.
Description, as the server wrote it Get one dunning (payment reminder) by id: status, the dunned invoice in relatedVouchers, line items, totals. Includes lexwareAppUrl, a link that opens it in Lexware Office. GET /v1/dunnings/{id}.
Annotations the server declares
- title: Get a dunning
- readOnlyHint: true
lexware_get_invoiceGet one invoice by id: status (draft/open/paid/voided), line items, totals, tax amounts, payment and shipping conditions, related vouchers.No findings
Why it is in this group
- The name "lexware_get_invoice" says "get": a word for reading.
Description, as the server wrote it Get one invoice by id: status (draft/open/paid/voided), line items, totals, tax amounts, payment and shipping conditions, related vouchers. Includes lexwareAppUrl, a link that opens it in Lexware Office. GET /v1/invoices/{id}.
Annotations the server declares
- title: Get an invoice
- readOnlyHint: true
lexware_get_order_confirmationGet one order confirmation by id: status, line items, totals, delivery terms.No findings
Why it is in this group
- The name "lexware_get_order_confirmation" says "get": a word for reading.
Description, as the server wrote it Get one order confirmation by id: status, line items, totals, delivery terms. Includes lexwareAppUrl, a link that opens it in Lexware Office. GET /v1/order-confirmations/{id}.
Annotations the server declares
- title: Get an order confirmation
- readOnlyHint: true
lexware_get_paymentsPayment status of an invoice, credit note, down payment invoice or bookkeeping voucher: open amount, payment status (balanced/openRevenue/openExpense), paid date and the payment it…No findings
Why it is in this group
- The name "lexware_get_payments" says "get": a word for reading.
Description, as the server wrote it Payment status of an invoice, credit note, down payment invoice or bookkeeping voucher: open amount, payment status (balanced/openRevenue/openExpense), paid date and the payment items (bank transactions, cash, credit notes, Skonto). Not available for quotations or drafts. GET /v1/payments/{voucherId}.
Annotations the server declares
- title: Get a voucher's payments
- readOnlyHint: true
lexware_get_profileThe connected Lexware Office organization: organizationId, company name, the user who created the API key, tax type (net/gross/vatfree), small-business flag (Kleinunternehmer), dis…No findings
Why it is in this group
- The name "lexware_get_profile" says "get": a word for reading.
Description, as the server wrote it The connected Lexware Office organization: organizationId, company name, the user who created the API key, tax type (net/gross/vatfree), small-business flag (Kleinunternehmer), distance-sales principle and the plan's business features (INVOICING, INVOICING_PRO, BOOKKEEPING). Good first call. GET /v1/profile.
Annotations the server declares
- title: Get the company profile
- readOnlyHint: true
lexware_get_quotationGet one quotation by id: status (draft/open/accepted/rejected), expiration date, line items, totals.No findings
Why it is in this group
- The name "lexware_get_quotation" says "get": a word for reading.
Description, as the server wrote it Get one quotation by id: status (draft/open/accepted/rejected), expiration date, line items, totals. Includes lexwareAppUrl, a link that opens it in Lexware Office. GET /v1/quotations/{id}.
Annotations the server declares
- title: Get a quotation
- readOnlyHint: true
lexware_list_articlesList articles (products and services usable as invoice line items), with price, tax rate and unit.No findings
Why it is in this group
- The name "lexware_list_articles" says "list": a word for reading.
Description, as the server wrote it List articles (products and services usable as invoice line items), with price, tax rate and unit. Optional exact filters by article number, GTIN or type. Paged: pass next_page as page. GET /v1/articles.
Annotations the server declares
- title: List articles
- readOnlyHint: true
lexware_list_contactsList customers and vendors, optionally filtered (filters combine with AND).No findings
Why it is in this group
- The name "lexware_list_contacts" says "list": a word for reading.
Description, as the server wrote it List customers and vendors, optionally filtered (filters combine with AND). name and email match as case-insensitive substrings (at least 3 characters; _ and % are wildcards). Paged: pass next_page as page. GET /v1/contacts.
Annotations the server declares
- title: List or search contacts
- readOnlyHint: true
lexware_list_countriesCountries known to Lexware Office with their code, English and German name and tax classification (de, intraCommunity, thirdPartyCountry).No findings
Why it is in this group
- The name "lexware_list_countries" says "list": a word for reading.
Description, as the server wrote it Countries known to Lexware Office with their code, English and German name and tax classification (de, intraCommunity, thirdPartyCountry). GET /v1/countries.
Annotations the server declares
- title: List countries
- readOnlyHint: true
lexware_list_posting_categoriesBookkeeping posting categories (id, name, group, income or outgo, whether a contact is required and split tax rates are allowed), used by bookkeeping vouchers' categoryId.No findings
Why it is in this group
- The name "lexware_list_posting_categories" says "list": a word for reading.
Description, as the server wrote it Bookkeeping posting categories (id, name, group, income or outgo, whether a contact is required and split tax rates are allowed), used by bookkeeping vouchers' categoryId. Optionally only income or outgo. GET /v1/posting-categories.
Annotations the server declares
- title: List posting categories
- readOnlyHint: true
lexware_list_vouchersSearch the voucher list: metadata (id, type, status, number, dates, contact, total and open amount) of sales documents (invoice, quotation, creditnote, orderconfirmation, deliveryn…No findings
Why it is in this group
- The name "lexware_list_vouchers" says "list": a word for reading.
Description, as the server wrote it Search the voucher list: metadata (id, type, status, number, dates, contact, total and open amount) of sales documents (invoice, quotation, creditnote, orderconfirmation, deliverynote, downpaymentinvoice) and bookkeeping vouchers (salesinvoice, salescreditnote, purchaseinvoice, purchasecreditnote). Omit voucher_types / voucher_statuses for all. Then fetch details with the matching get tool (invoice → lexware_get_invoice, quotation → lexware_get_quotation, creditnote → lexware_get_credit_note, orderconfirmation → lexware_get_order_confirmation, deliverynote → lexware_get_delivery_note, downpaymentinvoice → lexware_get_down_payment_invoice, the four bookkeeping types → lexware_get_bookkeeping_voucher). Dates are yyyy-mm-dd, whole days in German time. Up to 10,000 results can be paged through; narrow the dates for more. GET /v1/voucherlist.
Annotations the server declares
- title: List vouchers
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.7.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http lexware-office https://lexware-office.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__lexware-office__lexware_get_profile",
"mcp__lexware-office__lexware_list_contacts",
"mcp__lexware-office__lexware_list_articles",
"mcp__lexware-office__lexware_list_vouchers",
"mcp__lexware-office__lexware_get_invoice",
"mcp__lexware-office__lexware_get_quotation",
"mcp__lexware-office__lexware_get_credit_note",
"mcp__lexware-office__lexware_get_order_confirmation",
"mcp__lexware-office__lexware_get_delivery_note",
"mcp__lexware-office__lexware_get_down_payment_invoice",
"mcp__lexware-office__lexware_get_dunning",
"mcp__lexware-office__lexware_get_bookkeeping_voucher",
"mcp__lexware-office__lexware_get_article",
"mcp__lexware-office__lexware_get_contact",
"mcp__lexware-office__lexware_get_payments",
"mcp__lexware-office__lexware_list_countries",
"mcp__lexware-office__lexware_list_posting_categories"
],
"ask": [
"mcp__lexware-office__lexware_list_payment_conditions"
],
"deny": [
"mcp__lexware-office__lexware_create_contact",
"mcp__lexware-office__lexware_create_draft_invoice",
"mcp__lexware-office__lexware_create_draft_quotation"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as lexware-office. Review it before you use it.