Get customer
fastbill_get_customerOne customer by FastBill customer id. customer.get with CUSTOMER_ID.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | FastBill customer id. |
fastbill_get_customerOne customer by FastBill customer id. customer.get with CUSTOMER_ID.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | FastBill customer id. |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the underlying API call ('customer.get with CUSTOMER_ID'), which is mildly useful for debugging, but says nothing about error behavior for missing ids or the shape of the response.
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 fragments, front-loaded with the resource and key. The trailing 'customer.get with CUSTOMER_ID' is slightly cryptic internal jargon but costs little space.
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?
For a one-parameter lookup with rich annotations, the definition is adequate but leaves gaps: no output shape hints (there is no output schema) and no behavior for a non-existent id. An agent can call it correctly but cannot anticipate the response.
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 description coverage is 100% and the single parameter is documented in the schema as the FastBill customer id with an integer/exclusiveMinimum constraint. The description only restates the id requirement, adding no format or sourcing detail beyond the schema, so the baseline 3 applies.
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 the resource (a single FastBill customer) and the lookup key (customer id), which clearly separates it from fastbill_list_customers and the create/update siblings. It is a noun phrase rather than a verb, but 'One customer by ... id' leaves no ambiguity about what is returned.
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?
Usage is implied: fetch by id when you already hold a customer id. It never explicitly says to use fastbill_list_customers instead when you need to search or don't have an id, nor what happens if the id is unknown, so routing is left to inference.
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.