Vyfakturuj MCP by usefulapi

Read and create Vyfakturuj invoices and contacts: search, number series, payment methods, tags.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
69%
이름 품질
78%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (1)

  • LOWTool 'vyfakturuj_list_payment_methods' name length outside 3-30 rangevyfakturuj_list_payment_methods에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~3,564토큰 (도구 정의)
~2.8 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.78%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "vyfakturuj": {
      "url": "https://vyfakturuj.usefulapi.io/mcp"
    }
  }
}

원격 엔드포인트

https://vyfakturuj.usefulapi.io/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (10)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢vyfakturuj_list_invoices(q, id_customer, type, number, VS, ...)

Search documents (faktury, zalohove faktury, proformy, objednavky ...); pass sort=date_created~desc for the newest first. Each row has id, number, type, dates, customer, VS, currency, total, flags and flags_decoded (paid, sent_to_customer, cancelled, ...) and the public/PDF URLs; use vyfakturuj_get_invoice for the whole document with items. Filter by free text q, customer id, document type, number, variable symbol (VS), currency or creation date range. Paged with rows_limit/rows_offset. GET /invoice/.

입력 스키마

{
  "type": "object",
  "properties": {
    "q": {
      "description": "Free-text search over the invoices.",
      "type": "string",
      "maxLength": 255
    },
    "id_customer": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "string",
          "pattern": "^[1-9][0-9]{0,14}$"
        }
      ],
      "description": "Only invoices of this address-book contact (from vyfakturuj_list_contacts)."
    },
    "type": {
      "description": "Document type: 1 faktura, 2 zalohova faktura, 4 proforma, 8 vyzva k platbe, 16 danovy doklad, 32 opravny danovy doklad, 64 prijmovy doklad, 128 opravny doklad, 512 objednavka.",
      "anyOf": [
        {
          "type": "number",
          "const": 1
        },
        {
          "type": "number",
          "const": 2
        },
        {
          "type": "number",
          "const": 4
        },
        {
          "type": "number",
          "const": 8
        },
        {
          "type": "number",
          "const": 16
        },
        {
          "type": "number",
          "const": 32
        },
        {
          "type": "number",
          "const": 64
        },
        {
          "type": "number",
          "const": 128
        },
        {
          "type": "number",
          "const": 512
        }
      ]
    },
    "number": {
      "description": "Exact document number.",
      "type": "string",
      "maxLength": 50
    },
    "VS": {
      "description": "Variable symbol (variabilni symbol).",
      "type": "string",
      "pattern": "^[0-9]{1,10}$"
    },
    "currency": {
      "description": "Currency, ISO 4217, e.g. CZK, EUR.",
      "type": "string",
      "pattern": "^[A-Za-z]{3}$"
    },
    "date_created_from": {
      "description": "Created on or after this date (yyyy-mm-dd).",
      "type": "string"
    },
    "date_created_to": {
      "description": "Created on or before this date (yyyy-mm-dd).",
      "type": "string"
    },
    "sort": {
      "description": "Sort: column~asc or column~desc, several joined by | (for example date_created~desc|number~asc).",
      "type": "string",
      "pattern": "^[A-Za-z_]{1,40}~(asc|desc)(\\|[A-Za-z_]{1,40}~(asc|desc))*$"
    },
    "rows_limit": {
      "description": "Rows to return, 1-100 (default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "rows_offset": {
      "description": "Rows to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢vyfakturuj_get_invoice(id)

One document with all fields: supplier and customer blocks, items (text, quantity, unit_price, vat_rate, totals), dates, VS, bank details, total, flags and flags_decoded, payment method, public page, PDF and online-payment URLs. GET /invoice/{id}/.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "string",
          "pattern": "^[1-9][0-9]{0,14}$"
        }
      ],
      "description": "The invoice id (from vyfakturuj_list_invoices)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴vyfakturuj_create_invoice(items, type, id_customer, customer_name, customer_firstname, ...)

WRITE. Creates a document in Vyfakturuj. Vyfakturuj has NO draft state: the document is issued at once and takes the next number of its number series (delete or cancel it in Vyfakturuj if wrong). Does NOT send an e-mail to the customer, does NOT mark it paid and moves no money; automatic reminders and paid notices are switched off for it (disable_automated_mails). Name the customer with id_customer (an address-book contact, from vyfakturuj_list_contacts) or with the customer_* fields. Items need text and unit_price. Optional id_number_series / id_payment_method come from vyfakturuj_list_number_series / vyfakturuj_list_payment_methods; the account defaults apply otherwise. Prices are net unless calculate_vat is 2 (gross). POST /invoice/.

입력 스키마

{
  "type": "object",
  "properties": {
    "items": {
      "minItems": 1,
      "maxItems": 200,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Item text (max 255 characters)."
          },
          "unit_price": {
            "type": "number",
            "minimum": -1000000000,
            "maximum": 1000000000,
            "description": "Price per unit, in the invoice currency. Net or gross depending on calculate_vat."
          },
          "quantity": {
            "description": "Quantity (default 1).",
            "type": "number",
            "minimum": -1000000000,
            "maximum": 1000000000
          },
          "unit": {
            "description": "Unit, e.g. ks, kg, hod (max 10 characters).",
            "type": "string",
            "maxLength": 10
          },
          "vat_rate": {
            "description": "VAT rate in percent, e.g. 21, 12 or 0.",
            "type": "number",
            "minimum": 0,
            "maximum": 100
          }
        },
        "required": [
          "text",
          "unit_price"
        ]
      },
      "description": "Document items (1-200)."
    },
    "type": {
      "description": "Document type: 1 faktura (default), 2 zalohova faktura, 4 proforma faktura, 8 vyzva k platbe, 512 objednavka.",
      "anyOf": [
        {
          "type": "number",
          "const": 1
        },
        {
          "type": "number",
          "const": 2
        },
        {
          "type": "number",
          "const": 4
        },
        {
          "type": "number",
          "const": 8
        },
        {
          "type": "number",
          "const": 512
        }
      ]
    },
    "id_customer": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "string",
          "pattern": "^[1-9][0-9]{0,14}$"
        }
      ],
      "description": "Address-book contact id (from vyfakturuj_list_contacts); fills the customer block."
    },
    "customer_name": {
      "description": "Customer company name (when no id_customer).",
      "type": "string",
      "maxLength": 100
    },
    "customer_firstname": {
      "description": "Customer first name.",
      "type": "string",
      "maxLength": 100
    },
    "customer_lastname": {
      "description": "Customer last name.",
      "type": "string",
      "maxLength": 100
    },
    "customer_IC": {
      "description": "Customer ICO (company id).",
      "type": "string",
      "maxLength": 20
    },
    "customer_DIC": {
      "description": "Customer DIC (VAT id).",
      "type": "string",
      "maxLength": 20
    },
    "customer_street": {
      "description": "Customer street.",
      "type": "string",
      "maxLength": 50
    },
    "customer_city": {
      "description": "Customer city.",
      "type": "string",
      "maxLength": 50
    },
    "customer_zip": {
      "description": "Customer postal code (PSC).",
      "type": "string",
      "maxLength": 10
    },
    "customer_country_code": {
      "type": "string",
      "pattern": "^[A-Za-z]{2}$",
      "description": "ISO 3166 country code, e.g. CZ, SK, DE."
    },
    "id_number_series": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "string",
          "pattern": "^[1-9][0-9]{0,14}$"
        }
      ],
      "description": "Number series id (from vyfakturuj_list_number_series); must match the document type."
    },
    "id_payment_method": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "string",
          "pattern": "^[1-9][0-9]{0,14}$"
        }
      ],
      "description": "Payment method id (from vyfakturuj_list_payment_methods)."
    },
    "date_created": {
      "description": "Issue date yyyy-mm-dd (default today).",
      "type": "string"
    },
    "date_taxable_supply": {
      "description": "Date of taxable supply (DUZP) yyyy-mm-dd.",
      "type": "string"
    },
    "days_due": {
      "description": "Days until due (splatnost).",
      "type": "integer",
      "minimum": 0,
      "maximum": 3650
    },
    "currency": {
      "description": "Currency, ISO 4217 (default: the account's).",
      "type": "string",
      "pattern": "^[A-Za-z]{3}$"
    },
    "calculate_vat": {
      "description": "1 items are net (VAT added), 2 items are gross, 3 special VAT regime, 4 domestic reverse charge, 5 not a VAT payer, 6 foreign reverse charge.",
      "anyOf": [
        {
          "type": "number",
          "const": 1
        },
        {
          "type": "number",
          "const": 2
        },
        {
          "type": "number",
          "const": 3
        },
        {
          "type": "number",
          "const": 4
        },
        {
          "type": "number",
          "const": 5
        },
        {
          "type": "number",
          "const": 6
        }
      ]
    },
    "language": {
      "description": "Language of the document.",
      "type": "string",
      "enum": [
        "cs",
        "sk",
        "en",
        "de",
        "it",
        "pl"
      ]
    },
    "VS": {
      "description": "Variable symbol (default: derived from the number).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9999999999
    },
    "order_number": {
      "description": "Order id / reference.",
      "type": "string",
      "maxLength": 255
    },
    "text_before_items": {
      "description": "Text before the items.",
      "type": "string",
      "maxLength": 255
    },
    "text_invoice_footer": {
      "description": "Text in the footer.",
      "type": "string",
      "maxLength": 255
    },
    "note_internal": {
      "description": "Internal note (not on the document).",
      "type": "string",
      "maxLength": 2000
    }
  },
  "required": [
    "items"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢vyfakturuj_list_contacts(q, IC, DIC, name, mail_to, ...)

Search the address book (adresar): id, name, company, ICO (IC), DIC, address, e-mail (mail_to), phone, default days_due. Filter by free text q, ICO, DIC, name, e-mail or phone. Paged with rows_limit/rows_offset. GET /contact/.

입력 스키마

{
  "type": "object",
  "properties": {
    "q": {
      "description": "Free-text search.",
      "type": "string",
      "maxLength": 255
    },
    "IC": {
      "description": "Exact ICO (company id).",
      "type": "string",
      "maxLength": 20
    },
    "DIC": {
      "description": "Exact DIC (VAT id).",
      "type": "string",
      "maxLength": 20
    },
    "name": {
      "description": "Address-book name.",
      "type": "string",
      "maxLength": 100
    },
    "mail_to": {
      "description": "E-mail address of the contact.",
      "type": "string",
      "maxLength": 100
    },
    "tel": {
      "description": "Phone number.",
      "type": "string",
      "maxLength": 30
    },
    "sort": {
      "description": "Sort: column~asc or column~desc, several joined by | (for example date_created~desc|number~asc).",
      "type": "string",
      "pattern": "^[A-Za-z_]{1,40}~(asc|desc)(\\|[A-Za-z_]{1,40}~(asc|desc))*$"
    },
    "rows_limit": {
      "description": "Rows to return, 1-100 (default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "rows_offset": {
      "description": "Rows to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢vyfakturuj_get_contact(id)

One address-book contact with every field (billing and delivery address, ICO/DIC, e-mails, default texts and days_due). GET /contact/{id}/.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "string",
          "pattern": "^[1-9][0-9]{0,14}$"
        }
      ],
      "description": "The contact id (from vyfakturuj_list_contacts)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴vyfakturuj_create_contact(name, company, firstname, lastname, IC, ...)

WRITE. Adds a contact to the address book (it is not a customer message: nothing is sent). Give at least a name (the address-book label) or company or last name. Returns the new contact with its id. POST /contact/.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Address-book name (how it is listed).",
      "type": "string",
      "maxLength": 100
    },
    "company": {
      "description": "Company name.",
      "type": "string",
      "maxLength": 100
    },
    "firstname": {
      "description": "First name.",
      "type": "string",
      "maxLength": 100
    },
    "lastname": {
      "description": "Last name.",
      "type": "string",
      "maxLength": 100
    },
    "IC": {
      "description": "ICO (company id).",
      "type": "string",
      "maxLength": 20
    },
    "DIC": {
      "description": "DIC (VAT id).",
      "type": "string",
      "maxLength": 20
    },
    "street": {
      "description": "Street.",
      "type": "string",
      "maxLength": 50
    },
    "city": {
      "description": "City.",
      "type": "string",
      "maxLength": 50
    },
    "zip": {
      "description": "Postal code (PSC).",
      "type": "string",
      "maxLength": 10
    },
    "country_code": {
      "type": "string",
      "pattern": "^[A-Za-z]{2}$",
      "description": "ISO 3166 country code, e.g. CZ, SK, DE."
    },
    "tel": {
      "description": "Phone.",
      "type": "string",
      "maxLength": 30
    },
    "web": {
      "description": "Web.",
      "type": "string",
      "maxLength": 100
    },
    "mail_to": {
      "description": "E-mail where invoices and reminders go.",
      "type": "string",
      "maxLength": 100,
      "pattern": "^[^\\s@,;]+@[^\\s@,;]+$"
    },
    "days_due": {
      "description": "Default days until due for this contact.",
      "type": "integer",
      "minimum": 0,
      "maximum": 3650
    },
    "note": {
      "description": "Your note about the contact.",
      "type": "string",
      "maxLength": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢vyfakturuj_get_template(id)

One template / recurring invoice (sablona, pravidelna faktura) by id: its items, customer, schedule and settings. The API has no list endpoint for templates, so the id comes from the user (the number in the template's URL in Vyfakturuj). GET /template/{id}/.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "string",
          "pattern": "^[1-9][0-9]{0,14}$"
        }
      ],
      "description": "The template id."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢vyfakturuj_list_payment_methods

The payment methods of the account (id_payment_method, name, type: 1 bank transfer, 2 cash, 4 cash on delivery, 8 card, ...). Use the id in vyfakturuj_create_invoice. GET /settings/payment-method/.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢vyfakturuj_list_number_series

The numbering series (ciselne rady) of the account: id_number_series, the document type it is for, name and the number pattern. Use the id in vyfakturuj_create_invoice. GET /settings/number-series/.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢vyfakturuj_list_tags

The tags (stitky) of the account: id_tag, name and colour. Invoices carry an id_tag. GET /settings/tags/.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 10개