Vyfakturuj MCP by usefulapi
Server Details
Read and create Vyfakturuj invoices and contacts: search, number series, payment methods, tags.
The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 98.7% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Scored across 10 tools
Each tool targets a clearly distinct resource and action (e.g., create_contact vs create_invoice, get_invoice vs list_invoices, template vs invoice). The descriptions explicitly clarify boundaries such as single-item vs search, and no two tools overlap in purpose.
All tool names follow the exact same pattern: vyfakturuj_ + verb_noun (create_contact, get_invoice, list_contacts, etc.). There are no deviations or mixed conventions.
10 tools is well-scoped for an invoicing and address-book integration, and each tool covers a distinct endpoint or operation. There is no obvious redundancy or padding.
Core create/get/list operations exist for contacts and invoices, but there is no update or delete for either resource, no way to send invoices or mark them paid (explicitly excluded), and no template CRUD or list endpoint. These missing operations will block common invoicing workflows.
Available Tools
10 toolsvyfakturuj_create_contactCreate a contactADestructiveInspect
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/.
| Name | Required | Description | Default |
|---|---|---|---|
| IC | No | ICO (company id). | |
| DIC | No | DIC (VAT id). | |
| tel | No | Phone. | |
| web | No | Web. | |
| zip | No | Postal code (PSC). | |
| city | No | City. | |
| name | No | Address-book name (how it is listed). | |
| note | No | Your note about the contact. | |
| street | No | Street. | |
| company | No | Company name. | |
| mail_to | No | E-mail where invoices and reminders go. | |
| days_due | No | Default days until due for this contact. | |
| lastname | No | Last name. | |
| firstname | No | First name. | |
| country_code | No | ISO 3166 country code, e.g. CZ, SK, DE. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The destructiveHint=true annotation already signals a mutating operation, so 'WRITE.' is mostly redundant, but 'nothing is sent' meaningfully disambiguates a non-obvious naming risk and the description discloses the return shape ('Returns the new contact with its id'). It stops short of permissions, duplicate handling, or idempotency behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight fragments, front-loaded with the operation type, then purpose, then the input constraint, then the return and endpoint. Every sentence carries unique information with no repetition of schema or annotation content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter, all-optional mutation with no output schema, the description supplies the critical missing piece (the effective required-field rule) and the return value. It leaves secondary behavior such as duplicate detection or field-conflict resolution unaddressed, which is a minor gap at this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real semantics the schema lacks: it identifies 'name' as the address-book label and states a cross-field requirement (at least one of name/company/lastname) that is invisible in a schema where 0 parameters are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Adds a contact to the address book') and preempts the most likely confusion by noting it is not a customer message and sends nothing. That distinction lets an agent separate it from vyfakturuj_create_invoice and the messaging-style siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a concrete precondition for use ('Give at least a name ... or company or last name') and clarifies the negative case (nothing is sent). It does not, however, point to any alternative sibling tool or describe when to prefer lookups or list tools instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vyfakturuj_create_invoiceCreate an invoice (issues a real numbered document)ADestructiveInspect
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/.
| Name | Required | Description | Default |
|---|---|---|---|
| VS | No | Variable symbol (default: derived from the number). | |
| type | No | Document type: 1 faktura (default), 2 zalohova faktura, 4 proforma faktura, 8 vyzva k platbe, 512 objednavka. | |
| items | Yes | Document items (1-200). | |
| currency | No | Currency, ISO 4217 (default: the account's). | |
| days_due | No | Days until due (splatnost). | |
| language | No | Language of the document. | |
| customer_IC | No | Customer ICO (company id). | |
| id_customer | No | Address-book contact id (from vyfakturuj_list_contacts); fills the customer block. | |
| customer_DIC | No | Customer DIC (VAT id). | |
| customer_zip | No | Customer postal code (PSC). | |
| date_created | No | Issue date yyyy-mm-dd (default today). | |
| order_number | No | Order id / reference. | |
| calculate_vat | No | 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. | |
| customer_city | No | Customer city. | |
| customer_name | No | Customer company name (when no id_customer). | |
| note_internal | No | Internal note (not on the document). | |
| customer_street | No | Customer street. | |
| id_number_series | No | Number series id (from vyfakturuj_list_number_series); must match the document type. | |
| customer_lastname | No | Customer last name. | |
| id_payment_method | No | Payment method id (from vyfakturuj_list_payment_methods). | |
| text_before_items | No | Text before the items. | |
| customer_firstname | No | Customer first name. | |
| date_taxable_supply | No | Date of taxable supply (DUZP) yyyy-mm-dd. | |
| text_invoice_footer | No | Text in the footer. | |
| customer_country_code | No | ISO 3166 country code, e.g. CZ, SK, DE. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The destructiveHint annotation signals a mutation, but the description goes far beyond it: no draft state, immediate issuance, consumption of the next number in the series, and a remediation path ('delete or cancel it in Vyfakturuj if wrong'). It further discloses that reminders and paid notices are disabled, which is non-obvious behavioral context an agent could not infer from the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the critical 'WRITE' and no-draft warning, then organized into behavior, customer, items, and defaults. Dense with parenthetical cross-references but virtually no waste; slightly heavy for a single description block.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 25-parameter mutation tool with no output schema, the description covers consequences, prerequisites, and sibling dependencies thoroughly. The one residual gap is that it never says what is returned (e.g., the new document id), which matters more given there is no output schema, but the behavioral coverage is otherwise strong.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds integrative meaning the schema does not: the either/or choice between id_customer and the customer_* fields, the minimum viable item shape (text + unit_price), and the net-vs-gross rule tied to calculate_vat. It does not explain every field, but the added cross-field guidance is real value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Creates a document in Vyfakturuj') and clearly distinguishes itself from read-side siblings like vyfakturuj_get_invoice and vyfakturuj_list_invoices by starting with 'WRITE.' The title and description together make the operation unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to sibling lookups ('id_customer ... from vyfakturuj_list_contacts', 'id_number_series / id_payment_method come from vyfakturuj_list_number_series / vyfakturuj_list_payment_methods') and states when defaults apply otherwise. It also fences off adjacent concerns by stating what the tool does NOT do (no e-mail, no payment marking, no money movement).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vyfakturuj_get_contactGet a contactARead-onlyInspect
One address-book contact with every field (billing and delivery address, ICO/DIC, e-mails, default texts and days_due). GET /contact/{id}/.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The contact id (from vyfakturuj_list_contacts). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint=true annotation already establishes this is a safe read. The description adds useful context by enumerating the returned field set and citing the underlying endpoint, but says nothing about auth requirements, error behavior for missing ids, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that leads with what is returned and follows with the field inventory. The trailing 'GET /contact/{id}/' is mildly redundant with the tool name but costs little.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing return values and does so adequately via the field list. For a one-parameter read tool this is close to sufficient, though it omits failure modes and any note that the id must come from the list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single id parameter is fully documented in the schema, including its provenance ('from vyfakturuj_list_contacts'). The description adds no parameter-level detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('One address-book contact') and enumerates the returned field groups (billing/delivery address, ICO/DIC, e-mails, default texts, days_due), so the agent knows exactly what this fetches. It does not explicitly contrast itself with the sibling vyfakturuj_list_contacts, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the singular-resource framing and the id parameter, but the description never states when to use this versus vyfakturuj_list_contacts or that the id must come from a prior listing. No exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vyfakturuj_get_invoiceGet an invoiceBRead-onlyInspect
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}/.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The invoice id (from vyfakturuj_list_invoices). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read. The description adds that the response is complete ('all fields', enumerating blocks), which is useful, but it says nothing about auth requirements, not-found/error behavior, or id provenance beyond the endpoint path. Adequate but not rich against the annotation baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the key fact ('One document with all fields') followed by a compact field enumeration and endpoint. Dense but every clause carries information, especially since no output schema exists to carry the field list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the field enumeration (supplier/customer blocks, items, totals, flags, URLs) does the heavy lifting of describing the return value, which is genuinely valuable. For a low-complexity single-id read tool this is nearly complete, though it omits error/not-found context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single id parameter is already fully documented in the schema (including its origin from list_invoices). The 'GET /invoice/{id}/' fragment only re-confirms that id is a path parameter, adding little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description conveys that the tool returns a single full invoice document ('One document with all fields'), which implicitly distinguishes it from the list siblings. However, it never states the action explicitly (e.g. 'retrieve a single invoice by id') and instead reads as a field inventory, so the purpose is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternatives, even though vyfakturuj_list_invoices exists as the obvious alternative for multiple invoices. The agent must infer that this is for fetching one invoice by id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vyfakturuj_get_templateGet a recurring-invoice templateARead-onlyInspect
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}/.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The template id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered. The description adds genuinely non-obvious context: the absence of a template list endpoint and the origin of the id. It stops short of describing response shape or error behavior, but the added constraint is meaningful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first establishes scope and return content, the second states the constraint and endpoint. Nothing is redundant and the most decision-relevant fact is easy to find.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema, the description covers the resource, the payload contents and the id-provenance constraint. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description goes beyond the schema's terse 'The template id.' by telling the agent where the id physically comes from (the number in the template's URL in Vyfakturuj), which is the practical semantic an agent needs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (get one template/recurring invoice by id) and enumerates the returned payload (items, customer, schedule, settings), plus the underlying endpoint GET /template/{id}/. It also gives local-language aliases (sablona, pravidelna faktura) that help an agent match user phrasing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains the precondition for use: there is no list endpoint for templates, so the id must come from the user. This tells an agent not to hunt for a list tool, which is the key routing decision. It doesn't name a competing sibling explicitly, but the guidance is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vyfakturuj_list_contactsList contactsARead-onlyInspect
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/.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search. | |
| IC | No | Exact ICO (company id). | |
| DIC | No | Exact DIC (VAT id). | |
| tel | No | Phone number. | |
| name | No | Address-book name. | |
| sort | No | Sort: column~asc or column~desc, several joined by | (for example date_created~desc|number~asc). | |
| mail_to | No | E-mail address of the contact. | |
| rows_limit | No | Rows to return, 1-100 (default 25). | |
| rows_offset | No | Rows to skip (default 0). Use next_offset from the previous reply. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered, and the description adds the GET /contact/ endpoint and pagination via rows_limit/rows_offset. It does not describe return ordering, total counts, or empty-result behavior, so it is adequate but not rich beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tight and front-loaded: the search verb and resource lead, followed by return fields, filters, pagination, and endpoint, with no filler sentences. The dense field listing is efficient rather than padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with 100% schema coverage, no required params, and no output schema, the description covers filters, pagination, returned fields, and the HTTP endpoint. Nothing critical is missing, though it could clarify the 'tel' vs 'phone' naming and result semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema, making 3 the baseline. The description merely restates the filters (though it says 'phone' where the schema param is 'tel') and adds no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search the address book'), and enumerates the returned fields (id, name, company, ICO, DIC, address, e-mail, phone, days_due), so the agent knows exactly what it retrieves. It does not explicitly name a sibling to distinguish itself from, but list-vs-get is inherent in the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says which attributes can be filtered (q, ICO, DIC, name, e-mail, phone), which implies usage context, but it never states when to use this versus vyfakturuj_get_contact or other list tools, nor any exclusions. Usage is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vyfakturuj_list_invoicesList invoicesARead-onlyInspect
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/.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search over the invoices. | |
| VS | No | Variable symbol (variabilni symbol). | |
| sort | No | Sort: column~asc or column~desc, several joined by | (for example date_created~desc|number~asc). | |
| type | No | 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. | |
| number | No | Exact document number. | |
| currency | No | Currency, ISO 4217, e.g. CZK, EUR. | |
| rows_limit | No | Rows to return, 1-100 (default 25). | |
| id_customer | No | Only invoices of this address-book contact (from vyfakturuj_list_contacts). | |
| rows_offset | No | Rows to skip (default 0). Use next_offset from the previous reply. | |
| date_created_to | No | Created on or before this date (yyyy-mm-dd). | |
| date_created_from | No | Created on or after this date (yyyy-mm-dd). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered; the description still adds real context by enumerating the returned row fields (id, number, type, VS, currency, total, flags/flags_decoded with decoded meanings, public/PDF URLs) and confirming paging. It omits rate limits, auth requirements, and total-result counting behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense paragraph, front-loaded with purpose, the sibling alternative, and the high-frequency sort hint before the longer return-field enumeration. Each clause carries information, though it runs long and could be split for scanability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description correctly carries the burden of describing the row shape (including decoded flags and URL fields) and paging. Combined with a fully documented 11-parameter schema, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description adds a small amount of meaning by consolidating the filter set (q, customer id, type, number, VS, currency, creation date range) and by giving a default sort example. It does not add new syntax beyond what the schema documents for sort, type codes, or date formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search/list) plus the resource family in local terms (faktury, zalohove faktury, proformy, objednavky) and explicitly distinguishes itself from vyfakturuj_get_invoice. An agent can tell what this tool returns without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Routes the agent to the correct sibling: 'use vyfakturuj_get_invoice for the whole document with items', and gives a concrete usage hint ('pass sort=date_created~desc for the newest first'). No explicit when-not guidance (e.g. interaction with list_contacts or other list tools) beyond the single alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vyfakturuj_list_number_seriesList number seriesARead-onlyInspect
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/.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already declares this as a safe read, so the description carries a lower burden. It adds the GET endpoint and the shape of the returned data, but says nothing about auth requirements, pagination, or scoping, which leaves minor gaps for a settings-listing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences plus an endpoint reference; the returned fields are front-loaded before the usage hint. No filler, though the '(ciselne rady)' gloss is slightly decorative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so describing the returned fields is genuinely necessary and done here. Combined with the readOnly annotation and the create_invoice link, an agent has enough to call and use this correctly, barring pagination details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to document and the baseline is 4. The description correctly does not invent parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource (numbering series of the account) and enumerates the returned fields (id_number_series, document type, name, number pattern), so an agent knows exactly what this returns. It lacks an explicit verb but the title 'List number series' and the GET endpoint make the action unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete downstream guidance: 'Use the id in vyfakturuj_create_invoice,' which tells the agent why and when to call this relative to a sibling. There is no explicit when-not or exclusion, but the workflow context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vyfakturuj_list_payment_methodsList payment methodsARead-onlyInspect
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/.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already declares the safety profile, so the bar is lower; the description still adds the REST endpoint (GET /settings/payment-method/) and explains the semantics of the returned type codes (1 bank transfer, 2 cash, 4 cash on delivery, 8 card). It does not state whether the type list is exhaustive (trailing '...' implies more codes exist) or mention pagination/empty-list behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences that front-load the returned structure and end with the actionable id-usage hint and endpoint. The enum expansion is dense but useful; the trailing 'GET /settings/payment-method/.' is the only mildly extraneous element.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing returns and does so for the key fields (id, name, type) plus the enum mapping, which is the minimum an agent needs to pick a payment method id. The incomplete enum ('...') and absence of ordering/empty-state notes are the only gaps for a simple zero-param list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; the empty input schema is consistent with the description, which implies an account-scoped listing with no filtering inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource precisely ('The payment methods of the account') and enumerates the returned fields (id_payment_method, name, type) with the type enum mapping, so an agent knows exactly what comes back. It is clearly distinct from sibling list tools such as list_tags or list_number_series, though it never states the verb 'list' explicitly and leans on the title for that.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit downstream guidance: 'Use the id in vyfakturuj_create_invoice', which tells the agent why and when this call matters in the workflow. It does not name any alternative or exclusion condition, but for a unique read-only settings lookup there is no competing sibling to route away from.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vyfakturuj_list_tagsList tagsBRead-onlyInspect
The tags (stitky) of the account: id_tag, name and colour. Invoices carry an id_tag. GET /settings/tags/.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already declares this as a safe read, lowering the disclosure bar. The description adds useful context (the endpoint GET /settings/tags/ and the shape of returned records) but says nothing about pagination, ordering, or rate limits. Adequate, not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the resource definition front-loaded and the endpoint trailing. No filler, though the parenthetical '(stitky)' and bare endpoint add only marginal value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description usefully enumerates the returned fields (id_tag, name, colour) and clarifies that id_tag links to invoices. For a simple read-only list endpoint this covers what an agent needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The schema is trivially complete at 100% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource ('the tags (stitky) of the account') and enumerates the returned fields (id_tag, name, colour), which distinguishes it from the sibling list_contacts/list_invoices/list_number_series tools. It never states the verb 'list' explicitly, but the GET endpoint and the resource scope make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use, when-not-to-use, or alternative guidance. The note 'Invoices carry an id_tag' hints at why the data matters (correlating tags with invoices), but it does not tell an agent when this tool should be selected over its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Related MCP Connectors
Read invoices, clients and products in Fakturowo; create documents and update payment status.
Read SuperFaktura invoices, clients, expenses, bank and stock; create clients, expenses and drafts.
Read smallinvoice contacts, invoices, offers, projects and hours; create contacts and invoices.
Read contacts, invoices and book entries; create contacts and draft invoices in Quipu.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables read-only interaction with the FakturaXL API for querying invoices, clients, products, and stock levels with pagination, date chunking, and rate limiting.MIT
- AlicenseNot gradedqualityBmaintenanceEnables read-only querying of Invoice4U accounting data, including documents, customers, branches, tax rates, and Israeli invoice allocation statuses.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with the SuperFaktura invoicing system for managing invoices, clients, and expenses via natural language.4Apache 2.0
- FlicenseCqualityDmaintenanceConnects to ABRA Flexi over its REST API to read companies, evidence, partners, products, balances, and overdue items, while supporting guarded write flows with validation and audit logging.291-
Glama MCP Gateway
Add one secure layer between your agents and this server.