Skip to main content
Glama

myinvois_customer_update

Edit a registered buyer's LHDN details — send only the fields you are changing. When tin is included it is re-checked against the same format gate create runs, and when state_code is included it is re-checked against the LHDN state table, so an edited buyer stays valid to generate against. Never touches e-invoices already generated for this buyer; each one sealed its own copy of the buyer party. NEXT: myinvois_customer_list to find the id.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "id": "<id>"
    },
    "name": "myinvois_customer_update"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesThe myinvois_customer id (myinvois_customer_list shows them).
brnNo
tinNo
cityNo
nameNo
emailNo
notesNo
addressNo
sst_numberNo
state_codeNo
postal_codeNo
country_codeNo
contact_numberNo
expected_updated_atNoOptional compare-and-set guard: the updated_at from a prior myinvois_customer_list/read. Mismatch returns CONFLICT with the current value.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

With annotations already declaring non-read-only, non-destructive, non-idempotent, the description still adds real value: tin/state_code are re-validated against the create gate and LHDN state table, and the edit does not cascade to existing e-invoices. It does not address why idempotentHint is false or what a CONFLICT response means operationally.

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?

Front-loaded with the action and the patch rule, then validation behavior, then side-effect scope, then a discovery pointer. Every sentence carries distinct information with no restatement of the name or schema.

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

Completeness5/5

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

For a 14-param mutation tool with annotations covering the safety profile, the description supplies the missing pieces an agent needs: optional-field update rule, validation side effects, cascade behavior, and how to obtain the id. Return format is not needed since no output schema is declared and the conflict guard is already documented in the schema.

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 only 14%, so the schema documents little; the description compensates partially by explaining partial-update semantics and the validation of tin and state_code. Fields like brn, sst_number, postal_code, country_code and contact_number remain undocumented in both places, so it is not full compensation.

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?

Names a specific verb (Edit) and resource (a registered buyer's LHDN details), and the sibling family is clearly implied by the 'NEXT: myinvois_customer_list' pointer plus the create-comparison. An agent can tell this apart from myinvois_customer_create/read/list without opening the schemas.

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

Usage Guidelines4/5

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

'send only the fields you are changing' establishes patch semantics explicitly, and the NEXT pointer tells the agent where to get the required id. It stops short of naming when NOT to use it (e.g. that this is not for changing already-issued e-invoices, only implied by the 'never touches' line).

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