Skip to main content
Glama

KiotViet MCP by usefulapi

List invoices

kiotviet_list_invoices
Read-only

List sales invoices (code, date, branch, customer, total, amount paid, status, lines). Filter by branch, customer, status, order, purchase-date range or last change. GET /invoices.

Input Schema

NameRequiredDescriptionDefault
statusNoKiotViet status code(s) to include.
order_byNoSort field.
order_idNoOnly the invoice created from this sales order.
page_sizeNoRecords per page, 1-100 (default 20).
branch_idsNoOnly these branches (see kiotviet_list_branches).
current_itemNoRecord offset to start from (0 = first record). Pass the previous reply's next_item.
customer_idsNoOnly invoices of these customers.
customer_codeNoOnly invoices of the customer with this code.
include_paymentNoInclude the payments.
order_directionNoSort direction.
to_purchase_dateNoDate 2026-10-01 or date-time 2026-10-01T08:00:00 (shop local time).
from_purchase_dateNoDate 2026-10-01 or date-time 2026-10-01T08:00:00 (shop local time).
last_modified_fromNoOnly records changed at or after this date-time (shop local time).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/non-destructive, so the safety profile is covered; the description adds real value by disclosing the return payload shape (code, date, branch, customer, total, amount paid, status, lines) despite there being no output schema. It omits pagination behavior and whether include_payment changes the payload size, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences: identity plus returned fields first, filterable dimensions second, endpoint last. No filler and nothing redundantly restated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter read tool with no output schema, the description supplies the return field list and the filter surface, which is most of what an agent needs. Pagination semantics are only carried by the current_item schema text, so the description alone would leave a slight gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so every parameter is already documented, and the description merely echoes the filter categories. Its phrase 'order' is ambiguous between order_id, order_by and order_direction, and paging parameters are not addressed in the description at all, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb (List) and resource (sales invoices) and enumerates the fields returned, which separates it from the singular get_invoice/get_invoice_by_code siblings. It never explicitly contrasts itself with those siblings, but the list-vs-get distinction is legible.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The filter dimensions (branch, customer, status, order, purchase-date range, last change) imply when the tool is useful, and the GET /invoices endpoint is cited. There is no explicit when-to-use versus get_invoice or list_orders, and no stated prerequisites beyond what the schema hints (see kiotviet_list_branches).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.