Skip to content

SuperFaktura MCP by usefulapi

by usefulapi.io · remote · no sign-in to list tools · v1.3.3 · published by io.usefulapi

Read SuperFaktura invoices, clients, expenses, bank and stock; create clients, expenses and drafts.

Deletes · 5

25 tools: 5 can delete or cancel things and 20 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http superfaktura https://superfaktura.usefulapi.io/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

25 tools

Deletes or cancels 5Claude Code: deny
  • superfaktura_add_contact_personWRITE: adds a contact person (name and e-mail, optional phone) to an existing client.No findings

    Why it is in this group

    • The name "superfaktura_add_contact_person" says "add": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: adds a contact person (name and e-mail, optional phone) to an existing client. Nothing is sent to that person. Not idempotent. POST /contact_people/add/api:1.

    Annotations the server declares

    • title: Add a contact person to a client
    • destructiveHint: true
  • superfaktura_create_clientWRITE: adds a new client to the SuperFaktura address book (only the name is required).No findings

    Why it is in this group

    • The name "superfaktura_create_client" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: adds a new client to the SuperFaktura address book (only the name is required). Nothing is sent to the client. Not idempotent: calling twice creates two clients, so check superfaktura_list_clients first. POST /clients/create.

    Annotations the server declares

    • title: Create a client
    • destructiveHint: true
  • superfaktura_create_expenseWRITE: records a received document (expense) with ONE total amount and VAT rate, e.g.No findings

    Why it is in this group

    • The name "superfaktura_create_expense" says "create": a word for a change.
    • The input carries an amount (input.amount) and a currency, so it moves money.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: records a received document (expense) with ONE total amount and VAT rate, e.g. a supplier invoice or a bill. It is created unpaid: no payment is recorded and nothing is sent. No attachments. Not idempotent: calling twice records two expenses. POST /expenses/add.

    Annotations the server declares

    • title: Record a received expense
    • destructiveHint: true
  • superfaktura_create_invoiceWRITE: creates ONE document in SuperFaktura for the user to review: type draft (concept, default), estimate (quote), order or proforma.No findings

    Why it is in this group

    • The name "superfaktura_create_invoice" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: creates ONE document in SuperFaktura for the user to review: type draft (concept, default), estimate (quote), order or proforma. A final regular invoice cannot be created here. It is NOT sent (no e-mail, no post), NOT marked paid or sent, and has no payment link or discount. Give an existing client_id (its name is read first with one extra GET /clients/view/{id}, so the call uses 2 requests of the daily quota) OR a new client's name (+ optional ico/dic/ic_dph/address...). Items: name, unit price without VAT, VAT rate, quantity. Not idempotent: pass a checksum (max 32 chars) so a timed-out call can be recovered with superfaktura_get_response_by_checksum instead of retried. POST /invoices/create.

    Annotations the server declares

    • title: Create an unsent invoice document
    • destructiveHint: true
  • superfaktura_create_tagWRITE: adds a new tag name (usable on invoices, expenses and clients in the SuperFaktura app).No findings

    Why it is in this group

    • The name "superfaktura_create_tag" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    WRITE: adds a new tag name (usable on invoices, expenses and clients in the SuperFaktura app). A duplicate name is refused by SuperFaktura. POST /tags/add.

    Annotations the server declares

    • title: Create a tag
    • destructiveHint: true
Only reads 20Claude Code: allow
  • superfaktura_get_cash_registerOne cash register with currency, number of entries and current balance (read only).No findings

    Why it is in this group

    • The name "superfaktura_get_cash_register" says "get": a word for reading.
    Description, as the server wrote it
    One cash register with currency, number of entries and current balance (read only). GET /cash_registers/view/{id}.

    Annotations the server declares

    • title: Get a cash register
    • readOnlyHint: true
  • superfaktura_get_clientOne client with address, tax ids, bank data, default currency/due days/discount and statistics.No findings

    Why it is in this group

    • The name "superfaktura_get_client" says "get": a word for reading.
    Description, as the server wrote it
    One client with address, tax ids, bank data, default currency/due days/discount and statistics. GET /clients/view/{id}.

    Annotations the server declares

    • title: Get a client
    • readOnlyHint: true
  • superfaktura_get_companyThe company the API key is working in (name, IČO, DIČ, IČ DPH, address, VAT-payer flag, bank accounts) and the remaining API quota (SuperFaktura's fair-use policy is 1000 requests …No findings

    Why it is in this group

    • The name "superfaktura_get_company" says "get": a word for reading.
    Description, as the server wrote it
    The company the API key is working in (name, IČO, DIČ, IČ DPH, address, VAT-payer flag, bank accounts) and the remaining API quota (SuperFaktura's fair-use policy is 1000 requests per day and 31000 per month; every tool call here uses one request). Good first call. With all_companies=true also the other companies the user can access (their ids are the company_id of the login). GET /users/getUserCompaniesData.

    Annotations the server declares

    • title: Get the company profile and API limits
    • readOnlyHint: true
  • superfaktura_get_expenseOne expense with its items, VAT rates, payments and supplier.No findings

    Why it is in this group

    • The name "superfaktura_get_expense" says "get": a word for reading.
    Description, as the server wrote it
    One expense with its items, VAT rates, payments and supplier. Attachments are not returned. GET /expenses/view/{id}.json.

    Annotations the server declares

    • title: Get an expense
    • readOnlyHint: true
  • superfaktura_get_invoiceOne document (invoice, proforma, quote ...) with its header (number, dates, status, amounts, currency, symbols, comments), client, items, VAT summary, payments and related document…No findings

    Why it is in this group

    • The name "superfaktura_get_invoice" says "get": a word for reading.
    Description, as the server wrote it
    One document (invoice, proforma, quote ...) with its header (number, dates, status, amounts, currency, symbols, comments), client, items, VAT summary, payments and related documents. The public access token and payment links of the document are not returned. GET /invoices/view/{id}.json.

    Annotations the server declares

    • title: Get an invoice
    • readOnlyHint: true
  • superfaktura_get_response_by_checksumIf a superfaktura_create_invoice call timed out, fetch the reply of the ORIGINAL request by the checksum it was sent with (kept 3 months), so the document is not created twice.No findings

    Why it is in this group

    • The name "superfaktura_get_response_by_checksum" says "get": a word for reading.
    Description, as the server wrote it
    If a superfaktura_create_invoice call timed out, fetch the reply of the ORIGINAL request by the checksum it was sent with (kept 3 months), so the document is not created twice. GET /api_logs/getResponseByChecksum/{checksum}.

    Annotations the server declares

    • title: Recover the reply of a create by its checksum
    • readOnlyHint: true
  • superfaktura_get_stock_itemOne warehouse item with SKU, price, VAT, purchase price and quantity in stock.No findings

    Why it is in this group

    • The name "superfaktura_get_stock_item" says "get": a word for reading.
    Description, as the server wrote it
    One warehouse item with SKU, price, VAT, purchase price and quantity in stock. GET /stock_items/view/{id}.

    Annotations the server declares

    • title: Get a stock item
    • readOnlyHint: true
  • superfaktura_list_bank_accountsThe company's bank accounts as stored in SuperFaktura (bank name, IBAN, SWIFT, default flag).No findings

    Why it is in this group

    • The name "superfaktura_list_bank_accounts" says "list": a word for reading.
    Description, as the server wrote it
    The company's bank accounts as stored in SuperFaktura (bank name, IBAN, SWIFT, default flag). GET /bank_accounts/index.

    Annotations the server declares

    • title: List bank accounts
    • readOnlyHint: true
  • superfaktura_list_bank_movesBank transactions imported into SuperFaktura (date, amount, currency, variable symbol, counter account, matching state), newest first by default.No findings

    Why it is in this group

    • The name "superfaktura_list_bank_moves" says "list": a word for reading.
    Description, as the server wrote it
    Bank transactions imported into SuperFaktura (date, amount, currency, variable symbol, counter account, matching state), newest first by default. Filter by date range, credit/debit or amount. Paged: pass next_page as page. GET /accounts/index.json.

    Annotations the server declares

    • title: List imported bank account moves
    • readOnlyHint: true
  • superfaktura_list_cash_registersThe company's cash registers with currency, number of entries and current balance (read only).No findings

    Why it is in this group

    • The name "superfaktura_list_cash_registers" says "list": a word for reading.
    Description, as the server wrote it
    The company's cash registers with currency, number of entries and current balance (read only). GET /cash_registers/getDetails.

    Annotations the server declares

    • title: List cash registers
    • readOnlyHint: true
  • superfaktura_list_clientsList the address book (clients and suppliers) with contact data and totals.No findings

    Why it is in this group

    • The name "superfaktura_list_clients" says "list": a word for reading.
    Description, as the server wrote it
    List the address book (clients and suppliers) with contact data and totals. search matches name, IČO, DIČ, IČ DPH, bank account, e-mail, address, city, phone, note and tags. Paged: pass next_page as page. GET /clients/index.json.

    Annotations the server declares

    • title: List or search clients
    • readOnlyHint: true
  • superfaktura_list_contact_personsThe contact persons (name, e-mail, phone) stored for one client.No findings

    Why it is in this group

    • The name "superfaktura_list_contact_persons" says "list": a word for reading.
    Description, as the server wrote it
    The contact persons (name, e-mail, phone) stored for one client. GET /contact_people/getContactPeople/{client_id}.

    Annotations the server declares

    • title: List a client's contact persons
    • readOnlyHint: true
  • superfaktura_list_countriesSuperFaktura's country ids with ISO code and EU flag, for the country_id of clients.No findings

    Why it is in this group

    • The name "superfaktura_list_countries" says "list": a word for reading.
    Description, as the server wrote it
    SuperFaktura's country ids with ISO code and EU flag, for the country_id of clients. GET /countries/index/view_full:1.

    Annotations the server declares

    • title: List countries
    • readOnlyHint: true
  • superfaktura_list_expense_categoriesThe expense category tree (id, name, parent) for the category_id of expenses.No findings

    Why it is in this group

    • The name "superfaktura_list_expense_categories" says "list": a word for reading.
    Description, as the server wrote it
    The expense category tree (id, name, parent) for the category_id of expenses. GET /expenses/expense_categories.

    Annotations the server declares

    • title: List expense categories
    • readOnlyHint: true
  • superfaktura_list_expensesList received documents (expenses: received invoices, bills, internal documents) with amounts, VAT, supplier and payment status.No findings

    Why it is in this group

    • The name "superfaktura_list_expenses" says "list": a word for reading.
    Description, as the server wrote it
    List received documents (expenses: received invoices, bills, internal documents) with amounts, VAT, supplier and payment status. status: issued (new), partially_paid, paid, overdue. Without a date filter SuperFaktura applies its default period; pass created_period='all' for everything. Paged: pass next_page as page. GET /expenses/index.json.

    Annotations the server declares

    • title: List or search expenses
    • readOnlyHint: true
  • superfaktura_list_invoicesList issued documents with client, items, totals and payment status.No findings

    Why it is in this group

    • The name "superfaktura_list_invoices" says "list": a word for reading.
    Description, as the server wrote it
    List issued documents with client, items, totals and payment status. type selects the document kind (default regular = ordinary invoices; also proforma, estimate = quote, order, cancel = credit note, delivery, draft, reverse_order; several allowed). Without a date filter SuperFaktura returns only the CURRENT YEAR; use created_period='all' or a date range for older ones. status: issued, partially_paid, paid, overdue. search matches client name, number, VS ... Paged: pass next_page as page. GET /invoices/index.json.

    Annotations the server declares

    • title: List or search invoices
    • readOnlyHint: true
  • superfaktura_list_sequencesThe document numbering sequences per document type (id, name, mask, next formatted number, default flag); sequence ids are used when creating documents.No findings

    Why it is in this group

    • The name "superfaktura_list_sequences" says "list": a word for reading.
    Description, as the server wrote it
    The document numbering sequences per document type (id, name, mask, next formatted number, default flag); sequence ids are used when creating documents. GET /sequences/index.json.

    Annotations the server declares

    • title: List numbering sequences
    • readOnlyHint: true
  • superfaktura_list_stock_itemsList warehouse items (name, SKU, unit, price, VAT, quantity in stock).No findings

    Why it is in this group

    • The name "superfaktura_list_stock_items" says "list": a word for reading.
    Description, as the server wrote it
    List warehouse items (name, SKU, unit, price, VAT, quantity in stock). search matches name, SKU and description; sku matches the SKU. Paged: pass next_page as page. GET /stock_items/index.json.

    Annotations the server declares

    • title: List or search stock items
    • readOnlyHint: true
  • superfaktura_list_stock_movementsThe stock log of one item (quantity changes, notes, related invoice or expense).No findings

    Why it is in this group

    • The name "superfaktura_list_stock_movements" says "list": a word for reading.
    Description, as the server wrote it
    The stock log of one item (quantity changes, notes, related invoice or expense). Paged: pass next_page as page. GET /stock_items/movements/{id}.

    Annotations the server declares

    • title: List stock movements of an item
    • readOnlyHint: true
  • superfaktura_list_tagsThe tags (id and name) usable on invoices, expenses and clients.No findings

    Why it is in this group

    • The name "superfaktura_list_tags" says "list": a word for reading.
    Description, as the server wrote it
    The tags (id and name) usable on invoices, expenses and clients. GET /tags/index.json.

    Annotations the server declares

    • title: List tags
    • 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.3.3. Values in angle brackets are yours to fill in.

claude mcp add --transport http superfaktura https://superfaktura.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__superfaktura__superfaktura_get_company",
      "mcp__superfaktura__superfaktura_list_invoices",
      "mcp__superfaktura__superfaktura_get_invoice",
      "mcp__superfaktura__superfaktura_list_clients",
      "mcp__superfaktura__superfaktura_get_client",
      "mcp__superfaktura__superfaktura_list_contact_persons",
      "mcp__superfaktura__superfaktura_list_expenses",
      "mcp__superfaktura__superfaktura_get_expense",
      "mcp__superfaktura__superfaktura_list_expense_categories",
      "mcp__superfaktura__superfaktura_list_bank_accounts",
      "mcp__superfaktura__superfaktura_list_bank_moves",
      "mcp__superfaktura__superfaktura_list_cash_registers",
      "mcp__superfaktura__superfaktura_get_cash_register",
      "mcp__superfaktura__superfaktura_list_stock_items",
      "mcp__superfaktura__superfaktura_get_stock_item",
      "mcp__superfaktura__superfaktura_list_stock_movements",
      "mcp__superfaktura__superfaktura_list_tags",
      "mcp__superfaktura__superfaktura_list_sequences",
      "mcp__superfaktura__superfaktura_list_countries",
      "mcp__superfaktura__superfaktura_get_response_by_checksum"
    ],
    "ask": [],
    "deny": [
      "mcp__superfaktura__superfaktura_create_client",
      "mcp__superfaktura__superfaktura_add_contact_person",
      "mcp__superfaktura__superfaktura_create_tag",
      "mcp__superfaktura__superfaktura_create_expense",
      "mcp__superfaktura__superfaktura_create_invoice"
    ]
  }
}

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 superfaktura. Review it before you use it.