create-customer
Create an invoice customer for a company. Use the returned id as invoice customerId.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| customer | Yes | ||
| companyId | Yes | Company ID |
Create an invoice customer for a company. Use the returned id as invoice customerId.
| Name | Required | Description | Default |
|---|---|---|---|
| customer | Yes | ||
| companyId | Yes | Company ID |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the write nature is covered. The description adds a genuinely useful return-value contract (the id is the invoice customerId), which matters because there is no output schema, but says nothing about permissions, duplicate handling, or whether existing customers are affected.
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, front-loaded with the action and followed by the one piece of chaining information that matters. No filler, though at this level of schema complexity it is terse almost to the point of under-specification.
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?
A mutation tool with nested objects, no output schema, and half its parameters undocumented needs more from the description. The return-id note is valuable, but the required nested fields, the customer type semantics, and any duplicate/permission behavior are left entirely to the schema.
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 50%: only companyId is described. The description's 'for a company' loosely maps to companyId but adds no format or constraint detail, and it says nothing about the large nested customer object, including the required name/type fields and the individual/company enum. It does not compensate for the coverage gap.
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 ('Create an invoice customer') plus the scope modifier 'for a company', which separates it from siblings like create-invoice-draft or create-credit-note. It does not explicitly contrast with list-customers, but the verb+resource make the intent 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 or when-not-to-use guidance and no named alternative. The second sentence implies a workflow ('Use the returned id as invoice customerId'), which hints at when this tool is called relative to invoice creation, but the agent must infer the rest.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.