Skip to main content
Glama

myinvois_invoice_record_submission

Record the UUID the LHDN MyInvois portal assigned after the owner keyed this e-invoice into the portal (its form or LHDN's Excel batch template). Simpler never submits to LHDN and never calls the MyInvois API; this only stores the UUID the owner copies back. Only a type-01 original accepts a UUID: credit, debit and refund notes are refused (they link through BillingReference), so record the UUID on the original instead. Moves status generated to submitted; calling it again on a submitted invoice corrects a mistyped UUID. NEXT: myinvois_invoice_read to see the UUID attached.

Input Schema

NameRequiredDescriptionDefault
idYesThe myinvois_invoice id to record the LHDN UUID against (myinvois_invoice_list shows them).
statusNo
currencyNo
buyer_tinNo
lhdn_uuidNo
tax_centsNo
buyer_nameNo
issue_dateNo
customer_idNo
total_centsNo
invoice_dataNo
invoice_typeNo
lhdn_long_idNo
invoice_numberNo
subtotal_centsNo
lhdn_submitted_atNo
reference_invoice_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare write/non-idempotent/non-destructive/closed-world, so the description goes further: it discloses the status transition generated→submitted, that no LHDN API call is made, that only type-01 accepts a UUID, and that re-invocation overwrites a mistyped UUID. It does not describe failure modes or what happens to other supplied fields, keeping it just 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.

Conciseness4/5

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

Four sentences, front-loaded with the action and its constraint, then restrictions, then state effect, then next step. Slightly dense with a parenthetical aside, but nearly every clause carries actionable information.

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

Completeness3/5

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

The description nails the workflow, state transition and type restriction, but for a 17-parameter mutation with 6% schema coverage and no output schema, it leaves the bulk of accepted fields unexplained, which an agent needs if it intends to pass more than 'id'.

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

Parameters2/5

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

Only 'id' (and implicitly lhdn_uuid and status) get meaning from the description; the schema has 17 parameters at 6% coverage, so ~14 fields like currency, buyer_tin, tax_cents, invoice_data, lhdn_submitted_at are undocumented in both schema and description. The description explains the core identifier but cannot compensate for that gap.

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

Purpose5/5

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

States a specific verb+resource (record the LHDN UUID against a myinvois_invoice) and explicitly distinguishes it from submission: 'Simpler never submits to LHDN and never calls the MyInvois API; this only stores the UUID the owner copies back.' An agent can separate it from myinvois_invoice_generate/read without opening schemas.

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

Usage Guidelines5/5

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

Gives the triggering condition (after the owner keyed the invoice into the portal), the exclusion (only type-01 originals; credit/debit/refund notes are refused and must be recorded on the original), the re-call case (correcting a mistyped UUID), and the next step (myinvois_invoice_read). Very little inference is left.

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.

Resources