Skip to main content
Glama

myinvois_customer_create

Register a buyer in the LHDN buyer registry so it attaches to future e-invoices with one pick (customer_id) instead of typing the party every time. Validates the TIN format, and validates state_code against the LHDN state table when you send one — a buyer with no real TIN uses the LHDN generic TIN (EI00000000010 Malaysian public, EI00000000020 foreign) instead. NEXT: myinvois_invoice_generate with customer_id.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

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

Input Schema

NameRequiredDescriptionDefault
brnNo
tinNo
cityNo
nameNo
emailNo
notesNo
addressNo
sst_numberNo
state_codeNo
postal_codeNo
country_codeNo
contact_numberNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations declare a non-destructive, non-idempotent, closed-world write; the description adds genuinely new behavior: TIN format validation, state_code validation against the LHDN state table, and the generic-TIN fallback values. It does not disclose what happens on validation failure or warn that repeated calls can create duplicate buyers (idempotentHint=false), which is the main remaining gap for a create tool.

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?

Three sentences with purpose front-loaded, then validation semantics, then the next-action handoff. The parenthetical TIN codes are useful rather than filler, though the middle sentence is dense and could be split for scanability.

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?

For a 12-parameter mutation with no output schema and zero required fields, the description covers purpose, validation, and next step but omits the minimum viable field set and duplicate-handling behavior. An agent knows why to call it but not fully how to construct a valid call.

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?

Schema description coverage is 0% across 12 optional parameters, so the description must carry the load and only covers two of them (tin, state_code). The other ten (name, brn, address, email, sst_number, postal_code, country_code, city, contact_number, notes) get no guidance, and it never indicates which fields are practically required to produce a usable buyer.

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 and resource ('Register a buyer in the LHDN buyer registry') plus the downstream payoff (attaches to future e-invoices via customer_id). An agent can distinguish this create operation from myinvois_customer_update/delete/search without opening any schema.

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?

Gives a clear next step ('NEXT: myinvois_invoice_generate with customer_id') and the conditional rule for buyers lacking a real TIN, including the concrete generic TIN values. It stops short of stating when NOT to use it — e.g., if the buyer already exists, search/update instead — leaving the duplicate path to inference.

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