Skip to content

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.

Deletes · 3Final · 1

21 tools: 3 can delete or cancel things, 1 do something that can't be undone and 17 only read.

Scanned Oct 21, 2026

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/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "lexware_list_payment_conditions" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true}; The name "lexware_list_payment_conditions" says "list": a word for reading.

    What this check looks for

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".

      Matched text

      annotations: {"readOnlyHint":true}; The name "lexware_list_payment_conditions" says "list": a word for reading.

      What this check looks for
    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/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.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.